反向传播是用来训练神经网络的一种方法,一般与最优化方法(如梯度下降法)结合使用
目标:
最小化损失函数C
神经网络:
\[z{_i^l}=\sum \limits_{j}w{_{ij}^l}a{_j^{l-1}}+b^l\]
\[a{_j^l} = \sigma(z{_j^l})\]
最优化方法:
梯度下降法
\[\theta^n = \theta^{n-1} - \eta\nabla C(\theta^{n-1})\]
在神经网络中\(\theta\)具体为weight \(w\)和bias \(b\)
\[\frac{\partial C}{\partial w{_{ij}^l}} = \frac{\partial z{_i^l}}{\partial w{_{ij}^l}} \frac{\partial C}{\partial z{_i^l}} = a{_j^{l-1}} \delta{_i^l}\]
\[\frac{\partial C}{\partial b^l} = \frac{\partial z{_i^l}}{\partial b^l} \frac{\partial C}{\partial z{_i^l}} = \delta{_i^l}\]
\[\delta{_i^l}=\frac{\partial C}{z{_i^l}} = ... = \acute \sigma (z{_i^l}) \sum\limits_{k}w{_{ki}^{l+1}} \delta{_k^{l+1}} \]
Ref.
维基百科 反向传播
李宏毅 ppt