6

如果没有偏差,具有 2 个输入节点、2 个隐藏节点和一个输出的神经网络是否应该能够解决 XOR 问题?还是会卡住?

4

4 回答 4

5

保留偏见。它看不到您输入的值。

就一对一的类比而言,我喜欢将偏差视为c直线方程中的偏移值y = mx + c:它为您的系统增加了一个独立的自由度,不受网络输入的影响。

于 2009-12-14T06:31:25.543 回答
1

我已经建立了一个没有偏差的神经网络,一个 2x2x1 架构在 280 个 epoch 内解决了 XOR。我对此很陌生,所以不知道任何一种方式,但它有效,所以它是可能的。

问候,

于 2010-09-22T23:34:21.767 回答
1

如果我没记错的话,不可能在没有偏见的情况下进行 XOR。

于 2009-12-12T12:53:44.783 回答
0

是的,如果你使用像 Relu (f(x) =max(0,x)) 这样的激活函数,你可以

这种网络的权重示例是:

Layer1: [[-1, 1], [1, -1]]
Layer2: [[1], [1]]

对于第一(隐藏)层:

  • 如果输入为 [0,0],则两个节点的激活都为 0:ReLU(-1*0 + 1*0) = 0, ReLU(1*0 + -1*0) = 0
  • 如果输入为 [1,0],一个节点将激活 0 ReLU(-1*1 + 1*0) = 0,另一个激活 1 ReLU(1*1 + -1*0) = 1
  • 如果输入为 [0,1],一个节点将激活 1 ReLu(-1*0 + 1*1) = 1,另一个激活 0 ReLU(1*0 + -1*1) = 0
  • 如果输入为 [1,1],则两个节点的激活值为 0:ReLU(-1*1 + 1*1 = 0) = 0, ReLU(1*1 + -1*1 = 0) = 0

对于第二层(输出):由于权重是 [[1], [1]](并且由于 ReLU,前一层不会有负激活),因此该层仅充当第 1 层中激活的总和

  • 如果输入为[0,0],则上一层的激活总和为0
  • 如果输入为[1,0],则前一层的激活总和为1
  • 如果输入为[0,1],则前一层的激活总和为1
  • 如果输入为[1,1],则上一层的激活总和为0

虽然此方法在上面的示例中巧合地起作用,但它仅限于对 XOR 问题的 False 示例使用零 (0) 标签。例如,如果我们将 ones 用于 False 示例,将 twos 用于 True 示例,那么这种方法将不再适用。

于 2017-07-19T01:09:10.927 回答