反向传播算法详解
1. 反向传播的第一步:计算输出层神经元的δ值
在神经网络中,我们通常使用较大的数值来简化计算,但要记住,导数只有在我们进行非常小的步长变化时,才能准确预测结果。对于神经元D及其输出Do(或P2),同样适用这样的思考过程。
我们已经完成了反向传播的第一步,即找到了输出层所有神经元的δ值。从相关原理可知,输出神经元的δ值取决于标签值和神经元的输出。当我们改变进入该神经元的权重值时,其δ值也会发生变化。δ值是一个临时值,会随着网络或其输入的每次变化而改变。这也是我们每个样本只调整一次权重的另一个原因,因为每次更新后都必须重新计算所有的δ值,所以我们最好先评估一个新样本,并利用它提供的额外信息。
我们的主要目标是找到权重的变化量。当我们知道某一层所有神经元的δ值时,就可以更新进入该层的所有权重。下面来看具体如何实现。
2. 使用δ值改变权重
2.1 权重变化对网络误差的影响
为了方便说明,假设神经元的输出或权重改变的值为1。在网络中,权重AC在神经元A的输出被神经元C接收之前对其进行乘法运算,权重AC每变化1,网络误差就会相应地变化Ao × Cδ。如果我们从误差中减去这个值,误差就会变化 -Ao × Cδ。所以,如果我们想通过减去Ao × Cδ来减少网络误差,可以将权重AC的值改变 -1 来实现。具体变化关系如下表所示:
| AC的变化量 | 网络误差的变化量 |
| — | — |
| 1 | Ao × Cδ |
| -1 | -Ao × Cδ |
2.2 权重更新的可视化表示
我们可以通过一种额外的约定来直观地总结
超级会员免费看
订阅专栏 解锁全文
7364

被折叠的 条评论
为什么被折叠?



