反向传播算法

反向传播算法

反向传播算法实质就是链式求导法则的应用,那为什么叫反向传播算法。

前提我们已经熟悉如何求偏导。有下面式子

第二个就是链式求导法则,\(\Delta s\)会分别影响\(\Delta x\)\(\Delta y\)\(\Delta x\)\(\Delta y\)会在会影响\(\Delta z\)。因此\(z\)\(s\)求偏导就是下面的式子。

先对一个样本的误差求偏导,则对于任意一个\(w_i\)\(\frac{\partial C}{\partial w}= \frac{\partial z}{\partial w} \frac{\partial C}{\partial z}\) ,当然这里的\(z\)是指当前\(w_i\)直接相关的\(z\),比如如下图所示。

\(\frac{\partial z}{\partial w}\)好求,等于\(x_i\),因为即,等于与\(w_i\)直接关联的前面的\(x\)的值。如下图

下一步看如何求$ \frac{\partial C}{\partial z}$,假定我们的神经网络结构如下图

那根据链式求导法则对\(z\)求偏导得到

其中)好求,等于\(\sigma^ {‘}(z)\)即激活函数对\(z\)的导数。而)等于下面

所以如果我们想求出!就是求。而求跟求的步骤一模一样,即求与之关联的后面的\(z\)的偏导。如下图

所以每个都可以根据后面的求出,如果我们从最后面开始求那就可以求出每一步的,在通过\(\frac{\partial C}{\partial w}= \frac{\partial z}{\partial w} \frac{\partial C}{\partial z}\) ,就可以求出每一个\(w_i\) 的偏导数。所以我们称为反向传播算法

参考

李宏毅 机器学习

posted @ 2019-04-16 12:07  来一点音乐  阅读(771)  评论(0编辑  收藏  举报