反向传播公式推导
![Image](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_na6ulPvkyUMx4CZRAstuWyzGTUXfPiZTHXAB4eqLG8QZ7AuYYEMyhvm35dsolmlJFqIAGcDzINTpdFxJfUZP3f6iNPsGsx2k8GF0Kv_7VLwH4O7BdOO_Wseo7CTnVbm5PXRRaK2ccw4D/s640/Screen+Shot+2019-06-07+at+5.10.55+PM.png)
在计算机科学家(也很可能是数学家)在提出DL在计算机上可行的时候,(我相信) 算力友好的计算Cost functon 对每个参数的导数($\frac{\partial C}{\partial w_{j k}^{l}}$ 和 $\frac{\partial C} { \partial b_{j}^{l}}$)是非常重要的一点。 符号表示 为此,这里引入了中间变量$\delta_{j}^{l}$ 定义为在$l^{th}$层的第$j^{th}$个神经元上的误差: $\delta_{j}^{l} \equiv \frac{\partial C}{\partial z_{j}^{l}}$ 这里$z_j^l$指的是第$l^{th}$层的第$j^{th}$个神经元的激活函数的带权输入: $z_{j}^{l}=\sum_{k} w_{j k}^{l} a_{k}^{l-1}+b_{j}^{l}$ 看起来更直观的做法可能会把激活函数输出作为引入变量来推导,但是事实是用$z_j^l$来表示会更方便。 从$\delta_j^L$ 出发: 大写的$L$表示最后一层,即输出层的误差,计作BP1 $\delta_{j}^{L}=\frac{\partial C}{\partial a_{j}^{L}} \sigma^{\prime}\left(z_{j}^{L}\right)$ BP1 是按分量构成的表达式,如果重写为用矩阵表示,计作BP1a,即: $\delta^{L}=\nabla_{a} C \odot \sigma^{\prime}\left(z^{L}\right)$ 其中$\nabla_{a}C$ 是一个向量,元素为$ \partial C / \partial a_{j}^{L} $ 既然最后一层的误差已经可以表示,那对于中间层呢? 先给出结论,下式记作BP2 : $\delta^{l}=\left(\left(w^{l+1}\right)^{T} \delta^{l+1}\right) \odot \sigma^{\prime}\left(z^{l}\right)$ 证明: BP2的核心就是把$\delta_j^l$ 和 $\delta_j^{l+1}$ 关联起来,证明