1. 摘要
對于RNN解決了之前信息保存的問題,例如,對于閱讀一篇文章,RNN網絡可以借助前面提到的信息對當前的詞進行判斷和理解,這是傳統的網絡是不能做到的。但是,對于RNN網絡存在長期依賴問題,比如看電影的時候,某些細節需要依賴很久以前的一些信息,而RNN網絡并不能很好的保存很久之前的信息,隨著時間間隔不斷增大,RNN網絡會喪失學習到很遠的信息能力,也就是說記憶容量是有限的。例如,對于閱讀一本書,從頭到尾一字不漏的閱讀,肯定是越遠的東西忘得越多。所以引入了LSTM網絡,對于LSTM來解決梯度消失梯度爆炸問題。
LSTM其實也是RNN的一種變體,大體結構幾乎是一樣的,但他們又有區別他的“記憶細胞”被改造過,該記憶的信息會一直傳遞下去,而不該記憶的東西會被“門”截斷。
2. LSTM網絡
對于RNN網絡都是具有重復神經網絡模塊的鏈式形式,在一個標準RNN中這個重復的模塊只要一個非常簡單的結構,例如一個tanh層。
對于LSTM同樣是這樣的結構,但是重復的模塊變得復雜了。
對于圖中的一些細節,
在LSTM網絡的圖中,每一條黑線表示向量的傳輸,從一個節點的輸出傳入其它節點的輸出。對于粉紅色的圈代表著節點的操作,如向量的求和等。黃色的矩陣是學習到的網絡層。Concatenate的線表示向量的連接,Copy的線表示內容復制,然后輸出到不同的位置。
3. LSTM的關鍵點
對于LSTM的關鍵是細胞狀態,細胞的狀態類似于傳送帶,直接在整個鏈路上運行,只有一些少量的線性交互。
4. 細胞狀態的控制
LSTM是通過“門”來控制細胞狀態的,通過“門”來選擇性通過,去除或者增加信息到細胞狀態。它包含一個sigmoid網絡層和一個pointwise乘法操作。Sigmoid層輸入0到1之間的概率值,藐視每個部分有多少量可以通過,0代表不允許任何量通過,1代表允許任何量通過。LSTM是擁有三個門,來保護和控制細胞狀態的。
5. LSTM幾個關鍵“門”與操作
STEP 1: 決定從“細胞狀態”中丟棄什么信息即“忘記門”。比如一篇小說的推導,小說中可能有幾個人物,在讀小說時候我們都會記住,但有些是不重要的這時候我就選擇忘掉,而把重要的東西記住。總之,如果要決定之前的記憶以多大的程度被忘掉或者需要被保留,我們需要通過sigmoid函數去參考上一次的結果與當前考到的內容。
ft是輸出0到1的概率,表示已多大的程度忘記之前的信息。h表示上一次輸出的結果,x表示當前輸入的信息。
STEP 2: 決定放什么信息到“細胞狀態”中。從step 1中我們在傳送帶上忘記了一些東西,那我們應該補充點東西,對細胞轉態進行更新。也就是說哪些東西要記住,這一步就是君頂放什么心信息到“細胞狀態”中。
這里的Sigmoid層是決定什么值需要更新,也就是這一時刻我們新學到我們學到的東西哪些應該要記住,以多大的程度選擇記住;Tanh層創建了一個新的候選值Ct,表示我們新學到的東西。
STEP 3: 更新細胞狀態。前面兩步就是為細胞狀態的更新做準備的,更新C(t-1)為Ct。也就是把舊狀態與ft相乘,丟掉我們確定需要丟棄的信息,加上it*Ct。這就是新的候選值,根據我們決定更新每個狀態的程度進行變化。
從數學的角度來看,與RNN相比,在求偏導的時候RNN是進行鏈式相乘的,有一個效果不好,那么就會影響整個系統,效果影響到整個網絡。而在LSTM中,從以上的公式可看出,做完Tanh后沒在進行求和,所以再求偏導的時候,就算有一個效果不好也不會影響到整個網絡,因為這里是進行加法運算的,所以很大程度上解決了梯度消失梯度爆炸問題。
STEP 4: 基于“細胞狀態”輸出。首先運行一個Sigmoid層來確定細胞狀態的哪個部分將輸出,接著用Tanh來處理細胞狀態,這是一個從-1到1的值。然后再講它和Sigmoid門的輸出相乘,輸出我們確定輸出的那個部分。比如我們可能需要單復數信息來確定輸出“他”還是“他們”。最終輸出我們想要輸出的部分。
6. LSTM主要變體
變種1:通過使用coupled忘記和輸出門,之前是分開確定需要忘記和添加的信息,這里是一同作出決定。
變種二:Gated Recurrent Unit (GRU),2014年提出的,他將忘記門和輸出門合成一個單一的更新門,同樣還混合了細胞狀態和隱藏轉態,和其他一起改動,與標準的LSTM簡單。
-
神經網絡
+關注
關注
42文章
4764瀏覽量
100542 -
rnn
+關注
關注
0文章
88瀏覽量
6875
原文標題:談談LSTM(Long Short-Term Memory)長短期記憶網絡
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論