Long-Short Term Memory(長短時記憶模型)
長短期記憶(Long-Short Term Memory, LSTM)是一種時間遞迴神經網路(RNN),論文首次發表於1997年。由於獨特的設計結構,LSTM適合於處理和預測時間序列中間隔和延遲非常長的重要事件。
LSTM的表現通常比時間遞迴神經網路及隱馬爾科夫模型(HMM)更好,比如用在不分段連續手寫識別上。2009年,用LSTM構建的人工神經網路模型贏得過ICDAR手寫識別比賽冠軍。LSTM還普遍用於自主語音識別,2013年運用TIMI自然演講資料庫達成17.7%錯誤率的紀錄。作為非線性模型,LSTM可作為複雜的非線性單元用於構造更大型深度神經網路。(wikipedia)
LSTM是一種含有LSTM區塊(blocks)或其他的一種類神經網路,文獻或其他資料中LSTM區塊可能被描述成智慧網路單元,因為它可以記憶不定時間長度的數值,區塊中有一個gate能夠決定input是否重要到能被記住及能不能被輸出output。每一個啟用函式都可以看層一個gate,經典的,LSTM有三種gate 。根據谷歌的測試表明,LSTM中最重要的是Forget gate,其次是Input gate,最次是Output gate。
關於LSTM詳細的介紹請看LSTM
迴圈神經網路展開成一個全神經網路:
下面是其中一個隱藏層的分析:
黃色矩形表示有學習能力的神經網路層
粉色圓圈表示運算子號,”x” 表示乘號(例如向量乘法),“+”表示加號
黑色箭頭表示 向量傳遞
兩條線融合表示進行運算
線分叉表示內容被複製成兩個,不同方向傳遞
forget gate layer:
資料資訊由上一層hidden state資訊與現在的輸入資料資訊的加權之和,
而啟用函式sigmoid,決定什麼資訊是需要從cell state中丟棄的,forget gate layer 輸出是[0,1]之間的數,1表示完全變成保留資訊,0表示完全丟棄。
input gate layer:
同樣有一個啟用函式sigmoid
但作用不同。
A tanh layer :
a tanh layer creates a vector of new candidate values:
tanh layer是建立現隱藏層cell state的候選值,之前說候選值,只因為它只是一箇中間值。
Final memory cell:
這裡是獲取現隱藏層cell state,它是基於上一個隱藏層cell state(稱為old cell state)與現隱藏層的候選值。這兩個值通過與forget gate 、input gate相乘,決定我們從之前的cell state忘記多少資訊和更新多少資訊。
Output gate :
這裡也有一個啟用函式sigmoid,習慣把它叫Output gate。
它決定我們應該輸出哪一部分的cell state。
Final hidden state:
計算現隱藏層Final state的時候,先要讓現隱藏層cell state經過一個啟用函式tanh,讓它的值控制在[-1,1]之內,這樣做可能是防止梯度爆炸(exploding gradient )。然後再與Output gate相乘決定輸出那部分資訊。