反向传播公式推导

  1. 符号定义
    $w_{jk}^L$ 表示第$L-1$层的第$j$个神经元到第$L$层的第$k$个神经元映射的权值。
    $b_k^L$ 表示第$L$层的第$k$个神经元的偏置量。
    $z_k^L=\sum_j w_{jk}^L a_j^{L-1}+b_k^L​$ 表示第$L​$层的未经激活函数的输出。
    $a_k^{L}=\sigma(z_j^L)$ 表示第$L$层经过sigmoid函数后的输出。

  2. 损失函数定义二次代价函数:($x$代表输入的样本,$y(x)$代表标签值)
    当只关注某一个样本$x_i​$的时候,有:

  3. 反向传播推导
    计算最后一层神经网络产生的错误
    对于每一个$L$层的神经元有:

​ 则整个$L​$层可以用矩阵的Hadamard积(矩阵行行对应相乘)来进行计算:

反向传播
计算每一层的每个神经元产生的误差,推广到每一层的每个神经元有:
推广到整个一层有:

计算权重的梯度

计算偏置的梯度

4.总结反向传播四个公式:

输出层误差:

反向传播每一层误差:

权重梯度:

偏置梯度: