1. 使用矩阵快速计算输出的方法
使用 wljk 表示从 (l−1)th 层的 kth 个神经元到 lth 层的 jth 个神经元的链接上的权重. 例如,下图给出了网络中第二层的第四个神经元到第三层的第二个神经元的链接上的权重:
对网络的偏置和激活值也会使用类似的表示。 我们使用 blj 表示在 lth 层第 jth 个神经元的偏置。使用 alj 表示 lth 层第 jth 个神经元的激活值:
有了这些表示, lth 层的第 jth 个神经元的激活值 alj 就和 (l−1)th 层的激活值通过方程关联起来了:
中间量 zl≡wlal−1+bl ,称 zl 为 l 层神经元的带权输入
我们使用 s ⊙ t 来表示按元素的乘积,称为 Hadamard 乘积,或者 Schur 乘积,所以 s ⊙ t 的元素就是 (s⊙t)j=sjtj ,给个例子,
2. 反向传播的四个基本方程
引入一个中间量
δlj
, 称为
lth
层第
jth
个神经元的误差。
∂C∂zlj
是神经元的误差的度量。误差定义为:
δlj≡∂C∂zlj.
使用下一层的误差
δl+1
来表示当前层的误差
δl
:
δl=((wl+1)Tδl+1)⊙σ′(zl),(BP2)
通过组合 (BP1) 和 (BP2),我们可以计算任何层的误差 δl 。首先使用 (BP1) 计算 δ L ,然后应用方程 (BP2) 来计算 δL−1 ,然后再次用方程 (BP2) 来计算 δL−2 ,如此一步一步地反向传播完整个网络。
代价函数关于网络中任意偏置的改变率:
∂C∂blj=δlj.(BP3)
总结:反向传播的四个方程式
3. 反向传播算法