赞
踩
对于节点 来说, 的净输入 如下:
接着对 做一个sigmoid函数得到节点 的输出:
类似的,我们能得到节点 、 、 的输出 、 、 。
得到结果后,整个神经网络的输出误差可以表示为:
其中 就是刚刚通过前向传播算出来的 、 ; 是节点 、 的目标值。 用来衡量二者的误差。
这个 也可以认为是cost function,不过这里省略了防止overfit的regularization term( )
展开得到
通过梯度下降调整 ,需要求 ,由链式法则:
,
如下图所示:
<img src="https://pic1.zhimg.com/50/f2d8768af0d9264687905a0134dae927_hd.jpg" data-rawwidth="525" data-rawheight="257" class="origin_image zh-lightbox-thumb" width="525" data-original="https://pic1.zhimg.com/f2d8768af0d9264687905a0134dae927_r.jpg">
以上3个相乘得到梯度 ,之后就可以用这个梯度训练了:
很多教材比如Stanford的课程,会把中间结果 记做 ,表示这个节点对最终的误差需要负多少责任。。所以有 。
通过梯度下降调整 ,需要求 ,由链式法则:
,
如下图所示:
<img src="https://pic2.zhimg.com/50/d50d1d812f0f036b8c5cb389e463b01a_hd.jpg" data-rawwidth="612" data-rawheight="494" class="origin_image zh-lightbox-thumb" width="612" data-original="https://pic2.zhimg.com/d50d1d812f0f036b8c5cb389e463b01a_r.jpg"> 参数 影响了 ,进而影响了 ,之后又影响到 、 。
求解每个部分:
,
其中 ,这里 之前计算过。
的计算也类似,所以得到
。
的链式中其他两项如下:
,
相乘得到
得到梯度后,就可以对 迭代了:
。
在前一个式子里同样可以对 进行定义, ,所以整个梯度可以写成
=======================
上述就是教程Unsupervised Feature Learning and Deep Learning Tutorial 中第三步计算的由来。。
所谓的后向传播,其实就是『将来在宣传传播上出了偏差,你们要负责的!』,每一个节点负责的量用表示,那么,隐藏节点需要负责的量,就由输出节点负责的量一层层往前传导。
参考:Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。