李宏毅深度学习(二):计算图与反向传播

最近看了李宏毅老师的深度学习视频课程,真的是讲得十分细致,从头到尾看下来一遍,对深度学习模型有了一个基本的认识,趁着脑子还能记着一些东西,赶紧把学到的东西记录下来,以备后用。
视频地址:https://www.bilibili.com/video/av9770302/from=search&seid=905421046757750252
ppt地址:http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLDS17.html

下面开始正题吧!

1、计算图(Computational Graph)

计算图是用来描述一个函数的语言,有两种基本的要素:
Node:变量,Edge:边
如下图所示:

根据计算图和链式法则,我们可以很直观计算偏导数:

在计算图上,有可能出现变量共享的情况,比如x^2,此时要把两个x拆开,当成不同的x对待,如下面的例子:

2、计算图在前向神经网络中的应用

我们首先回顾下反向传播方法:

上图中的倒三角表示梯度的意思。

将前馈神经网络写成计算图的形式,大概如下图所示:

这里涉及到了向量之间的偏导数计算,使用如下的雅可比矩阵:

根据雅可比矩阵的定义,我们可以队上面需要计算的项进行逐项分解计算:

3、计算图在循环神经网络中的应用

我们先来回顾一下循环神经网络的网络结构:

画出循环神经网络的计算图如下图所示:

假设我们的序列长度为三,三层的计算图如下图所示:

使用梯度下降来训练我们的循环神经网络,我们可以使用计算图:


可以得到如下的计算结果,可以看到,使用计算图计算循环神经网络的梯度是不是十分的方便,而且也十分容易理解循环神经网络中经常出现的梯度爆炸或梯度消失的问题。
注意下图中的梯度计算是分三部分的,图中只显示了第一部分。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第二个Topic讲深度学习,承接前面的《浅谈机器学习基础》。 深度学习简介 前面也提到过,机器学习的本质就是寻找最...
    我偏笑_NSNirvana阅读 15,705评论 7 49
  • 去年过年回老家高中同学聚会,吃完喝完,准备来个愉快的大合影。我叫,谁有苹果6以上的,快拿来拍照!大家全部摇头,最好...
    梅小尘阅读 242评论 3 2
  • 01 三岁多的时候,翩翩忽然开始关心生死问题,一天在卫生间里看着我问:“妈妈,将来你老了的话,很快就会死的,是吗?...
    杨诗远阅读 2,095评论 4 7
  • 当你觉得不想活着的时候最好去医院看一看,生命是多么宝贵。 现在的我们怎么啦!为什么总要在经...
    爱在进行时阅读 128评论 0 0
  • 甘五阅读 316评论 2 6