1. 程式人生 > >Long-Short Term Memory(長短時記憶模型)

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

,意義解釋為決定哪些值需要更新,其實和forget gate layer的意思類似,

但作用不同。

       

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相乘決定輸出那部分資訊。