BP反向传播算法

前言:

本来想把自己报告的ppt写成博客,后来公式打起来太麻烦了,不想再敲第二遍了。写一篇深入浅出,图文并茂的博客好难。


可以看斯坦福cs231n的课程,因为我发现很多人的博客的图和公式直接是截的那边的图。
http://cs231n.stanford.edu/syllabus.html


youtube上没有英文字幕,但是youtube会提供自动生成英文字幕,我的英文水平比较渣,有英文字幕还是听不懂,后来发现在网页上可以用0.5倍的速度观看。这个时候还可以。就算不看视频,看看ppt也是极好的。

正文:

BP反向传播算法明白了之后其实是比较简单,现在想想一开始阻碍自己明白的就是向量化的那种表达形式。
组会要做报告,做了一天的ppt,敲了很多公式,想写一篇日志发现已经无力再把那么多公式敲一遍了。简要的记录一发
首先是基本思想,求导的链式法则对于 f(t)=f(u(t),v(t)) ,对 f 求偏导数ft=fuut+fvvt,其次要记住的一点就是对谁求偏导数,那么就把这个数当做变量,其他的都是常量。所以,对于 f(t)=f(u(t1),v(t2)) 来说, ft1=fuut1
BP算法就是基于上述的原理来进行求偏导的。看下面的简单例子:
神经网络图
假如现在要求 JW(3)21 也就是图中红色线的部分, J 是损失函数。那么就要找到J中所有和 W(3)21 有关系的量。我们把图再拆解一下,如下图:
拆解图
进一步拆解如下图:
这里写图片描述
红色部分就是和 W(3)21
可以看到第一个包含 W(3)21 的是 z(4)2 ,所以,

fw(3)21=a(3)1Jz(4)2
接下来求后半部分 Jz(4)2 ,包含后半分的在图中也标出来了。所以,
Jz(4)2=Ja(4)2a(4)2z(4)2=a(4)2z(4)2iJz(5)iW(4)i2

这个时候考虑到 Jz(4)2 和\frac{\partial J}{\partial z^{(5)}_2}的形式一样,所以,可以确定,在得知前一层的 Jz(l) 后可以求得后一层的偏导数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值