反向传播(Backpropagation)
反向传播是用来训练神经网络的一种方法,一般与最优化方法(如梯度下降法)结合使用
目标:
最小化损失函数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
-------------------------------------------------------------逆水行舟,不进则退。