您好,登錄后才能下訂單哦!
在你閱讀這篇文章時候,你都是基于自己已經擁有的對先前所見詞的理解來推斷當前詞的真實含義。我們不會將所有的東西都全部丟棄,然后用空白的大腦進行思考。我們的思想擁有持久性。LSTM就是具備了這一特性。
這篇將介紹另?種常?的?控循環神經?絡: ?短期記憶(long short-term memory,LSTM)[1]。 它??控循環單元的結構稍微復雜?點,也是為了解決在RNN網絡中梯度衰減的問題,是GRU的一種擴展。
可以先理解GRU的過程,在來理解LSTM會容易許多,鏈接地址: 三步理解—門控循環單元(GRU)
LSTM 中引?了3個?,即輸??(input gate)、遺忘?(forget gate)和輸出?(output gate),以及與隱藏狀態形狀相同的記憶細胞(某些?獻把記憶細胞當成?種特殊的隱藏狀態),從而記錄額外的信息。
與?控循環單元中的重置?和更新??樣,?短期記憶的?的輸?均為當前時間步輸?Xt與上?時間步隱藏狀態Ht?1,輸出由激活函數為sigmoid函數的全連接層計算得到。如此?來,這3個?元素的值域均為[0, 1]。如下圖所示:
具體來說,假設隱藏單元個數為 h,給定時間步 t 的小批量輸? (樣本數為n,輸?個數為d)和上?時間步隱藏狀態 。三個門的公式如下:
輸入門: )
遺忘問: )
輸出門: )
接下來,?短期記憶需要計算候選記憶細胞 。它的計算與上?介紹的3個?類似,但使?了值域在[?1, 1]的tanh函數作為激活函數,如下圖所示:
具體來說,時間步t的候選記憶細胞計算如下:
)
我們可以通過元素值域在[0, 1]的輸??、遺忘?和輸出?來控制隱藏狀態中信息的流動,這?般也是通過使?按元素乘法(符號為⊙)來實現的。當前時間步記憶細胞 的計算組合了上?時間步記憶細胞和當前時間步候選記憶細胞的信息,并通過遺忘?和輸??來控制信息的流動:
如下圖所?,遺忘?控制上?時間步的記憶細胞Ct?1中的信息是否傳遞到當前時間步,而輸??則控制當前時間步的輸?Xt通過候選記憶細胞C?t如何流?當前時間步的記憶細胞。如果遺忘??直近似1且輸???直近似0,過去的記憶細胞將?直通過時間保存并傳遞?當前時間步。這個設計可以應對循環神經?絡中的梯度衰減問題,并更好地捕捉時間序列中時間步距離較?的依賴關系。
有了記憶細胞以后,接下來我們還可以通過輸出?來控制從記憶細胞到隱藏狀態Ht的信
息的流動:
)
這?的tanh函數確保隱藏狀態元素值在-1到1之間。需要注意的是,當輸出?近似1時,記憶細胞信息將傳遞到隱藏狀態供輸出層使?;當輸出?近似0時,記憶細胞信息只??保留。 下圖展?了?短期記憶中隱藏狀態的全部計算:
LSTM與GRU二者結構十分相似, 不同在于 :
關于激活函數的選取,在LSTM中,遺忘門、輸入門和輸出門使用Sigmoid函數作為激活函數;在生成候選記憶時,使用雙曲正切函數Tanh作為激活函數。
值得注意的是,這兩個激活函數都是飽和的,也就是說在輸入達到一定值的情況下,輸出就不會發生明顯變化了。如果是用非飽和的激活函數,例如ReLU,那么將難以實現門控的效果。
Sigmoid函數的輸出在0~1之間,符合門控的物理定義。且當輸入較大或較小時,其輸出會非常接近1或0,從而保證該門開或關。在生成候選記憶時,使用Tanh函數,是因為其輸出在?1~1之間,這與大多數場景下特征分布是0中心的吻合。此外,Tanh函數在輸入為0附近相比Sigmoid函數有更大的梯度,通常使模型收斂更快。
激活函數的選擇也不是一成不變的,但要選擇合理的激活函數。
MIST數據分類—TensorFlow實現LSTM
【 機器學習通俗易懂系列文章 】
《動手學—深度學習》
作者: @mantchs
GitHub: https://github.com/NLP-LOVE/ML-NLP
歡迎大家加入討論!共同完善此項目!群號:【541954936】
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。