我們先來看看基本的lstm示意圖:
為了解決記憶只是基於*****的線性相加造成學習能力弱,引入了input gate和output gate,控制不同時序記憶的影響因子。
下面來看看具體的lstm前向傳導過程:
輸入資訊前向傳播
(以下內容出自「understanding lstm networks」)
lstm的第一步是決定我們要從細胞狀態中丟棄什麼資訊。 該決定由被稱為「忘記門」的sigmoid層實現。它檢視ht-1(前乙個輸出)和xt(當前輸入),並為單元格狀態ct-1(上乙個狀態)中的每個數字輸出0和1之間的數字。1代表完全保留,而0代表徹底刪除。
讓我們回到語言模型的例子,試圖根據以前的語料來**下乙個單詞。 在這樣的問題中,細胞狀態可能包括當前主題的性別,從而決定使用正確的代詞。 當我們看到乙個新主題時,我們想要忘記舊主題的性別。
下一步是決定我們要在細胞狀態中儲存什麼資訊。 這部分分為兩步。 首先,稱為「輸入門層」的sigmoid層決定了我們將更新哪些值。 接下來乙個tanh層建立候選向量ct,該向量將會被加到細胞的狀態中。 在下一步中,我們將結合這兩個向量來建立更新值。
(門的啟用函式使用sigmoid是為了將輸出對映為[0,1],來控制門的開啟程度,而輸入的啟用函式使用tanh,一種說法是讓資訊對映到[-1,1],使得均值接近0,方便後續處理)
在我們的語言模型的例子中,我們希望將新主題的性別新增到單元格狀態,以替換我們忘記的舊物件。
現在是時候去更新上乙個狀態值ct−1了,將其更新為ct。前面的步驟已經決定了應該做什麼,我們只需實際執行即可。
我們將上乙個狀態值乘以ft,以此表達期待忘記的部分。之後我們將得到的值加上 it∗c̃ t。這個得到的是新的候選值, 按照我們決定更新每個狀態值的多少來衡量.
在語言模型的例子中,對應著實際刪除關於舊主題性別的資訊,並新增新資訊,正如在之前的步驟中描述的那樣。
最後,我們需要決定我們要輸出什麼。 此輸出將基於我們的細胞狀態,但將是乙個過濾版本。 首先,我們執行乙個sigmoid層,它決定了我們要輸出的細胞狀態的哪些部分。 然後,我們將單元格狀態通過tanh(將值規範化到-1和1之間),並將其乘以sigmoid門的輸出,至此我們只輸出了我們決定的那些部分。
對於語言模型的例子,由於只看到乙個主題,考慮到後面可能出現的詞,它可能需要輸出與動詞相關的資訊。 例如,它可能會輸出主題是單數還是複數,以便我們知道動詞應該如何組合在一起。
到目前為止,所描述的是乙個很正常的lstm。 但並不是所有的lstm都與上述相同。 事實上,似乎幾乎每一篇涉及lstm的**都使用了乙個略有不同的版本,差異很小,但有一些值得一看。
乙個比較流行的lstm變種是由gers & schmidhuber (2000)提出的,新增「peephole connections」。這意味著,我們允許gate層去看細胞的狀態。
上面的圖中所有的sigmoid層都增加了窺視,但許多**實現不是針對所有都增加窺探,而是有針對性的增加。
另一種變化是使用耦合的忘記和輸入門,而不是單獨決定要忘記什麼、新增什麼,這個決定需要一起做。 只有當需要輸入某些資訊的時候,我們才會忘記這個位置的歷史資訊。只有當我們忘記一些歷史資訊的時候,我們才在狀態中新增新的資訊。
lstm的乙個稍微更顯著的變化是由cho介紹的門控迴圈單元(或gru)。 它將忘記和輸入門組合成乙個單一的「更新門」。它還將單元格狀態和隱藏狀態合併,並進行了一些其他更改。 所得到的模型比標準lstm模型更簡單,並且越來越受歡迎。
這些只是最顯著的lstm變體中的幾個, 還有很多其他的,比如depth gated rnns,還有一些完全不同的處理長期依賴的方法,例如clockwork。哪些變體最好、差異的重要性等, greff做乙個很好的變體的比較,發現他們都差不多。 jozefowicz測試了大量的rnn架構,發現一些rnn結構在某些任務上要比lstm更好。
lstm是我們使用rnn的乙個巨大進步。 很自然的想法:更大的進步嗎? 研究人員的共同觀點是——有,那就是注意力模型。這個想法是讓rnn的每一步挑選資訊的過程都參照上層的主題資訊。
LSTM模型介紹
迴圈神經網路解決了這個問題。它們是帶有迴圈的網路,允許資訊持續存在。在上圖中,一塊神經網路a檢視一些輸入xt並輸出乙個值ht。迴圈允許資訊從網路的乙個步驟傳遞到下乙個步驟。這些迴圈使得迴圈神經網路看起來有點神秘。但是,如果你多想一點,事實證明它們與普通的神經網路並沒有什麼不同。可以將迴圈神經網路視為...
(譯) LSTM 網路原理介紹
上述兩圖分別為閉環結構和閉環展開結構 rnn相對傳統的ann網路結構實現了資訊的保留,具有一定的記憶功能。可以將過去的資訊應用到當前的任務中。為完成當前任務如果僅僅需要短期的資訊而不需要長期的資訊可以使用rnn。但是如果如果任務需要更多的上下文資訊,僅僅依靠少量的過去資訊無法完成準確的 也就是過去資...
lstm原理 長短期記憶網路LSTM
上兩小節我們主要講述了迴圈神經網路rnn,但是儘管 rnn 被設計成可以利用歷史的資訊來 當前的決策,例如使用之前出現的單詞來加強對當前單詞的理解,但是 rnn決策的主要還是最後輸入的一些訊號,更早之前的訊號會隨著時間的推遲而變得強度越來越低,它對後續的影響越來越弱。這樣就會給rnn帶來了新的技術挑...