详解反向传播算法

反向传播算法一般用链式法解释,例如有如下神经网络

这里写图片描述

一 前向传播

对于节点h1来说,h1的净输入neth1如下
这里写图片描述

接着对neth1做一个sigmoid函数得到节点h1的输出
这里写图片描述

类似的,我们能得到节点h2,o1,o2的输出outh2,outo1,outo2.

二 误差

得到结果后整个神经网络的输出误差可以表示为:
这里写图片描述

其中output就是刚刚前向传播算出来的outo1,outo2;target是节点o1,o2的目标值。Etotal是衡量二值误差的。
这个Etatol也可以认为是cost function,不过这里省略了防止overfit的regularization term(这里写图片描述)
展开得到
这里写图片描述

三 后向传播

对输出层的w5

通过梯度下降调整w5,需要求这里写图片描述 由链式法则:
这里写图片描述

如下图所示:
这里写图片描述

以上3个相乘得到梯度这里写图片描述,之后就可以训练了:
这里写图片描述

很多教材,比如stanford的课程,为了计算方便会把中间结果
这里写图片描述

记做这里写图片描述

表示这个节点对最终的误差需要负多少责任。所以有
这里写图片描述

对隐藏层w1

通过梯度下降调整w1,需要求这里写图片描述 ,由链式法则:

这里写图片描述

如图所示:
这里写图片描述

参数w1影响了、neth1,进而影响了outh1,之后影响了Eo1,Eo2。

求解每一部分:
这里写图片描述
其中
这里写图片描述
这里这里写图片描述 之前计算过。

这里写图片描述 的计算也类似,所以得到

这里写图片描述
这里写图片描述 的链式中其他两项如下:
这里写图片描述
这里写图片描述

相乘得到
这里写图片描述

得到梯度后,就可以对w1迭代了
这里写图片描述
在前一个式子里同样可以对这里写图片描述 进行定义
这里写图片描述

所以整梯度可以写成这里写图片描述

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

四 图示

这里写图片描述

这里写图片描述

这里写图片描述

参考:
【1】A Step by Step Backpropagation Example
【2】Unsupervised Feature Learning and Deep Learning Tutorial
【3】https://www.zhihu.com/question/24827633

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值