如何理解神经网络里面的反向传播算法?

Posted 生活会辜负努力的人,但不会辜负一直努力的人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何理解神经网络里面的反向传播算法?相关的知识,希望对你有一定的参考价值。

转载

作者:知乎用户
链接:https://www.zhihu.com/question/24827633/answer/91489990
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

一般都是用链式法则解释
比如如下的神经网络
技术分享图片
  • 前向传播
对于节点技术分享图片来说,技术分享图片的净输入技术分享图片如下:
技术分享图片
接着对技术分享图片做一个sigmoid函数得到节点技术分享图片的输出:
技术分享图片
类似的,我们能得到节点技术分享图片技术分享图片技术分享图片的输出技术分享图片技术分享图片技术分享图片

  • 误差
得到结果后,整个神经网络的输出误差可以表示为:
技术分享图片
其中技术分享图片就是刚刚通过前向传播算出来的技术分享图片技术分享图片技术分享图片是节点技术分享图片技术分享图片的目标值。技术分享图片用来衡量二者的误差。
这个技术分享图片也可以认为是cost function,不过这里省略了防止overfit的regularization term(技术分享图片
展开得到
技术分享图片

  • 后向传播
对输出层的 技术分享图片
通过梯度下降调整技术分享图片,需要求技术分享图片,由链式法则:
技术分享图片
如下图所示:
技术分享图片技术分享图片
技术分享图片
技术分享图片
以上3个相乘得到梯度技术分享图片,之后就可以用这个梯度训练了:
技术分享图片
很多教材比如Stanford的课程,会把中间结果技术分享图片记做技术分享图片,表示这个节点对最终的误差需要负多少责任。。所以有技术分享图片



对隐藏层的 技术分享图片
通过梯度下降调整技术分享图片,需要求技术分享图片,由链式法则:
技术分享图片
如下图所示:
技术分享图片
参数技术分享图片影响了技术分享图片,进而影响了技术分享图片,之后又影响到技术分享图片技术分享图片
求解每个部分:
技术分享图片
其中技术分享图片,这里技术分享图片之前计算过。
技术分享图片的计算也类似,所以得到
技术分享图片
技术分享图片的链式中其他两项如下:
技术分享图片
技术分享图片
相乘得到
技术分享图片
得到梯度后,就可以对技术分享图片迭代了:
技术分享图片
在前一个式子里同样可以对技术分享图片进行定义,技术分享图片,所以整个梯度可以写成技术分享图片

=======================
上述技术分享图片就是教程Unsupervised Feature Learning and Deep Learning Tutorial 中第三步计算的由来。。

技术分享图片

 

所谓的后向传播,其实就是『将来在宣传传播上出了偏差,你们要负责的!』,每一个节点负责的量用技术分享图片表示,那么,隐藏节点需要负责的量,就由输出节点负责的量一层层往前传导。

参考:
【1】A Step by Step Backpropagation Example
【2】Unsupervised Feature Learning and Deep Learning Tutorial



















































以上是关于如何理解神经网络里面的反向传播算法?的主要内容,如果未能解决你的问题,请参考以下文章

如何理解CNN神经网络里的反向传播backpropagation,bp算法

难以理解神经网络中的反向传播算法

有反向传播的替代方案吗?

反向传播训练算法如何工作?

怎样理解神经网络的反向传播算法-ML Note 53

神经网络 - 更新权重矩阵 - 反向传播算法