BackPropagation

BackPropagation

BackPropagation中文翻译是后向传播算法,其实更形象的翻译是误差逆向传播。其实没什么,不就是利用了链式法则

链式法则(英文chain rule)是微积分中的求导法则,用于求一个复合函数的导数,是在微积分的求导运算中一种常用的方法。

那么,现在看一点点照片,看不懂再说。

其中\(x_1,x_2\)表示神经网络的输入,\(f_k(e)\)表示的是一个激活函数,例如常见的\(sigmoid\)函数,\(\tanh\)函数,\(ReLU\)函数等。\(y\)是神经网络的预测结果,而\(z\)为真实结果。

648385-20170428230826522-1230379436.jpg
648385-20170428230835647-1071994222.jpg
648385-20170428230845287-1273990523.jpg
648385-20170428230853272-1078723183.jpg
648385-20170428230902615-538712715.jpg
648385-20170428230911537-111735518.jpg
648385-20170428230917537-167426521.jpg
648385-20170428230928084-1627476921.jpg
648385-20170428230938069-1840743732.jpg
648385-20170428230947459-840273002.jpg
648385-20170428230954678-1049679545.jpg
648385-20170428231001975-989985956.jpg
648385-20170428231007803-1244397222.jpg
648385-20170428231014053-1811589277.jpg
648385-20170428231029084-1409186789.jpg
648385-20170428231035256-281618816.jpg
648385-20170428231041240-398575128.jpg
648385-20170428231047897-703041639.jpg
648385-20170428231054834-1581205819.jpg

如果看完上面的图以后,你已经觉得自己理解了上面是bp算法,那么下面的内容,就没必要再看了。


所谓,误差逆向传播,误差的逆向传播体现在哪里?不知道,你们是否看明白了上面的
\[ \delta_4 = w_{46}\delta \]
反正,我是没看懂,这个地方确是体现了误差的逆向传播,但是这么个玩意是怎么得出来的,下面,我们试着推导一下:

首先,定义
\[ z_i =\sum_jw_{ij}y_j \]
表示从上一层的第\(j\)个神经元到本层的第\(i\)个神经元的带权输入,那么有
\[ y^{(l+1)}_i = f_i(z_i) \]
我们令损失函数
\[ J(w,b) = z-y \]
这里是为了简便起见,其实,很多时候,使用的是MSE或者交叉熵作为损失函数。

定义第\(l\)层第\(i\)个节点误差项为
\[ \delta_i^{(l)}=\dfrac{\partial J(\mathbf{W},b)}{\partial z_i^{(l)}} \]
那么有
\[ \begin{split}\delta_i^{(l)}&=\dfrac{\partial J(\mathbf{W},b)}{\partial y_i^{(l)}}\\ &=\sum_j\dfrac{\partial J(\mathbf{W},b)}{\partial z_j^{(l+1)}}\dfrac{\partial z_j^{(l+1)}}{\partial y_i^{(l)}}\dfrac{\partial y_i^{(l)}}{\partial z_i^{(l)}}\\ &=\sum_j\delta_i^{(l+1)}\mathbf{W}^{(l+1)}_{ij}f'(z_i^{(l)}) \end{split} \]
虽然,这里的推导用的\(\delta\)与前面图中用的有些区别,但是本质上没什么大的区别,图中在最后进行更新\(w\)的时候,确是把\(f'(z_i^{(l)})\)乘进去了。图中在对\(\delta\)进行逆向传播的时候,没有乘\(f'(z_i^{(l)})\)的时候,是为了更好的进行计算利用,避免不必要的重复计算。

参考

galaxy.agh.edu.pl

转载于:https://www.cnblogs.com/crackpotisback/p/6783666.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值