您的位置:首页 > 其它

反向传播的工作过程以及公式推导

2018-04-01 11:19 369 查看
作者:陈唯源

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

一般都是用链式法则解释
比如如下的神经网络



前向传播
对于节点

来说,

的净输入

如下:



接着对

做一个sigmoid函数得到节点

的输出:



类似的,我们能得到节点





的输出






误差
得到结果后,整个神经网络的输出误差可以表示为:



其中

就是刚刚通过前向传播算出来的





是节点



的目标值。

用来衡量二者的误差。
这个

也可以认为是cost function,不过这里省略了防止overfit的regularization term(


展开得到



后向传播
对输出层的


通过梯度下降调整

,需要求

,由链式法则:



如下图所示:









以上3个相乘得到梯度

,之后就可以用这个梯度训练了:



很多教材比如Stanford的课程,会把中间结果

记做

,表示这个节点对最终的误差需要负多少责任。。所以有



对隐藏层的


通过梯度下降调整

,需要求

,由链式法则:



如下图所示:



参数

影响了

,进而影响了

,之后又影响到




求解每个部分:



其中

,这里

之前计算过。


的计算也类似,所以得到





的链式中其他两项如下:






相乘得到



得到梯度后,就可以对

迭代了:



在前一个式子里同样可以对

进行定义,

,所以整个梯度可以写成


=======================
上述

就是教程Unsupervised Feature Learning and Deep Learning Tutorial 中第三步计算的由来。。

<img src="https://pic1.zhimg.com/50/2d29c11b1c9da7652c63f01d5e31284e_hd.jpg" data-rawwidth="822" data-rawheight="428" class="origin_image zh-lightbox-thumb" width="822" data-original="https://pic1.zhimg.com/2d29c11b1c9da7652c63f01d5e31284e_r.jpg">


所谓的后向传播,其实就是『将来在宣传传播上出了偏差,你们要负责的!』,每一个节点负责的量用

表示,那么,隐藏节点需要负责的量,就由输出节点负责的量一层层往前传导。
参考:
【1】A Step by Step Backpropagation Example
【2】Unsupervised Feature Learning and Deep Learning Tutorial编辑于 2016-04-02
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: