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.总结
反向传播四个公式:
输出层误差:
反向传播每一层误差:
权重梯度:
偏置梯度: