一泥张,RNN
在BP神經(jīng)網(wǎng)絡(luò)和CNN中,輸入輸出都是互相獨(dú)立的媚创,但是在實際應(yīng)用中有些場景輸出內(nèi)容和之前的內(nèi)容是由關(guān)聯(lián)的彤恶,比較典型的就是在處理序列信息的時候鳄橘。
循環(huán)神經(jīng)網(wǎng)絡(luò)芒炼,在全連接神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上增加了前后時序上的關(guān)系,對序列數(shù)據(jù)有較強(qiáng)的處理能力
在Pytorch的關(guān)于RNN的介紹中(詳細(xì)頁面)鲸湃,對于每層的定義如下:
式子中的代表這層的激活函數(shù)子寓,后面括號里面的前半部分代表時間t的的輸入别瞭,后半部分代表時刻t-1的輸入
在如下的RNN計算結(jié)構(gòu)圖中
圓形的箭頭表示隱藏層的自連接。在RNN中晒衩,每一層都共享參數(shù)U墙歪、V、W靠胜,降低了網(wǎng)絡(luò)中需要學(xué)習(xí)的參數(shù)毕源,提高學(xué)習(xí)效率。
網(wǎng)絡(luò)的參數(shù)通過使用Back Propagation Through Time 算法址愿,簡稱BPTT來得到冻璃。
循環(huán)神經(jīng)網(wǎng)絡(luò)的每個訓(xùn)練樣本是一個時間序列,同一個訓(xùn)練樣本前后時刻的輸入值之間有關(guān)聯(lián)娘纷,每個樣本的序列長度可能不相同跋炕。訓(xùn)練時先對這個序列中的每個時刻的輸入值進(jìn)行正向傳播,再通過反向傳播計算出參數(shù)的梯度值并更新參數(shù)嬉探。
二,LSTM
2.1 理解LSTM
長短時記憶神經(jīng)網(wǎng)絡(luò)眷蜓,簡稱LSTM,是一種特殊的RNN吁系。
傳統(tǒng)的RNN在處理長序列數(shù)據(jù)時存在梯度消失和梯度爆炸的問題白魂,這會導(dǎo)致難以捕捉到長距離依賴關(guān)系福荸,因此在長序列任務(wù)上的表現(xiàn)不佳。
具體來說:
- 梯度消失問題:在反向傳播過程中背传,RNN中的梯度會隨著時間步的增加而指數(shù)級衰減台夺,導(dǎo)致在處理長序列時難以有效地傳播梯度,從而無法捕捉到遠(yuǎn)距離的依賴關(guān)系梳星。
- 梯度爆炸問題:有時梯度反而會增長得過快滚朵,導(dǎo)致數(shù)值溢出(梯度爆炸),使得訓(xùn)練不穩(wěn)定甚至不可行瞳购。
于是提出了長短時記憶網(wǎng)絡(luò)(LSTM)(論文地址)亏推,它的結(jié)構(gòu)如下所示:
2.2 LSTM結(jié)構(gòu)
LSTM引入三個門(輸入門吞杭、遺忘門和輸出門)和一個記憶單元变丧,這些門控制著信息的流動,允許LSTM在長序列中選擇性地記憶或遺忘信息童擎。
2.2.1 核心
首先是核心,這條長直線被稱為細(xì)胞狀態(tài)班挖,決定什么樣的信息會被保留芯砸,什么樣的信息會被遺忘
2.2.2 門結(jié)構(gòu)
而決定哪些信息通過即是通過如下所示的門結(jié)構(gòu)完成假丧,門是由sigmoid層和點(diǎn)乘操作組成的,sigmoid層輸出0-1渔期,0表示不允許通過渴邦,1表示都可以通過,中間的即表示可以通過的部分
在LSTM中迅办,有著三個門章蚣,即遺忘門纤垂、輸入門和輸出門
(1)遺忘門
結(jié)構(gòu)如下
結(jié)合結(jié)構(gòu)可看出,和通過sigmoid層后贾虽,輸出吼鱼,的值為0表示完全丟棄菇肃,1表示完全保留。
所以它負(fù)責(zé)決定保留多少上一時刻的單元狀態(tài)到當(dāng)前時刻的單元狀態(tài)
(2)輸入門
結(jié)構(gòu)如下
決定保留多少當(dāng)前時刻的輸入到當(dāng)前時刻的單元狀態(tài)蟆技,一個是先通過sigmoid層決定要更新什么值,另一個部分是tanh層旺聚,把需要更新的信息更新到細(xì)胞狀態(tài)里
然后再更新舊細(xì)胞狀態(tài)
將更新為砰粹,就是把經(jīng)過遺忘門后傳遞來的信息加上這時的輸入門的信息妻坝,這個也是傳遞給下一個單元的
(3)輸出門
決定當(dāng)前時刻的單元狀態(tài)有多少輸出刽宪。sigmoid層確定細(xì)胞狀態(tài)的哪個部分輸出,通過 tanh 進(jìn)行處理圣拄,并將它和 sigmoid 門的輸出相乘庇谆,得到我們確定輸出的那部分
三,GRU
GRU(Gated Recurrent Unit串述,門控循環(huán)單元)是一種類似于LSTM的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)變體寞肖,也是為了解決傳統(tǒng)RNN的梯度消失和梯度爆炸問題而提出的。
內(nèi)部結(jié)構(gòu)如下:
與LSTM相比觅赊,GRU的結(jié)構(gòu)更加簡單琼稻,只有兩個門帕翻,更新門和重置門
- 更新門(Update Gate):控制了新輸入數(shù)據(jù)與之前記憶的融合程度。更新門的開關(guān)性質(zhì)允許GRU決定保留多少先前的信息嘀掸。
- 重置門(Reset Gate):控制了之前記憶對當(dāng)前時間步輸入的影響程度横殴。通過這種方式,GRU能夠選擇性地忽略先前的信息梨与,從而適應(yīng)不同時間步的數(shù)據(jù)特征文狱。
GRU的訓(xùn)練速度通常更快,參數(shù)數(shù)量更少呻粹。由于其較簡單的結(jié)構(gòu)和良好的性能苏研,GRU在很多應(yīng)用中被廣泛使用,尤其是當(dāng)計算資源有限或需要快速迭代模型時筹燕。