更新:问题的更好表述。
我试图通过一个XOR神经网络的例子来理解反向传播算法。对于这种情况,有2个输入神经元+1个偏置,2个隐藏层神经元+1个偏置,以及1个输出神经元。
A B A XOR B
1 1 -1
1 -1 1
-1 1 1
-1 -1 -1
(来源:wikimedia.org)
我正在使用随机反向传播算法。
阅读了一些资料后,我发现输出单元的误差会传递到隐藏层……最初这让我感到困惑,因为当你到达神经网络的输入层时,每个神经元都从两个隐藏层神经元中获得一个误差调整。特别地,误差的分布方式一开始很难理解。
步骤1:计算每个输入实例的输出。
步骤2:计算输出神经元(在我们的情况下只有一个)与目标值之间的误差:
步骤3:使用步骤2中的误差来计算每个隐藏单元h的误差:
'weight kh'是隐藏单元h和输出单元k之间的权重。这很令人困惑,因为输入单元没有与输出单元直接相关联的权重。经过几个小时的公式思考,我开始思考求和符号的含义,并得出结论:每个连接到隐藏层神经元的输入神经元的权重都要乘以输出误差并进行求和。这是一个合理的结论,但公式似乎有点令人困惑,因为它明确表示了'weight kh'(在输出层k和隐藏层h之间)。
这里我是否正确地理解了一切?可以有人确认一下吗?
输入层的O(h)是什么意思?我的理解是每个输入节点有两个输出:一个进入隐藏层的第一个节点,另一个进入隐藏层的第二个节点。在公式O(h)*(1 - O(h))
的哪个部分应该插入这两个输出中的哪一个呢?