反向传播算法详解
1. 反向传播的第一步:计算输出层神经元的 delta 值
在神经网络的训练中,反向传播是一个关键的过程,其第一步是找出输出层所有神经元的 delta 值。我们使用较大的数字只是为了方便,但要记住,导数只有在我们采取非常小的步长时,才能准确预测变化情况。
对于神经元 D 及其输出 Do(或 P2),也遵循相同的思考过程。从图中可知,输出神经元的 delta 取决于标签中的值和神经元的输出。当我们改变进入该神经元的权重值时,其 delta 也会改变。Delta 是一个临时值,会随着网络或其输入的每次变化而改变,这也是我们每个样本只调整一次权重的另一个原因。因为每次更新后都必须重新计算所有的 delta,所以我们最好先评估一个新样本,并利用它提供的额外信息。
1.1 使用 delta 值改变权重
我们已经知道如何为输出层的每个神经元找到 delta 值。神经元输出的变化必然来自输入的变化,而输入的变化又可能来自前一个神经元输出的变化,或者连接该输出与当前神经元的权重的变化。
为了方便说明,假设神经元的输出或权重改变的值为 1。当权重 AC 改变 1 时,在我们的网络中,网络误差会相应地改变 Ao × Cδ。如果我们想通过从网络误差中减去 Ao × Cδ 来减少误差,可以将权重 AC 的值改变 -1 来实现。具体情况如下表所示:
| AC 的变化 | 网络误差的变化 |
| — | — |
| 1 | Ao × Cδ |
| -1 | -Ao × Cδ |
我们可以用一种额外的约定来直观地总结这个过程。之前我们将神经元的输出画成从圆圈向右的箭头,现在把 delta
超级会员免费看
订阅专栏 解锁全文
730

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



