RNN:http://www.reibang.com/p/bf9ddfb21b07
LSTM:http://www.reibang.com/p/9dc9f41f0b29#
所有 RNN 都具有一種重復(fù)神經(jīng)網(wǎng)絡(luò)模塊的鏈?zhǔn)降男问礁小T跇?biāo)準(zhǔn)的 RNN 中趋惨,這個(gè)重復(fù)的模塊只有一個(gè)非常簡(jiǎn)單的結(jié)構(gòu)锣夹,例如一個(gè) tanh 層刃滓。
RNN存在問題:a人柿、梯度消失 达传;梯度消失就是一定深度的梯度對(duì)模型更新沒有幫助碌更。
? ? ? ? ? ? ? ? ? ? ? ? ? b瓶籽、梯度爆炸恃鞋; ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? b崖媚、長期依賴問題
梯度消失原因簡(jiǎn)述:更新模型參數(shù)的方法是反向求導(dǎo),越往前梯度越小恤浪。而激活函數(shù)是 sigmoid 和 tanh 的時(shí)候畅哑,這兩個(gè)函數(shù)的導(dǎo)數(shù)又是在兩端都是無限趨近于0的,會(huì)使得之前的梯度也朝向0水由,最終的結(jié)果是到達(dá)一定”深度“后荠呐,梯度就對(duì)模型的更新沒有任何貢獻(xiàn)。
梯度爆炸原因簡(jiǎn)述:
長期依賴問題:相關(guān)信息和當(dāng)前預(yù)測(cè)位置之間的間隔不斷增大時(shí)砂客,RNN 會(huì)喪失學(xué)習(xí)到連接如 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?此遠(yuǎn)的信息的能力泥张。
Eg1:我們有一個(gè)語言模型用來基于先前的詞來預(yù)測(cè)下一個(gè)詞。如果我們?cè)囍A(yù)測(cè) “the clouds are in the sky” 最后的詞鞠值,我們并不需要任何其他的上下文 —— 因此下一個(gè)詞很顯然就應(yīng)該是 sky媚创。在這樣的場(chǎng)景中,相關(guān)的信息和預(yù)測(cè)的詞位置之間的間隔是非常小的彤恶,RNN 可以學(xué)會(huì)使用先前的信息钞钙。
? ? ? ? ?但是同樣會(huì)有一些更加復(fù)雜的場(chǎng)景。假設(shè)我們?cè)囍ヮA(yù)測(cè)“I grew up in France... I speak fluent French”最后的詞声离。當(dāng)前的信息建議下一個(gè)詞可能是一種語言的名字歇竟,但是如果我們需要弄清楚是什么語言,我們是需要先前提到的離當(dāng)前位置很遠(yuǎn)的 France 的上下文的抵恋。這說明相關(guān)信息和當(dāng)前預(yù)測(cè)位置之間的間隔就肯定變得相當(dāng)?shù)拇蠡酪椤2恍业氖牵谶@個(gè)間隔不斷增大時(shí),RNN 會(huì)喪失學(xué)習(xí)到連接如此遠(yuǎn)的信息的能力盅安。
解決辦法:升級(jí)版的RNN——LSTM唤锉。LSTM 通過刻意的設(shè)計(jì)來避免長期依賴問題。記住長期的信息在實(shí)踐中是 LSTM 的默認(rèn)行為别瞭,而非需要付出很大代價(jià)才能獲得的能力窿祥!
LSTM結(jié)構(gòu):LSTM 具有與RNN同樣的結(jié)構(gòu),但是重復(fù)的模塊擁有一個(gè)不同的結(jié)構(gòu)蝙寨。不同于單一神經(jīng)網(wǎng)絡(luò)層晒衩,這里是有四個(gè),以一種非常特殊的方式進(jìn)行交互墙歪。
在上面的圖例中听系,每一條黑線傳輸著一整個(gè)向量,從一個(gè)節(jié)點(diǎn)的輸出到其他節(jié)點(diǎn)的輸入虹菲。粉色的圈代表 pointwise 的操作靠胜,諸如向量的和,而黃色的矩陣就是學(xué)習(xí)到的神經(jīng)網(wǎng)絡(luò)層毕源。合在一起的線表示向量的連接浪漠,分開的線表示內(nèi)容被復(fù)制,然后分發(fā)到不同的位置霎褐。在上面的圖例中址愿,每一條黑線傳輸著一整個(gè)向量,從一個(gè)節(jié)點(diǎn)的輸出到其他節(jié)點(diǎn)的輸入冻璃。粉色的圈代表 pointwise 的操作响谓,諸如向量的和,而黃色的矩陣就是學(xué)習(xí)到的神經(jīng)網(wǎng)絡(luò)層俱饿。合在一起的線表示向量的連接歌粥,分開的線表示內(nèi)容被復(fù)制塌忽,然后分發(fā)到不同的位置拍埠。
梯度消失原因簡(jiǎn)述