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