白話--長短期記憶(LSTM)的幾個步驟,附代碼!-創(chuàng)新互聯(lián)

1. 什么是LSTM

在你閱讀這篇文章時候,你都是基于自己已經(jīng)擁有的對先前所見詞的理解來推斷當前詞的真實含義。我們不會將所有的東西都全部丟棄,然后用空白的大腦進行思考。我們的思想擁有持久性。LSTM就是具備了這一特性。

成都創(chuàng)新互聯(lián)公司一直通過網(wǎng)站建設和網(wǎng)站營銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實效"的一站式服務,以成都做網(wǎng)站、成都網(wǎng)站設計、移動互聯(lián)產(chǎn)品、營銷型網(wǎng)站服務為核心業(yè)務。十載網(wǎng)站制作的經(jīng)驗,使用新網(wǎng)站建設技術,全新開發(fā)出的標準網(wǎng)站,不但價格便宜而且實用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡單易用,維護方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設的選擇。

這篇將介紹另?種常?的?控循環(huán)神經(jīng)?絡: ?短期記憶(long short-term memory,LSTM)[1]。 它??控循環(huán)單元的結構稍微復雜?點,也是為了解決在RNN網(wǎng)絡中梯度衰減的問題,是GRU的一種擴展。

可以先理解GRU的過程,在來理解LSTM會容易許多,鏈接地址: 三步理解—門控循環(huán)單元(GRU)

LSTM 中引?了3個?,即輸??(input gate)、遺忘?(forget gate)和輸出?(output gate),以及與隱藏狀態(tài)形狀相同的記憶細胞(某些?獻把記憶細胞當成?種特殊的隱藏狀態(tài)),從而記錄額外的信息。

2. 輸??、遺忘?和輸出?

與?控循環(huán)單元中的重置?和更新??樣,?短期記憶的?的輸?均為當前時間步輸?Xt與上?時間步隱藏狀態(tài)Ht?1,輸出由激活函數(shù)為sigmoid函數(shù)的全連接層計算得到。如此?來,這3個?元素的值域均為[0, 1]。如下圖所示:

白話--長短期記憶(LSTM)的幾個步驟,附代碼!

具體來說,假設隱藏單元個數(shù)為 h,給定時間步 t 的小批量輸? 白話--長短期記憶(LSTM)的幾個步驟,附代碼!(樣本數(shù)為n,輸?個數(shù)為d)和上?時間步隱藏狀態(tài) 白話--長短期記憶(LSTM)的幾個步驟,附代碼!。三個門的公式如下:

輸入門: 白話--長短期記憶(LSTM)的幾個步驟,附代碼!)

遺忘問: 白話--長短期記憶(LSTM)的幾個步驟,附代碼!)

輸出門: 白話--長短期記憶(LSTM)的幾個步驟,附代碼!)

3. 候選記憶細胞

接下來,?短期記憶需要計算候選記憶細胞 白話--長短期記憶(LSTM)的幾個步驟,附代碼!。它的計算與上?介紹的3個?類似,但使?了值域在[?1, 1]的tanh函數(shù)作為激活函數(shù),如下圖所示:

白話--長短期記憶(LSTM)的幾個步驟,附代碼!

具體來說,時間步t的候選記憶細胞計算如下:

白話--長短期記憶(LSTM)的幾個步驟,附代碼!)

4. 記憶細胞

我們可以通過元素值域在[0, 1]的輸??、遺忘?和輸出?來控制隱藏狀態(tài)中信息的流動,這?般也是通過使?按元素乘法(符號為⊙)來實現(xiàn)的。當前時間步記憶細胞 白話--長短期記憶(LSTM)的幾個步驟,附代碼!的計算組合了上?時間步記憶細胞和當前時間步候選記憶細胞的信息,并通過遺忘?和輸??來控制信息的流動:

白話--長短期記憶(LSTM)的幾個步驟,附代碼!

