深度學習模型1:理解LSTM和BiLSTM
因為最近科研復現論文中需要了解單向LSTM和雙向LSTM,所以就學習了一下LSTM的基本原理,下面孬孬帶著大家一起學習一下,感謝大家的一鍵三連
一、RNN
因為談到LSTM,就必不可少的會考慮RNN,對應的這是一個脈絡傳承下來的,循環神經網絡。
對于RNN如上圖所示,對應的輸入的時不同的時間段,對應輸出得到的也是對應的不同的時間段,因為他們神經網絡是相連的,所以會捕獲對應的時間關系,對應舉例比如輸出 “h1” 就會受到輸入x0和x1的共同影響的。但是RNN會有長期以來的問題,簡單來說長期依賴的問題就是在每一個時間的間隔不斷增大時,RNN會喪失到連接到遠處信息的能力,比如對應ht+1的輸出受到x0/x1這種遠處輸入影響。
二、LSTM
因此,LSTM就是為了解決長期依賴問題而生的,LSTM通過刻意的設計來避免長期依賴問題。記住長期的信息在實踐中是 LSTM的默認行為,而非需要付出很大代價才能獲得的能力!
對應的LSTM圖如上,相比前面的RNN的圖,LSTM增加了很多設置,也就是很多"閾值",下面帶著大家介紹一下:包括細胞狀態(Ct)、遺忘門、輸入門和輸出門。
1.細胞狀態(Ct)
t時刻的記憶信息,用來保存重要信息。就好像我們的筆記本一樣,保存了我們以前學過的知識點。如下圖的水平線從圖上方貫穿運行,直接在整個鏈上運行,使得信息在上面流傳保持不變會很容易。
2.遺忘門
控制遺忘上一層細胞狀態的內容,根據上一序列的ht-1和本序列的Xt為輸入,通過sigmoid激活函數,得到上一層細胞狀態內容哪些需要去除,那些需要保留。值得注意的是,該輸入是以向量的形式,我們希望遺忘門輸出的值大多為0或1,即對向量中的每個值是完全忘記或者完全記住,因此我們使用的是sigmoid函數作為激活函數,因為該函數在許多取值范圍內的值都接近于0或1(這里不能用階躍函數作為激活函數,因為它在所有位置的梯度都為0,無法作為激活函數)。其他門使用sigmoid函數同理。因此,雖然在其他神經網絡可以變換激活函數,但并不建議變換LSTM的激活函數。
以一個例子來說明遺忘門的作用:在語言模型中,細胞狀態可能保存著這樣的重要信息:當前主語為單數或者復數等。如當前的主語為“小明”,當輸入為“同學們”,此時遺傳門就要開始“干活”了,將“小明”遺忘,主語為單數形式遺忘。
3.輸入門
處理當前序列位置的輸入,確定需要更新的信息,去更新細胞狀態。此過程分為兩部分,一部分是使用包含sigmoid層的輸入門決定哪些新信息該被加入到細胞狀態;確定了哪些新信息要加入后,需要將新信息轉換成能夠加入到細胞狀態的形式。所以另一部分是使用tanh函數產生一個新的候選向量。(可以這么理解,LSTM的做法是對信息都轉為能加入細胞狀態的形式,然后再通過第一部分得到的結果確定其中哪些新信息加入到細胞狀態。)
有了遺忘門和輸入門,現在我們就能把細胞狀態Ct?1更新為Ct了。如下圖所示,其中ft×Ct?1表示希望刪除的信息,it×Ct表示新增的信息。
4.輸出門
最后要基于細胞狀態保存的內容來確定輸出什么內容。即選擇性的輸出細胞狀態保存的內容。類似于輸入門兩部分實現更新一樣,輸出門也是需要使用sigmoid激活函數確定哪個部分的內容需要輸出,然后再使用tanh激活函數對細胞狀態的內容進行處理(因為通過上面計算得到的Ct每個值不是在tanh的取值范圍-1~1中,需要調整),將這兩部分相乘就得到了我們希望輸出的那部分。
舉個例子,同樣在語言模型中,細胞狀態中此時包含很多重要信息,比如:主語為單數形式,時態為過去時態,主語的性別為男性等,此時輸入為一個主語,可能需要輸出與動詞相關的信息,這個時候只需要輸出是單數形式和時態為過程,而不需要輸出主語性別就可確定動詞詞性的變化。
三、雙向LSTM(Bi-directional LSTM)
為什么會有雙向的這種考慮,其實也很容易理解,因為之前的LSTM都只能依據之前時刻的時序信息來預測下一時刻的輸出,但在有些問題中,當前時刻的輸出不僅和之前的狀態有關,還可能和未來的狀態有關系。比如預測一句話中缺失的單詞不僅需要根據前文來判斷,還需要考慮它后面的內容,真正做到基于上下文判斷。因此就是和前后都有關系,所以就是需要兩個方向相反的LSTM拼在一起,來實現.
前向的LSTM與后向的LSTM結合成BiLSTM。比如,我們對“我愛中國”這句話進行編碼,模型如圖所示。
參考文獻
https://zhuanlan.zhihu.com/p/47802053
https://blog.csdn.net/v_JULY_v/article/details/89894058
https://blog.csdn.net/qq_36696494/article/details/89028956
https://www.cnblogs.com/Allen-rg/p/11712703.html