注:封面画师:新雨林-触站
说明
- 本页面无手机端适配,强制缩放阅读。
- 使用纯html格式,保存教学用ppt,添加了部分个人笔记。
- 目录工作正常,可以跳转。
反向传播
这里对反向传播的讲解比较奇怪,可能比较适合初学者理解。想要通过严谨的数学推导理解反向传播的同学,可以搜索一下。
![background image](https://i-blog.csdnimg.cn/blog_migrate/a590521b803adf8e7a09455d7e9c4ed3.png)
反向传播算法
反向传播算法
什么是正向传播网络
什么是反向传播
反向传播算法
为什么需要反向传播
图解反向传播
反向传播计算
链式求导法则
案例1:通过反向传播计算偏导数
![background image](https://i-blog.csdnimg.cn/blog_migrate/63f4662573988fb755e39adc15f043b8.png)
知
识
讲
解
什么是正向传播网络
• 前一层的输出作为后一层的输入的逻辑结构,每一层神经元仅与下一层的
神经元全连接,通过增加神经网络的层数虽然可为其提供更大的灵活性,
让网络具有更强的表征能力,也就是说,能解决的问题更多,但随之而来
的
数量庞大的网络参数的训练,一直是制约多层神经网络发展的一个重要
瓶颈。
![background image](https://i-blog.csdnimg.cn/blog_migrate/123eaa39e80a8b7a2fb98f5f4f1c4e87.png)
知
识
讲
解
什么是反向传播
• 反向传播(Backpropagation algorithm)全称“误差反向传播”,是在
深度神经网络中,根据输出层输出值,来反向调整隐藏层权重的一种方法。
![background image](https://i-blog.csdnimg.cn/blog_migrate/f49e19d97d774c269433a2296fbea7e4.png)
知
识
讲
解
为什么需要反向传播
• 为什么不直接使用梯度下降而使用反向传播方式更新权重呢?
• 梯度下降应用于有明确求导函数的情况,或者可以求出误差的情况(比如
线性回归),我们可以把它看做没有隐藏层的网络。
但对于多个隐藏层的
神经网络,输出层可以直接求出误差来更新参数,但隐藏层的误差是不存
在的,因此不能对它直接应用梯度下降,而是先将误差反向传播至隐藏层,
然后再应用梯度下降。
![background image](https://i-blog.csdnimg.cn/blog_migrate/f5b2f99190500c98ac4f31df35b7888e.png)
知
识
讲
解
反向传播算法极简史
• 1974年,哈佛大学沃伯斯博士在他的博士论文中,首次提出了
通过误差的反向传播来
训练人工神经网络,以解决神经网络数量庞大的参数训练问题。
但是,沃伯斯的工作
并没有得到足够的重视,因为当时神经网络正陷入低潮,可谓“生不逢时”。
• 1986年,由杰弗里·辛顿(Geoffrey Hinton)和大卫·鲁姆哈特(David Rumelhart)
等人在著名学术期刊Nature(自然)上发表了论文“借助误差反向传播算法的学习表
征(Learning Representations by Back-propagating errors)”,系统而简洁地
阐述了反向传播算法在神经网络模型上的应用。反向传播算法非常好使,它直接把纠
错的运算量降低到只和神经元数目本身成正比的程度。
![background image](https://i-blog.csdnimg.cn/blog_migrate/38c22cb9f6ef19931ad6ca72be6a19be.png)
知
识
讲
解
反向传播算法极简史(续)
• 后来,沃伯斯得到了IEEE(电气电子工程师学会)神经网络分会的先驱奖;Geoffrey
Hinton与Yoshua Bengio、Yann LeCun(合称“深度学习三巨头”)共同获得了
2018年的图灵奖
沃伯斯
杰弗里·辛顿
![background image](https://i-blog.csdnimg.cn/blog_migrate/31787fa3113b06dd590d586d65e49f5e.png)
知
识
讲
解
图解反向传播
• 问题:Tom在超市买了2个苹果,每个10元,消费税10%,请计算应该支付
的金额
×
10
20
×
22
2
苹果个数
1.1
消费税
![background image](https://i-blog.csdnimg.cn/blog_migrate/56c3fb8b83cdfb6f5f3a7f6602001c11.png)
知
识
讲
解
图解反向传播(续1)
• 问题:Tom在超市买了2个苹果,3个橙子,其中苹果每个10元,橙子每个
15元,消费税10%,请计算应该支付的金额
×
10
20
+
65
2
苹果个数
1.1
消费税
15
×
橙子个数
3
45
×
71.5
![background image](https://i-blog.csdnimg.cn/blog_migrate/3bcc073dd9b8dff478e493437e193653.png)
知
识
讲
解
图解反向传播(续2)
• 问题:Tom在超市买了2个苹果,每个10元,消费税10%,请计算
苹果价格上涨会在
多大程度上影响支付金额(即求“支付金额关于苹果的价格的导数”)
。
设苹果的价
格为x,支付金额为L,则相当于求 。这个导数的值表示当苹果的价格稍微上涨
时,支付金额会增加多少。
×
10
20
×
22
2
苹果个数
1.1
消费税
1.1
2.2
1
苹果价格增长1
支付金额增加2.2
![background image](https://i-blog.csdnimg.cn/blog_migrate/4135539a7acc0693a7698fa980fcf10d.png)
知
识
讲
解
图解反向传播(续3)
×
10
20
×
22
2
苹果个数
1.1
消费税
1.1
2.2
1
21
23.1
11
22
24.2
1.1
2.2
![background image](https://i-blog.csdnimg.cn/blog_migrate/4355af62d47dc11e22343e13b4d4177e.png)
知
识
讲
解
图解反向传播(续4)
×
10
20
×
22
2
苹果个数
1.1
消费税
1
42
30
33
20
11
2.1
3
20
11
![background image](https://i-blog.csdnimg.cn/blog_migrate/a609e7c668c973b686737bb873f0e8b3.png)
知
识
讲
解
图解反向传播(续5)
苹果价格的导数为2.2,苹果个数导数为11,消费税导数为20,可以解释为:苹果价格、
苹果个数或消费税增加相同的值,分别对支付金额产生2.2倍、11倍、20倍的影响
×
10
20
×
22
2
苹果个数
1.1
消费税
1.1
2.2
1
20
11
![background image](https://i-blog.csdnimg.cn/blog_migrate/29345442d14fcbf0b57aca2d5a7aa19c.png)
知
识
讲
解
反向传播计算
• 考虑函数
y = f(x) ,
输出为E,反向传播的计算顺序是,
将信号E乘以节点的
局部导数(偏导数),传递给前面的节点,这样可以高效地求出导数的值。
f
x
y
E
E
![background image](https://i-blog.csdnimg.cn/blog_migrate/c27e2f23238c2adc0a1deefbf7c4468b.png)
知
识
讲
解
反向传播计算(续1)
• 加法节点反向传播计算
+
x
z
y
+
正向传播
偏导数均为1
反向传播
将上游值原封不动传递给下游
![background image](https://i-blog.csdnimg.cn/blog_migrate/1b5686bfaf4cf35b52b8996ab0dbdabb.png)
知
识
讲
解
反向传播计算(续2)
• 乘法节点反向传播计算
X
x
z
y
X
正向传播
偏导为x, y
反向传播
将上游信号和正向传播“翻转值”传递给下游
![background image](https://i-blog.csdnimg.cn/blog_migrate/31359753b32da9f53afcc5451152b8a7.png)
知
识
讲
解
链式求导法则
• 考虑如下复合函数
z = t
2
t = x + y
z
关于
x
的导数(
x
变化对
z
的影响率)可以表示为:
这称之为“链式求导法则”
![background image](https://i-blog.csdnimg.cn/blog_migrate/87930dab20693c5364470efa87d13245.png)
知
识
讲
解
链式求导法则(续)
+
x
t
**2
z
y
![background image](https://i-blog.csdnimg.cn/blog_migrate/1c9c12a4d7822059721a568a7492eeb5.png)
知
识
讲
解
案例1:通过反向传播计算偏导数
• 问题:苹果、橙子价格和个数以及税率如下图所示,利用反向传播算法,在
方框处计算填入导数
×
10
20
+
65
2
苹果个数
1.1
消费税
15
×
橙子个数
3
45
×
71.5
![background image](https://i-blog.csdnimg.cn/blog_migrate/c9edf9da77c72772e0c86e832f11999f.png)
知
识
讲
解
案例1:通过反向传播计算偏导数(续)
• 问题:苹果、橙子价格和个数以及税率如下图所示,利用反向传播算法,在
方框处计算填入导数
×
10
20
+
65
2
苹果个数
1.1
消费税
15
×
橙子个数
3
45
×
71.5
1
1.1
1.1
1.1
65
1
65
16.5
11
2.2
3.3
![background image](https://i-blog.csdnimg.cn/blog_migrate/225a23a3db33a90c1c68b41a4bebfe2c.png)
小结
• 本章节主要介绍了反向传播算法,其目的是根据预测输出,调整权
重参数,使得模型更快收敛。