反向传播

  以前很长一段时间都以为反向传播只不过是链式法则而已,对其理解并不是很到位。
  前期组会做presentation的时候,终于对其有了深入的理解,反向传播的其实是结点误差,有了结点误差,就可以迅速更新梯度了(理解了这个,pytorch里面优化器更新模型参数的两个操作就很好理解了)。下面我们一起来看看吧。

1.模型介绍

  为方面介绍反向传播,我们简化模型,如下图所示。其中x_{i}是输入,结点按顺序标记1、2、3、..9;a_{i}是第i个结点经过激活函数的输出,默认采用sigmoid激活函数;w_{ij}表示node_{j}node_{i}的权重,4、5、6...9结点均有偏置,分别为b_{4}、b_{5}、b_{6}...b_{9}(未在图中标记);模型输出为a_{8}、a_{9},图中的y_{1}、y_{2}x真实标记;损失函数采用误差平方,前面的0.5是为了求导方便;学习算法采用随机梯度下降法(SGD)。

图1 模型介绍

2.前向传播

  前向传播是很简单的,我们的重点不仅仅在于写出单个结点的代数式,更重要的是矩阵的表示。
  对于a_{4}、a_{8}的计算如图2、3所示。

图2 a4的计算

图3 a8的计算

  由此,我们可以整合下a_{4}、a_{5}、a_{6}、a_{7}的表达式,如图4所示。观察4个代数式可以轻松的写出对应矩阵形式,如图5所示。
图4 第一隐藏层结点输出

图5 第一隐藏层结点输出矩阵写法

  同理,我们可以飞快地写出第二个隐藏层节点输出的矩阵写法,如图6所示。
图6 第二隐藏层结点输出矩阵写法

3.反向传播

  如果不熟悉链式法则ClainRule,图7是一个简单的示例,即将用换元方式对复杂函数求导,简化计算的方法。

图7 clain rule

  下面就是重点了, 我们先对w_{84}求偏导,结果如图8所示,E是损失,即图1中的loss。我们将\frac{\partial E }{\partial a_{8} }定义为e_{8},直观的看,结点8的误差确实是a_{8}-y_{1}。这么定义现在看起来好像多此一举,但从后面链接的更新来看,这个定义既是形象的且更新时计算也是高效的。
图8 w84的梯度

  同理,我们可以计算出\frac{\partial E }{\partial w_{85} }、\frac{\partial E }{\partial a_{86} }、\frac{\partial E }{\partial a_{87} }、\frac{\partial E }{\partial a_{94} }、\frac{\partial E }{\partial a_{95} }、\frac{\partial E }{\partial a_{96} }、\frac{\partial E }{\partial a_{97} },图9选择了几个进行计算。随后观察对应的代数式,可以将其写成矩阵形式,如图10所示。
图9 第二层部分权重梯度的计算

图10 第二层权重梯度矩阵

  差点漏了第二个隐藏层偏置梯度的计算了,让我们把它们俩补上去,计算方法是一模一样的,结果如图11所示,图12是其矩阵表示。
图11 第二个隐层偏置梯度计算

图12 第二个隐层偏置梯度矩阵表示.png

  终于,我们k.o掉了第二个隐层的权重、偏置的梯度。我们准备刷第一个隐层的权重、偏置的梯度,让我们考虑\frac{\partial E }{\partial w_{41} },其结果如图13所示,结合图8结点误差的定义,可以得到\frac{\partial E }{\partial a_{4} }e_{4}(即4号结点误差)。同理,可以迅速求出该层其他链接的梯度,如图14,图15所示,而图16,图17分别是对应的矩阵的写法。
图13 w41的梯度

图14 第一层隐层链接更新公式

图15 第一层隐层偏置更新公式

图16 第一层隐层链接更新公式矩阵写法

图17 第一层隐层偏置更新公式矩阵写法

  可以看到,通过定义e_{i},我们可以用矩阵乘法的形式写出权重、偏置的梯度。那么我们再把第一层结点误差求出来,结果如图18所示。从该式可以看出,前一层节点误差是后一层结点误差的线性组合,即前一层结点误差依赖于后一层结点误差。别忘了链接、偏置梯度是依赖于当层结点误差的,换言之,你告诉我某一层结点误差,我可以秒算出对应层链接、偏置的梯度值。
图18 第一层节点误差

  因此,我们的结论是只要计算每一层的结点误差,就可以秒算链接的梯度;前一层结点误差依赖于后一层结点误差;故而,在更新网络的链接时,我们可以考虑分两步走,先反向传播每一层结点误差(前一层依赖于后一层,故而反向计算方便得多),再利用结点误差秒算出对应层链接的梯度(从后往前,逐层更新),这与pytorch中优化器的两步操作也是对应的。
  下述图是正向传播、反向传播的一个overview。
图19 正向传播(输入实例特征)

图20 正向传播(第一层隐层)

图21 正向传播(第二层隐层)

图22 反向传播(末层结点误差)

图23 反向传播(第一层结点误差)

图24 更新链接权重(未层链接权重)

图25 更新链接权重(第一层链接权重)

4.总结

  希望读者通过此文,能理解反向传播的过程。step1,反向传播每一层结点误差;step2,更新每一层链接的权重。(当时做presentation的ppt是有存稿的,如有需要,可以contract。)

5.参考文献

[1] 塔里克·拉希德.python神经网络编程.
[2] 零基础入门深度学习(3) - 神经网络和反向传播算法.
[3] 李宏毅.2021春机器学习课程.
[4] 3Blue1Brown.What is backpropagation really doing?
[5] 陈希孺.概率论与数理统计.
[6] 吴恩达.深度学习.
[7] “反向传播算法”过程及公式推导(超直观好懂的Backpropagation)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,454评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,553评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,921评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,648评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,770评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,950评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,090评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,817评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,275评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,592评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,724评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,409评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,052评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,815评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,043评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,503评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,627评论 2 350

推荐阅读更多精彩内容