XOR问题可以解决2x2x1神经网络没有偏差?

时间:2009-12-12 12:45:39

标签: artificial-intelligence neural-network

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

4 个答案:

答案 0 :(得分:5)

保留偏见。它没有看到输入的值。

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

答案 1 :(得分:1)

如果我没记错,就不可能没有偏见。

答案 2 :(得分:1)

我已经构建了一个没有偏置的神经网络,并且2x2x1架构在280个时期内解决了XOR。 对此我是新手,所以不知道哪种方式,但它有效,所以它是可能的。

此致

答案 3 :(得分: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 < / LI>
  • 如果输入为[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问题的假例子,它仅限于使用零(0)标签。例如,如果我们使用假实例和tw实例,那么这种方法就不再适用了。