最近看了李宏毅老師的深度學習視頻課程,真的是講得十分細致油额,從頭到尾看下來一遍叠纷,對深度學習模型有了一個基本的認識,趁著腦子還能記著一些東西悔耘,趕緊把學到的東西記錄下來讲岁,以備后用。
視頻地址:https://www.bilibili.com/video/av9770302/from=search&seid=905421046757750252
ppt地址:http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLDS17.html
下面開始正題吧衬以!
1缓艳、計算圖(Computational Graph)
計算圖是用來描述一個函數(shù)的語言,有兩種基本的要素:
Node:變量看峻,Edge:邊
如下圖所示:
根據(jù)計算圖和鏈式法則阶淘,我們可以很直觀計算偏導數(shù):
在計算圖上惜傲,有可能出現(xiàn)變量共享的情況荚孵,比如x^2亿胸,此時要把兩個x拆開持寄,當成不同的x對待,如下面的例子:
2舷嗡、計算圖在前向神經(jīng)網(wǎng)絡中的應用
我們首先回顧下反向傳播方法:
上圖中的倒三角表示梯度的意思盔几。
將前饋神經(jīng)網(wǎng)絡寫成計算圖的形式日月,大概如下圖所示:
這里涉及到了向量之間的偏導數(shù)計算灼狰,使用如下的雅可比矩陣:
根據(jù)雅可比矩陣的定義宛瞄,我們可以隊上面需要計算的項進行逐項分解計算:
3、計算圖在循環(huán)神經(jīng)網(wǎng)絡中的應用
我們先來回顧一下循環(huán)神經(jīng)網(wǎng)絡的網(wǎng)絡結(jié)構(gòu):
畫出循環(huán)神經(jīng)網(wǎng)絡的計算圖如下圖所示:
假設我們的序列長度為三交胚,三層的計算圖如下圖所示:
使用梯度下降來訓練我們的循環(huán)神經(jīng)網(wǎng)絡份汗,我們可以使用計算圖:
可以得到如下的計算結(jié)果,可以看到蝴簇,使用計算圖計算循環(huán)神經(jīng)網(wǎng)絡的梯度是不是十分的方便杯活,而且也十分容易理解循環(huán)神經(jīng)網(wǎng)絡中經(jīng)常出現(xiàn)的梯度爆炸或梯度消失的問題。
注意下圖中的梯度計算是分三部分的熬词,圖中只顯示了第一部分旁钧。