迴圈神經網路解決了這個問題。 它們是帶有迴圈的網路,允許資訊持續存在。
在上圖中,一塊神經網路a檢視一些輸入xt並輸出乙個值ht。 迴圈允許資訊從網路的乙個步驟傳遞到下乙個步驟。
這些迴圈使得迴圈神經網路看起來有點神秘。 但是,如果你多想一點,事實證明它們與普通的神經網路並沒有什麼不同。 可以將迴圈神經網路視為同一網路的多個副本,每個副本都將訊息傳遞給後繼者。 考慮如果我們展開迴圈會發生什麼:
這種類似鏈的性質表明,遞迴神經網路與序列和列表密切相關。 它們是用於此類資料的神經網路的自然架構。
在過去幾年中,將rnn應用於各種問題取得了令人難以置信的成功:語音識別,語言建模,翻譯,影象字幕…這個列表還在繼續增加。
這些成功的關鍵在於使用「lstm」,這是一種非常特殊的遞迴神經網路,對於許多任務而言,它比標準版本好得多。 幾乎所有基於遞迴神經網路的令人興奮的應用都是用它們實現的。 這裡主要**這些lstm。
長短期記憶網路 - 通常只稱為「lstm」 - 是一種特殊的rnn,能夠學習長期的規律。 它們是由hochreiter&schmidhuber(1997)首先提出的,並且在後來的工作中被許多人精煉和推廣。他們在各種各樣的問題上應用得非常好,現在被廣泛的使用。
lstm明確旨在避免長期依賴性的問題。 長時間記住資訊實際上是他們的預設行為,而不是他們難以學習的東西!
所有遞迴神經網路都具有神經網路重複模組鏈的形式。 在標準rnn中,該重複模組將具有非常簡單的結構,例如單個tanh層。
lstm也具有這種類似鏈的結構,但重複模組具有不同的結構。 有四個,而不是乙個神經網路層,如下圖所示。
我們將逐步介紹lstm圖。 現在,讓我們來介紹所使用的符號。
在上圖中,每箭頭都攜帶乙個向量,從上乙個節點的輸出到其他節點的輸入。 粉色圓圈表示逐點運算,如向量加法,而黃色框表示神經網路層。 箭頭合併表示連線,而箭頭分叉表示其內容被複製,副本將轉移到不同的位置。
lstm的關鍵是單元狀態,水平線貫穿圖的頂部。
有些像傳送帶。 它直接沿著整個鏈執行,只有一些次要的線**互。 資訊很容易沿著它不變地流動。
lstm能夠移除或新增資訊到結點來改變資訊流狀態,由稱為門(gate)的結構精心調節。
門是一種可選擇通過資訊的節點。 它們由西格瑪(sigmoid)神經網路層和逐點乘法運算組成。
sigmoid層輸出0到1之間的數字,描述每個資訊向量應該通過多少。 值為零意味著「不讓任何東西通過」,而值為1則意味著「讓一切都通過!」
lstm具有三個這樣的門,用於保護和控制資訊流向量狀態。
我們的lstm的第一步是確定我們將從節點狀態中丟棄哪些資訊。 該判定由稱為「遺忘門層」的西格瑪(sigmoid)層決定。它檢視ht-1和xt,並為單元狀態ct-1中的每個數字輸出0到1之間的數字。 1代表「完全保持這個」,而0代表「完全擺脫這個」。
讓我們回到語言模型示例,試圖根據以前的所有單詞**下乙個單詞。 在這樣的問題中,節點狀態可能包括當前受試者的性別,因此可以使用正確的代詞。 當我們看到乙個新主題時,我們想要忘記舊主題的性別。
下一步是確定我們將在單元節點狀態中儲存哪些新資訊。 這有兩個部分。 首先,稱為「輸入門層」的sigmoid層決定我們將更新哪些值。 接下來,tanh層建立可以新增到狀態的新候選值c~t的向量。 在下一步中,我們將結合這兩個來建立狀態更新。
在我們語言模型的例子中,我們想要將新主題的性別新增到單元格狀態,以替換我們忘記的舊主題。
現在是時候將舊的單元狀態ct-1更新為新的單元狀態ct。 之前的步驟已經決定要做什麼,我們只需要實際做到這一點。
我們將舊狀態乘以ft,忘記我們之前決定忘記的事情。 然後我們新增* c~t。 這是新的候選值,根據我們決定更新每個狀態的值來縮放。
在語言模型的情況下,我們實際上放棄了關於舊主題的性別的資訊並新增新資訊,正如我們在前面的步驟中所做的那樣。
最後,我們需要決定我們要輸出的內容。 此輸出將基於我們的單元狀態,但將是過濾版本。 首先,我們執行乙個sigmoid層,它決定我們要輸出的單元狀態的哪些部分。 然後,我們將單元狀態置於tanh(將值推到介於-1和1之間)並將其乘以sigmoid門的輸出,以便我們只輸出我們決定的部分。
對於語言模型示例,由於它只是看到乙個主題,它可能想要輸出與動詞相關的資訊,以防接下來會發生什麼。 例如,它可能輸出主語是單數還是複數,以便我們知道動詞應該與什麼形式共軛,如果接下來的話。
LSTM入門介紹
我們先來看看基本的lstm示意圖 為了解決記憶只是基於 的線性相加造成學習能力弱,引入了input gate和output gate,控制不同時序記憶的影響因子。下面來看看具體的lstm前向傳導過程 輸入資訊前向傳播 以下內容出自 understanding lstm networks lstm的第...
DeepLearning之LSTM模型輸入引數
lstm模型 輸入引數理解 long short term memory lstm是rnn模型的一種變種模式,增加了輸入門,遺忘門,輸出門。lstm也是在時間序列 中的常用模型。小白我也是從這個模型入門來開始機器學習的坑。lstm的基本概念與各個門的解釋已經有博文寫的非常詳細 推薦博文 譯 理解ls...
(譯) LSTM 網路原理介紹
上述兩圖分別為閉環結構和閉環展開結構 rnn相對傳統的ann網路結構實現了資訊的保留,具有一定的記憶功能。可以將過去的資訊應用到當前的任務中。為完成當前任務如果僅僅需要短期的資訊而不需要長期的資訊可以使用rnn。但是如果如果任務需要更多的上下文資訊,僅僅依靠少量的過去資訊無法完成準確的 也就是過去資...