LSTM入門學習——結合《LSTM模型》文章看


摘自:https://zybuluo.com/hanbingtao/note/581764 寫得非常好 見原文

長短時記憶網絡的思路比較簡單。原始RNN的隱藏層只有一個狀態,即h,它對於短期的輸入非常敏感。那么,假如我們再增加一個狀態,即c,讓它來保存長期的狀態,那么問題不就解決了么?如下圖所示:

新增加的狀態c,稱為單元狀態(cell state)。我們把上圖按照時間維度展開:

上圖僅僅是一個示意圖,我們可以看出,在t時刻,LSTM的輸入有三個:當前時刻網絡的輸入值、上一時刻LSTM的輸出值、以及上一時刻的單元狀態;LSTM的輸出有兩個:當前時刻LSTM輸出值、和當前時刻的單元狀態。注意都是向量。

LSTM的關鍵,就是怎樣控制長期狀態c。在這里,LSTM的思路是使用三個控制開關。第一個開關,負責控制繼續保存長期狀態c;第二個開關,負責控制把即時狀態輸入到長期狀態c;第三個開關,負責控制是否把長期狀態c作為當前的LSTM的輸出。三個開關的作用如下圖所示:

接下來,我們要描述一下,輸出h和單元狀態c的具體計算方法。

 

長短時記憶網絡的前向計算

下圖顯示了遺忘門的計算:

接下來看看輸入門,下圖表示了輸入門的計算:

接下來,我們計算用於描述當前輸入的單元狀態,它是根據上一次的輸出和本次輸入來計算的,下圖是計算:

現在,我們計算當前時刻的單元狀態。它是由上一次的單元狀態按元素乘以遺忘門,再用當前輸入的單元狀態按元素乘以輸入門,再將兩個積加和產生的,下圖是計算:

這樣,我們就把LSTM關於當前的記憶和長期的記憶組合在一起,形成了新的單元狀態。由於遺忘門的控制,它可以保存很久很久之前的信息,由於輸入門的控制,它又可以避免當前無關緊要的內容進入記憶。下面,我們要看看輸出門,它控制了長期記憶對當前輸出的影響。

下圖表示輸出門的計算:

LSTM最終的輸出,是由輸出門和單元狀態共同確定的。

下圖表示LSTM最終輸出的計算:

式1到式6就是LSTM前向計算的全部公式。至此,我們就把LSTM前向計算講完了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM