-
當前位置:首頁 > 創(chuàng)意學院 > 技術 > 專題列表 > 正文
lstm神經網絡(lstm神經網絡原理)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于lstm神經網絡的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關鍵詞,就能返回你想要的內容,越精準,寫出的就越詳細,有微信小程序端、在線網頁版、PC客戶端
創(chuàng)意嶺作為行業(yè)內優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、如何簡單的理解LSTM——其實沒有那么復雜
譯自原文: Understanding LSTM Networks
人類針對每個問題的思考,一般不會是完全的從頭開始思考。正如當你閱讀這篇譯文的時候,你會根據已經閱讀過的內容來對后面的內容進行理解,你不會把之前的東西都丟掉從頭進行思考,你對內容的理解是貫穿的。
傳統(tǒng)的神經網絡做不到這一點,而這似乎是一個主要的缺點。 例如,假設您想對電影中的每個事件進行分類。我們無法想象傳統(tǒng)神經網絡如何能夠利用前面的場景去干預后面的預測。
幸好循環(huán)神經網絡解決了這個問題, 它們是具有循環(huán)的網絡,允許信息持續(xù)存在,示意圖如下。
在上圖中,一組神經網絡 A接收某些輸入xt,并輸出一個值ht。 循環(huán)允許信息從網絡的一個步驟傳遞到下一個。
這些循環(huán)使得循環(huán)神經網絡看起來很神秘。 然而,如果你再多考慮一下,你就會發(fā)現其實它和傳統(tǒng)的神經網絡并不是完全不同。 一個循環(huán)神經網絡可以被認為是同一個網絡的多個副本,每一個都傳遞一個消息給后繼者。 我們考慮一下如果將循環(huán)展開會發(fā)生什么:(示意如下)
這種鏈狀特征揭示了循環(huán)神經網絡與序列和列表密切相關。 它們是用于此類數據的自然神經網絡結構。
他們肯定是有用的! 在過去的幾年里,RNN應在語音識別、語言建模、翻譯,圖像字幕等各種問題上取得了巨大成功。在Andrej Karpathy的這篇博文—— RNN的難以理解的有效性(The Unreasonable Effectiveness of Recurrent Neural Networks) 中討論了RNN取得的驚人成果,他們真的很神奇
這些成功的案例的共同點就是都是用了LSTM,這是一種非常特殊的循環(huán)神經網絡,對于許多任務來說,它們比基準版本好的多。 幾乎所有令人興奮的結果都是基于循環(huán)神經網絡實現的,這篇文章將探討這些LSTM,帶你解開LSTM的神秘面紗。
RNN顯著的魅力是將以前的信息連接到當前任務的這種思路,例如使用先前的視頻幀可以有助于對當前幀的理解。 如果RNN可以做到這一點,這將非常有用。 但他可以嗎?這要看情況。
有時,為了處理當前的任務,我們只需要查看最近的信息。 例如,考慮一種語言模型,該模型根據前面的詞語來預測下一個單詞。 如果我們試圖預測““the clouds are in the sky”的最后一個單詞,我們不需要任何其他的語境信息——下一個單詞顯然是sky。 在相關信息和需要該信息的距離較近的時候,RNN能夠學會去利用歷史信息。
但也有需要更多上下文的情況。 考慮嘗試預測文本中的最后一個單詞“I grew up in France… I speak fluent French.”。最近的信息表明,下一個單詞可能是一種語言的名稱,但如果我們想縮范圍確定那種語言,我們需要從前面獲取法國的背景。 相關信息和需要該信息的地方的距離變得非常大的情況是很可能的。
不幸的是,隨著距離的增加,RNN無法有效的利用歷史信息。
在理論上,RNN絕對有能力處理這樣的“長依賴”問題。人們可以仔細挑選參數來解決這種形式的問題。 可悲的是,在實踐中,RNN似乎無法學習到這些特征。 Hochreiter 和 Bengio ,曾經深入的研究過這個問題,他們發(fā)現一些根本性的原因,能夠解釋RNN為什么不work。
謝天謝地,LSTM沒有這個問題!
長短記憶神經網絡——通常稱作LSTM,是一種特殊的RNN,能夠學習長的依賴關系。 他們由 Hochreiter&Schmidhuber 引入,并被許多人進行了改進和普及。他們在各種各樣的問題上工作的非常好,現在被廣泛使用。
LSTM是為了避免長依賴問題而精心設計的。 記住較長的歷史信息實際上是他們的默認行為,而不是他們努力學習的東西。
所有循環(huán)神經網絡都具有神經網絡的重復模塊鏈的形式。 在標準的RNN中,該重復模塊將具有非常簡單的結構,例如單個tanh層。
LSTM也擁有這種鏈狀結構,但是重復模塊則擁有不同的結構。與神經網絡的簡單的一層相比,LSTM擁有四層,這四層以特殊的方式進行交互。
不要過早擔心細節(jié)問題, 稍后我們將一步一步地剖析LSTM。 現在,讓我們先熟悉一下我們將要使用的符號。
在上圖中,每一行都帶有一個向量,該向量從一個節(jié)點輸出到其他節(jié)點的輸入。 粉紅色圓圈表示點向運算,如向量加法、點乘,而黃色框是學習神經網絡層。 線的合并表示連接,而線的交叉表示其內容正在復制,副本將轉到不同的位置。
LSTM的關鍵是細胞狀態(tài),表示細胞狀態(tài)的這條線水平的穿過圖的頂部。
細胞的狀態(tài)類似于輸送帶,細胞的狀態(tài)在整個鏈上運行,只有一些小的線性操作作用其上,信息很容易保持不變的流過整個鏈。
LSTM確實具有刪除或添加信息到細胞狀態(tài)的能力,這個能力是由被稱為門(Gate)的結構所賦予的。
門(Gate)是一種可選地讓信息通過的方式。 它由一個Sigmoid神經網絡層和一個點乘法運算組成。
Sigmoid神經網絡層輸出0和1之間的數字,這個數字描述每個組件有多少信息可以通過, 0表示不通過任何信息,1表示全部通過
LSTM有三個門,用于保護和控制細胞的狀態(tài)。
LSTM的第一步是決定我們要從細胞狀態(tài)中丟棄什么信息。 該決定由被稱為“忘記門”的Sigmoid層實現。它查看ht-1(前一個輸出)和xt(當前輸入),并為單元格狀態(tài)Ct-1(上一個狀態(tài))中的每個數字輸出0和1之間的數字。1代表完全保留,而0代表徹底刪除。
讓我們回到語言模型的例子,試圖根據以前的語料來預測下一個單詞。 在這樣的問題中,細胞狀態(tài)可能包括當前主題的性別,從而決定使用正確的代詞。 當我們看到一個新主題時,我們想要忘記舊主題的性別。
下一步是決定我們要在細胞狀態(tài)中存儲什么信息。 這部分分為兩步。 首先,稱為“輸入門層”的Sigmoid層決定了我們將更新哪些值。 接下來一個tanh層創(chuàng)建候選向量Ct,該向量將會被加到細胞的狀態(tài)中。 在下一步中,我們將結合這兩個向量來創(chuàng)建更新值。
在我們的語言模型的例子中,我們希望將新主題的性別添加到單元格狀態(tài),以替換我們忘記的舊對象。
現在是時候去更新上一個狀態(tài)值Ct−1了,將其更新為Ct。簽名的步驟以及決定了應該做什么,我們只需實際執(zhí)行即可。
我們將上一個狀態(tài)值乘以ft,以此表達期待忘記的部分。之后我們將得到的值加上 it∗C̃ t。這個得到的是新的候選值, 按照我們決定更新每個狀態(tài)值的多少來衡量.
在語言模型的例子中,對應著實際刪除關于舊主題性別的信息,并添加新信息,正如在之前的步驟中描述的那樣。
最后,我們需要決定我們要輸出什么。 此輸出將基于我們的細胞狀態(tài),但將是一個過濾版本。 首先,我們運行一個sigmoid層,它決定了我們要輸出的細胞狀態(tài)的哪些部分。 然后,我們將單元格狀態(tài)通過tanh(將值規(guī)范化到-1和1之間),并將其乘以Sigmoid門的輸出,至此我們只輸出了我們決定的那些部分。
對于語言模型的例子,由于只看到一個主題,考慮到后面可能出現的詞,它可能需要輸出與動詞相關的信息。 例如,它可能會輸出主題是單數還是復數,以便我們知道動詞應該如何組合在一起。
到目前為止,所描述的是一個很正常的LSTM。 但并不是所有的LSTM都與上述相同。 事實上,似乎幾乎每一篇涉及LSTM的論文都使用了一個略有不同的版本,差異很小,但有一些值得一看。
一個比較流行的LSTM變種是由 Gers & Schmidhuber (2000) 提出的,添加“peephole connections”。這意味著,我們允許gate層去看細胞的狀態(tài)。
上面的圖中所有的Sigmoid層都增加了窺視,但許多論文實現不是針對所有都增加窺探,而是有針對性的增加。
另一種變化是使用耦合的忘記和輸入門,而不是單獨決定要忘記什么、添加什么,這個決定需要一起做。 只有當需要輸入某些信息的時候,我們才會忘記這個位置的歷史信息。只有當我們忘記一些歷史信息的時候,我們才在狀態(tài)中添加新的信息。
LSTM的一個稍微更顯著的變化是由 Cho 介紹的門控循環(huán)單元(或GRU)。 它將忘記和輸入門組合成一個單一的“更新門”。它還將單元格狀態(tài)和隱藏狀態(tài)合并,并進行了一些其他更改。 所得到的模型比標準LSTM模型更簡單,并且越來越受歡迎。
這些只是最顯著的LSTM變體中的幾個, 還有很多其他的,比如 Depth Gated RNNs ,還有一些完全不同的處理長期依賴的方法,例如 Clockwork 。哪些變體最好、差異的重要性等, Greff 做一個很好的變體的比較,發(fā)現他們都差不多。 Jozefowicz 測試了大量的RNN架構,發(fā)現一些RNN結構在某些任務上要比LSTM更好。
此前,我提到人們通過RNN實現了顯著的成果。 基本上所有這些都是使用LSTM實現的。 對于大多數任務而言LSTM很有效。
一般介紹LSTM的文章大部分會寫一大組方程式,這使得LSTM看起來很嚇人。 希望通過這篇文章的逐步講解,幫助讀者更好的理解LSTM。
LSTM是我們使用RNN的一個巨大進步。 很自然的想法:更大的進步嗎? 研究人員的共同觀點是——有,那就是注意力模型。這個想法是讓RNN的每一步挑選信息的過程都參照上層的主題信息,關于Attention模型后面我會再進行詳盡的描述,這里不再討論。
希望通過本文讓想了解和使用LSTM的人能夠了解其工作原理,能更好的使用,不被大量的數學公式和推導所阻礙。
二、LSTM神經網絡輸入輸出究竟是怎樣的
每個時刻的輸入都是一個向量,它的長度是輸入層神經元的個數。在你的問題中,這個向量就是embedding向量。它的長度與時間步的個數(即句子的長度)沒有關系。
每個時刻的輸出是一個概率分布向量,其中最大值的下標決定了輸出哪個詞。
三、【譯】理解LSTM(通俗易懂版)
人對一個問題的思考不會完全從頭開始。比如你在閱讀本片文章的時,你會根據之前理解過的信息來理解下面看到的文字。在理解當前文字的時候,你并不會忘記之前看過的文字,從頭思考當前文字的含義。
傳統(tǒng)的神經網絡并不能做到這一點,這是在對這種序列信息(如語音)進行預測時的一個缺點。比如你想對電影中的每個片段去做事件分類,傳統(tǒng)的神經網絡是很難通過利用前面的事件信息來對后面事件進行分類。
而循環(huán)神經網絡(下面簡稱RNNs)可以通過不停的將信息循環(huán)操作,保證信息持續(xù)存在,從而解決上述問題。RNNs如下圖所示
可以看出A是一組神經網絡(可以理解為一個網絡的自循環(huán)),它的工作是不停的接收 并且輸出 。從圖中可以看出A允許將信息不停的再內部循環(huán),這樣使得它可以保證每一步的計算都保存以前的信息。
這樣講可能還是有點暈,更好的理解方式,也是很多文章的做法,將RNNs的自循環(huán)結構展開,像是將同一個網絡復制并連成一條線的結構,將自身提取的信息傳遞給下一個繼承者,如下圖所示。
這種鏈式的結構揭示了RNNs與序列和列表類型的數據密切相關。好像他們生來就是為了處理序列類型數據的。
誰說不是呢!在過去的幾年里,RNNs在語音識別、文字建模、翻譯、字幕等領域有很成功的應用。在Andrej Karpathy寫的博客 The Unreasonable Effectiveness of Recurrent Neural Networks 中討論了RNNs取得的驚人成果,這里就不詳細討論了。
很對成功的案例都有一個共性,就是都用了一種叫LSTMs的特殊的RNNs網絡結構。下面就來看看什么是LSTMs。
從之前的描述可以看出來,RNNs理論上是可以將以前的信息與當前的任務進行連接,例如使用以前的視頻幀來幫助網絡理解當前幀。如果RNNs能做到這一點,那將會是非常的有用。但是他們能做到這點嗎?答案是不一定。
有時候我們需要利用近期的信息來執(zhí)行來處理當前的任務。例如,考慮用一個語言模型通過利用以前的文字信息來預測下一個文字。如果我們需要預測“the clouds are in the sky”這句話的最后一個字,我們不需要其他的信息,通過前面的語境就能知道最后一個字應該是sky。在這種情況下,相關信息與需要該信息的位置距離較近,RNNs能夠學習利用以前的信息來對當前任務進行相應的操作。如下圖所示通過輸入的 信息來預測出
假設現在有個更為復雜的任務,考慮到下面這句話“I grew up in France… I speak fluent French.”,現在需要語言模型通過現有以前的文字信息預測該句話的最后一個字。通過以前文字語境可以預測出最后一個字是某種語言,但是要猜測出French,要根據之前的France語境。這樣的任務,不同之前,因為這次的有用信息與需要進行處理信息的地方之間的距離較遠,這樣容易導致RNNs不能學習到有用的信息,最終推導的任務可能失敗。如下圖所示。
理論上RNNs是能夠處理這種“長依賴”問題的。通過調參來解決這種問題。但是在實踐過程中RNNs無法學習到這種特征。 Hochreiter (1991) [German] 和 Bengio, et al. (1994) 深入研究過為什么RNNs沒法學習到這種特征。
幸好LSTMs這種特殊的RNNs是沒有這個問題的。
Long Short Term Memory networks(以下簡稱LSTMs),一種特殊的RNN網絡,該網絡設計出來是為了解決長依賴問題。該網絡由 Hochreiter & Schmidhuber (1997) 引入,并有許多人對其進行了改進和普及。他們的工作被用來解決了各種各樣的問題,直到目前還被廣泛應用。
所有循環(huán)神經網絡都具有神經網絡的重復模塊鏈的形式。 在標準的RNN中,該重復模塊將具有非常簡單的結構,例如單個tanh層。標準的RNN網絡如下圖所示
LSTMs也具有這種鏈式結構,但是它的重復單元不同于標準RNN網絡里的單元只有一個網絡層,它的內部有四個網絡層。LSTMs的結構如下圖所示。
在解釋LSTMs的詳細結構時先定義一下圖中各個符號的含義,符號包括下面幾種
圖中黃色類似于CNN里的激活函數操作,粉色圓圈表示點操作,單箭頭表示數據流向,箭頭合并表示向量的合并(concat)操作,箭頭分叉表示向量的拷貝操作
LSTMs的核心是細胞狀態(tài),用貫穿細胞的水平線表示。
細胞狀態(tài)像傳送帶一樣。它貫穿整個細胞卻只有很少的分支,這樣能保證信息不變的流過整個RNNs。細胞狀態(tài)如下圖所示
LSTM網絡能通過一種被稱為門的結構對細胞狀態(tài)進行刪除或者添加信息。
門能夠有選擇性的決定讓哪些信息通過。其實門的結構很簡單,就是一個sigmoid層和一個點乘操作的組合。如下圖所示
因為sigmoid層的輸出是0-1的值,這代表有多少信息能夠流過sigmoid層。0表示都不能通過,1表示都能通過。
一個LSTM里面包含三個門來控制細胞狀態(tài)。
前面提到LSTM由三個門來控制細胞狀態(tài),這三個門分別稱為忘記門、輸入門和輸出門。下面一個一個的來講述。
LSTM的第一步就是決定細胞狀態(tài)需要丟棄哪些信息。這部分操作是通過一個稱為忘記門的sigmoid單元來處理的。它通過查看 和 信息來輸出一個0-1之間的向量,該向量里面的0-1值表示細胞狀態(tài) 中的哪些信息保留或丟棄多少。0表示不保留,1表示都保留。忘記門如下圖所示。
下一步是決定給細胞狀態(tài)添加哪些新的信息。這一步又分為兩個步驟,首先,利用 和 通過一個稱為輸入門的操作來決定更新哪些信息。然后利用 和 通過一個tanh層得到新的候選細胞信息 ,這些信息可能會被更新到細胞信息中。這兩步描述如下圖所示。
下面將更新舊的細胞信息 ,變?yōu)樾碌募毎畔? 。更新的規(guī)則就是通過忘記門選擇忘記舊細胞信息的一部分,通過輸入門選擇添加候選細胞信息 的一部分得到新的細胞信息 。更新操作如下圖所示
更新完細胞狀態(tài)后需要根據輸入的 和 來判斷輸出細胞的哪些狀態(tài)特征,這里需要將輸入經過一個稱為輸出門的sigmoid層得到判斷條件,然后將細胞狀態(tài)經過tanh層得到一個-1~1之間值的向量,該向量與輸出門得到的判斷條件相乘就得到了最終該RNN單元的輸出。該步驟如下圖所示
還是拿語言模型來舉例說明,在預測動詞形式的時候,我們需要通過輸入的主語是單數還是復數來推斷輸出門輸出的預測動詞是單數形式還是復數形式。
之前描述的LSTM結構是最為普通的。在實際的文章中LSTM的結構存在各種變式,雖然變化都不會太大,但是也值得一提。
其中一個很受歡迎的變式由 Gers & Schmidhuber (2000) 提出,它在LSTM的結構中加入了“peephole connections.”結構,peephole connections結構的作用是允許各個門結構能夠看到細胞信息,具體如下圖所示。
上圖描繪的是所有門都能看到細胞信息,還有一些變式是在其中的某些門引入細胞信息。
還有一種變式是在忘記門與輸入門之間引入一個耦合。不同于之前的LSTM結構,忘記門和輸入門是獨立的,這個變式是在忘記門刪除歷史信息的位置加入新的信息,在加入新信息的位置刪除舊信息。該結構如下圖所示。
一種比其他形式變化更為顯著的LSTM變式是由 Cho, et al. (2014) 提出的門循環(huán)單元(GRU)。它將忘記門和輸入門合并成一個新的門,稱為更新門。GRU還有一個門稱為重置門。如下圖所示
其中重置門為上圖中前面那個門,決定了如何將新的輸入信息與前面的記憶相結合。更新門為上圖中后面那個門,定義了前面記憶保存到當前時間步的量。 由于該變式的簡單有效,后來被廣泛應用。
這里介紹的只是一些較為有名的LSTM變式,關于LSTM的變式其實還有很多種,像 Yao, et al. (2015) 提出的Depth Gated RNNs。還有其他用于解決長依賴問題的方法,如由 Koutnik, et al. (2014) 提出的 Clockwork RNNs。
至于哪種變式效果最好?各種差異對LSTM的影響有多少?這些問題 Greff, et al. (2015) 做了一些對比,結論是他們基本是一樣的。 Jozefowicz, et al. (2015) 測試了一萬多種RNN結構,發(fā)現在某些指定任務上有些變式還是由于標準LSTMs的。
之前也提到過RNNs取得了不錯的成績,這些成績很多是基于LSTMs來做的,說明LSTMs適用于大部分的序列場景應用。
一般文章寫法會堆一堆公式嚇唬人,希望本文一步一步的拆分能有助于大家的理解。
LSTMs對于RNNs的使用是一大進步。那么現在還有個問題,是否還有更大的進步?對于很多研究者來說,但是是肯定的,那就是attention的問世。attention的思想是讓RNN在每一步挑選信息的時候都能從更大的信息集里面挑選出有用信息。例如,利用RNN模型為一幀圖片生成字母,它將會選擇圖片有用的部分來得到有用的輸入,從而生成有效的輸出。事實上, Xu, et al. (2015) 已經這么做了,如果你想更深入的了解attention,這會是一個不錯的開始。attention方向還有一些振奮人心的研究,但還有很多東西等待探索......
在RNN領域attention并不是唯一一個可以研究的點。比如 Kalchbrenner, et al. (2015) 提出的Grid LSTMs, Gregor, et al. (2015) , Chung, et al. (2015) , 和 Bayer & Osendorfer (2015) 將RNNs用于生成模型的研究都非常有意思。
在過去幾年RNNs方面的研究非常的多,相信以后的研究成果也會更為豐富。
同原文
歡迎加入OCR交流群:785515057(此群已滿)
歡迎加入OCR交流群2:826714963
原文鏈接
四、RNN和LSTM
循環(huán)神經網絡的主要用途是處理和預測序列數據,循環(huán)神經網絡的來源是為了刻畫一個序列當前的輸出與之前信息的關系。從網絡結構上,循環(huán)神經網絡會記憶之前的信息,并利用之前的信息影響后面節(jié)點的輸出。也就是說,循環(huán)神經網絡的隱藏層之間的節(jié)點是有連接的,隱藏層的輸入不僅包括輸入層的輸出,還包括上一時刻隱藏層的輸出。
理論上循環(huán)神經網絡可以看做是同一神經網絡結構被無限復制的結果,如下圖等號左側,由于目前循環(huán)神經網絡無法做到真正的無限循環(huán),所以一般將循環(huán)體展開,如下圖等號右側。
可以看到:在每一個時刻會有一個輸入 ,根據循環(huán)神經網絡當前的狀態(tài) 提供一個輸出 ,而循環(huán)神經網絡當前狀態(tài) 是根據上一時刻的狀態(tài) 和當前的輸入 共同決定的。
從這個結構來看,容易得出:循環(huán)神經網絡擅于解決時間序列相關問題,對于序列數據,將序列上不同時刻的數據依次傳入循環(huán)神經網絡的輸入層,輸出可以是對序列中下一個時刻的預測。
所有 RNN 都具有一種重復神經網絡模塊的鏈式的形式。在標準的 RNN 中,這個重復的模塊只有一個非常簡單的結構,例如一個 tanh 層。
下圖展現了一個循環(huán)神經網絡前向傳播的具體計算過程,可以看到每個時刻的輸入會跟上一時刻的輸出拼接之后進行前向算法計算,乘以權重矩陣加上偏置值,然后當前時刻的輸出經過softmax+偏置等操作之后產生當前單元的最終輸出,另一部分送入下一個時刻重復此過程:
RNN的關鍵是利用歷史信息來幫助當前的決策,但是不幸的是,隨著序列長度的增加,RNN無法有效的利用歷史信息。于是有了一種特殊的RNN——LSTM,能夠學習長的依賴關系,LSTM是為了避免長依賴問題而精心設計的。 記住較長的歷史信息實際上是他們的默認行為,而不是他們努力學習的東西。
LSTM 同樣是重復神經網絡模塊的鏈式的形式,但是重復的模塊擁有一個不同的結構。不同于 單一神經網絡層,整體上除了h在隨時間流動,細胞狀態(tài)c也在隨時間流動,細胞狀態(tài)c就代表著長期記憶。
下面具體解釋LSTM的內部工作機制,首先是各種圖標的含義:
1. LSTM 的關鍵就是細胞狀態(tài),水平線在圖上方貫穿運行,直接在整個鏈上運行,只有一些少量的線性交互。信息在上面流傳保持不變會很容易。
2. LSTM 有通過精心設計的稱作為“門”的結構來去除或者增加信息到細胞狀態(tài)的能力。門是一種讓信息選擇式通過的方法。他們包含一個 sigmoid 神經網絡層和一個 pointwise 乘法操作。Sigmoid 層輸出 0 到 1 之間的數值,描述每個部分有多少量可以通過。0 代表 不許任何量通過 ,1 就指 允許任意量通過;LSTM擁有三個門,來保護和控制細胞狀態(tài)
3. 遺忘門
遺忘門決定我們會從細胞狀態(tài)中丟棄什么信息,該門會讀取 和 ,輸出一個在 0 到 1 之間的數值給每個在細胞狀態(tài) 中的數字。1 表示 完全保留 ,0 表示 完全舍棄 。右側公式里的內容跟上文說到的RNN的計算細節(jié)一致。最終通過一個sigmoid實現新的取舍功能。
所說的遺忘可以理解為 之前的內容記住多少 ,其精髓在于只能輸出(0,1)小數的sigmoid函數和粉色圓形的乘法操作
4. 輸入門
輸入門確定什么樣的新信息被存放在細胞狀態(tài)中,這里包含兩個部分:第一,sigmoid 層稱 “輸入門層” 決定什么值我們將要更新。然后,一個 tanh 層創(chuàng)建一個新的候選值向量 會被加入到狀態(tài)中。
現在開始更新舊細胞狀態(tài), 更新為 ,們把舊狀態(tài)與 相乘,丟棄掉我們確定需要丟棄的信息,接著加上 ,這就是新的候選值,根據我們決定更新每個狀態(tài)的程度進行變化。
5. 輸出門
我們需要確定輸出什么值。這個輸出將會基于我們的細胞狀態(tài),但是也是一個過濾后的版本。首先,我們運行一個 sigmoid 層來確定細胞狀態(tài)的哪個部分將輸出出去。接著,我們把細胞狀態(tài)通過 tanh 進行處理(得到一個在 -1 到 1 之間的值)并將它和 sigmoid 門的輸出相乘,最終我們僅僅會輸出我們確定輸出的那部分。
參考:
LSTM理解
以上就是關于lstm神經網絡相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。
推薦閱讀: