TensorFlow学习日记9
長短期記憶網(wǎng)絡LSTM(Long Short Term Memory)本身不是一個完整的模型,主要是對RNN隱含層的改進。因此,
RNN網(wǎng)絡即使用LSTM單元的RNN網(wǎng)絡。LSTM非常適合用于處理與時間序列高度相關的問題,例如機器翻譯、對話
生成、編碼解碼、圖文轉換等。
1. LSTM基本原理
(1)RNN和LSTM網(wǎng)絡
所有的循環(huán)網(wǎng)絡都具有鏈式的重復模塊神經(jīng)網(wǎng)絡。在標準的RNNs中,這種重復模塊具有非常簡單的結構,比如是一
個tanh層。LSTM同樣具有鏈式結構,但是其重復模塊卻有著不同的結構。不同于單獨的神經(jīng)網(wǎng)絡層,它具有4個以特
殊方式相互影響的神經(jīng)網(wǎng)絡層。如下所示:
LSTM模型為解決長期依賴問題而誕生,在原有的短期記憶單元的基礎上,增加一個記憶單元來保持長期記憶。
(2)LSTM核心思想LSTM的關鍵在于元胞狀態(tài),在圖中以水平線表示。元胞狀態(tài)就像一個傳送帶,它順著整個鏈條從頭到尾運行,中間
只有少許線性的交互,信息很容易順著它流動而保持不變。如下所示:
LSTM通過門(Gates)的結構來對細胞狀態(tài)增加或者刪除信息。門是選擇性讓信息通過的方式。它們的輸出有一個
sigmoid層和逐點乘積操作。如下所示:
sigmoid層的輸出在0到1之間,定義了各成分被放行通過的程度。0值意味著不讓任何東西過去;1值意味著讓所有東
西通過。一個LSTM具有3種門(輸入門,遺忘門,輸出門),用以保護和控制元胞狀態(tài)。
(3)LSTM遺忘門
首先,LSTM決定要從元胞中拋棄何種信息。這個決定是由叫做遺忘門的sigmoid層決定的。它以和為輸入,在
元胞輸出一個介于0和1之間的數(shù)。其中1代表完全保留,0代表完全遺忘。如下所示:
(4)LSTM輸入門
然后,LSTM決定元胞中要存儲何種信息。它有2個組成部分:由一個叫做輸入門的sigmoid層決定將要更新哪些
值;一個tanh層創(chuàng)建一個新的候選向量,它可以加在狀態(tài)之中。在下一步將結合兩者來生成狀態(tài)的更新。如
下所示:
將舊元胞狀態(tài)更新為。即把舊狀態(tài)乘以,用以遺忘之前決定忘記的信息,然后加上。這是新的候選值,
根據(jù)決定更新狀態(tài)的程度來作為放縮系數(shù)。如下所示:
(5)LSTM輸出門
最后,LSTM決定輸出哪些內容。輸出取決于元胞狀態(tài),但是以一個過濾后的版本。使用sigmoid層來決定要輸出元胞
狀態(tài)的哪些部分;把用tanh處理元胞狀態(tài)(將狀態(tài)值映射到-1至1之間);將其與sigmoid門的輸出值相乘,從而能夠
輸出決定輸出的值。如下所示:
說明:循環(huán)神經(jīng)網(wǎng)絡中的狀態(tài)是通過一個向量來表示的,這個向量的維度也稱為循環(huán)神經(jīng)網(wǎng)絡隱藏層的大小。
參考文獻: [1]?The Unreasonable Effectiveness of Recurrent Neural Networks:http://karpathy.github.io/2015/05/21/rnn-
effectiveness/
[2] Understanding LSTM Networks:http://colah.github.io/posts/2015-08-Understanding-LSTMs/
總結
以上是生活随笔為你收集整理的TensorFlow学习日记9的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单静态网页爬取
- 下一篇: SOLIDWORKS快捷键167个小技巧