如下圖所?,遺忘?控制上?時間步的記憶細胞Ct?1中的信息是否傳遞到當前時間步,而輸??則控制當前時間步的輸?Xt通過候選記憶細胞C?t如何流?當前時間步的記憶細胞。如果遺忘??直近似1且輸???直近似0,過去的記憶細胞將?直通過時間保存并傳遞?當前時間步。這個設計可以應對循環(huán)神經(jīng)?絡中的梯度衰減問題,并更好地捕捉時間序列中時間步距離較?的依賴關系。

白話--長短期記憶(LSTM)的幾個步驟,附代碼!

5. 隱藏狀態(tài)

有了記憶細胞以后,接下來我們還可以通過輸出?來控制從記憶細胞到隱藏狀態(tài)Ht的信
息的流動:

白話--長短期記憶(LSTM)的幾個步驟,附代碼!)

這?的tanh函數(shù)確保隱藏狀態(tài)元素值在-1到1之間。需要注意的是,當輸出?近似1時,記憶細胞信息將傳遞到隱藏狀態(tài)供輸出層使?;當輸出?近似0時,記憶細胞信息只??保留。 下圖展?了?短期記憶中隱藏狀態(tài)的全部計算:

白話--長短期記憶(LSTM)的幾個步驟,附代碼!

6. LSTM與GRU的區(qū)別

LSTM與GRU二者結構十分相似, 不同在于

  1. 新的記憶都是根據(jù)之前狀態(tài)及輸入進行計算,但是GRU中有一個重置門控制之前狀態(tài)的進入量,而在LSTM里沒有類似門;
  2. 產(chǎn)生新的狀態(tài)方式不同,LSTM有兩個不同的門,分別是遺忘門(forget gate)和輸入門(input gate),而GRU只有一種更新門(update gate);
  3. LSTM對新產(chǎn)生的狀態(tài)可以通過輸出門(output gate)進行調節(jié),而GRU對輸出無任何調節(jié)。
  4. GRU的優(yōu)點是這是個更加簡單的模型,所以更容易創(chuàng)建一個更大的網(wǎng)絡,而且它只有兩個門,在計算性上也運行得更快,然后它可以擴大模型的規(guī)模。
  5. LSTM更加強大和靈活,因為它有三個門而不是兩個。

7. LSTM可以使用別的激活函數(shù)嗎?

關于激活函數(shù)的選取,在LSTM中,遺忘門、輸入門和輸出門使用Sigmoid函數(shù)作為激活函數(shù);在生成候選記憶時,使用雙曲正切函數(shù)Tanh作為激活函數(shù)。

值得注意的是,這兩個激活函數(shù)都是飽和的,也就是說在輸入達到一定值的情況下,輸出就不會發(fā)生明顯變化了。如果是用非飽和的激活函數(shù),例如ReLU,那么將難以實現(xiàn)門控的效果。

Sigmoid函數(shù)的輸出在0~1之間,符合門控的物理定義。且當輸入較大或較小時,其輸出會非常接近1或0,從而保證該門開或關。在生成候選記憶時,使用Tanh函數(shù),是因為其輸出在?1~1之間,這與大多數(shù)場景下特征分布是0中心的吻合。此外,Tanh函數(shù)在輸入為0附近相比Sigmoid函數(shù)有更大的梯度,通常使模型收斂更快。

激活函數(shù)的選擇也不是一成不變的,但要選擇合理的激活函數(shù)。

8. 代碼實現(xiàn)

MIST數(shù)據(jù)分類—TensorFlow實現(xiàn)LSTM

【 機器學習通俗易懂系列文章 】

白話--長短期記憶(LSTM)的幾個步驟,附代碼!

9. 參考文獻

《動手學—深度學習》


作者: @mantchs

GitHub: https://github.com/NLP-LOVE/ML-NLP

歡迎大家加入討論!共同完善此項目!群號:【541954936】 白話--長短期記憶(LSTM)的幾個步驟,附代碼!

分享標題:白話--長短期記憶(LSTM)的幾個步驟,附代碼!-創(chuàng)新互聯(lián)
本文鏈接:http://muchs.cn/article42/dpccec.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計公司、軟件開發(fā)、服務器托管、響應式網(wǎng)站、標簽優(yōu)化虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設