天天看點

LSTM原理

LSTM原理

  • CNN卷積神經網絡 應用:圖像,視訊
  • RNN 遞歸神經網絡 應用:NLP

1RNN結構

  • one to one
    比如輸入一張圖檔,它會給我們輸出是貓還是狗
               
  • one to many
    比如輸入一張圖檔,給出一些列圖檔描述
               
  • many to one
    比如文本分析,給出文本是積極還是消極的
               
  • many to many (輸出 與 輸入 不定長)
    比如 聊天機器人
               
  • many to many (輸入 與 輸出定長)

2.LSTM原理

  • LSTM是更新版的RNN,LSTM解決了RNN無法解決長期以來問題,輸出前面很長一段序列有關的問題。LSTM相比RNN添加了三個門:遺忘門,輸入門,輸出門。
    遺忘門:決定從細胞狀态中丢棄什麼資訊
    輸入門:決定讓多少新的資訊加入細胞狀态,這一步将輸出細胞狀态
    輸出門:确定輸出值,該輸出值基于細胞狀态 
               
    LSTM原理
  • 門的概念:
    我們認為細胞的流動是一個傳送帶,傳送帶進行線性互動,我們認為将一些貨物放到傳送帶進行傳動,而LSTM内部設計一種結構為門的結構,門可以去除或增加一些細胞狀态,它決定哪些貨物放到傳送帶上,哪些貨物不放到傳送帶上。而這些貨物可以認為是資訊
               
    LSTM原理
    如上圖,可以看到 σ 它是神經網絡的激活層, 粉色X 為 點乘,我們通過 σ 輸出0-1數值,它能描述哪些貨物可以通過,然後通過點乘彙集到傳送帶上。
    
    上面三個門都是為了保護,控制細胞狀态。為了保證哪些貨物要放到傳送帶,哪些貨物不放到傳送帶。在LSTM第一步中我們要确定往細胞丢棄什麼資訊,也就是确定哪些貨物要放到傳送帶,哪些貨物不放到傳送帶.
    
               
  • 遺忘門:
    • ​ 最開始是一個遺忘門,首先它會讀取ht-1時刻向量值和xt時刻的輸入,然後通過激活層 σ 輸出一個0-1之間數值(激活層函數一般為ReLU),然後進行一個點乘,最終到傳送帶。1表示完全保留,0表示完全舍棄。
    • 如下公式:
      LSTM原理
      ft 為 σ網絡激活層
      Wf 為 權重
      ht-1,xt 為 輸入
      bf 為 偏執量
                 
  • 輸入門:
    LSTM原理
    • 這一步要确定什麼樣資訊放到細胞狀态中,什麼樣貨物最終放到傳送帶進行傳送。這裡包含2個步驟:
      1.首先:通過ht-1時刻向量值和xt時刻的輸入然後通過 σ 網絡激活層 決定哪些資訊要更新,最終放入傳送帶。
      2.然後:通過tanh層,通過tanh層生成一個向量,對輸入端進行激活,對細胞進行更新将Ct-1更新為Ct
                 
    • 如下公式:
      LSTM原理
      公式1:
      	it 輸入
      	Wi 為 權重
      	ht-1,xt 為 輸入
      	bi 為 偏執
      公式2:
      	Wc 為 權重
      	ht-1,xt 為 輸入
      	Bc 為 偏執
                 
    • 更新資訊的确定詳解:
      我們首先根據ft(之前經過遺忘門保留的部分)和Ct-1進行點乘,然後結合it(更新的部分)和Ct進行點乘,進入傳送帶進行傳送,最終進行權重輸出到Ct。
                 
      LSTM原理
    • 如下公式
      LSTM原理
  • 輸出門
    • 它決定我們最終輸出是什麼樣子的,我們基于ht最終輸出是什麼樣子輸出。
      首先我們通過  σ 網絡激活層 ,這裡輸入還是ht-1,xt得到稱為ot,然後通過我們之前在傳送帶傳送的貨物Ct,經過tanh層 進行點乘 最終輸出ht
                 
    • 公式:
      ot 相當于激活層:權重, 輸入,偏執得到結果
      ht 相當于最終輸出
                 

3.LSTM應用場景

  • 語音識别
  • 圖像描述
  • 聊天機器人

4.LSTM模型訓練過程

  • 從RNN到LSTM
    LSTM原理
    原始RNN隻有一個狀态h,LSTM加入了長期狀态c,而加入長期狀态c以後,可以實作長遠的記憶。
               
  • LSTM循環展開
    LSTM原理
    LSTM循環展開後可以看成多個神經元,我們進行多次指派,在傳送帶傳送h和C(用于傳送狀态),也就是要傳送的貨物
               
  • LSTM核心思想----門
    遺忘門處理完 擷取到了上一個時期的長期狀态,目前時刻的即時狀态(我們需要更新狀态),我們通過輸入門,将貨物最終放到要傳送帶,最終輸出門控制那些需要輸出,那些不需要輸出
               

5.LSTM訓練算法

  • LSTM使用BPTT算法,它随時間反向傳播,是一種具有長時記憶能力的神經網絡模式,被廣泛應用序列标注,因之前通常使用前向傳播,會造成梯度消失或梯度爆炸問題。
梯度消失:随着時間增長,權重會越來越小,
梯度爆炸:權重相乘 數值會特别大
           
  • 而BPTT反向傳播的激活函數Tanh術語雙曲正切 -1 到1之間。有效解決上述問題。
  • BPTT反向傳播推導公式
  • LSTM BPTT算法
  • 前向推導
    LSTM原理
    前向推導假如上一層節點i,j,k...等一些節點與本層的節點w有連結。那麼節點w的值如何計算?
    	通過上一層的i,j,k等節點以及對應的連接配接權值(W)進行權重和運算,最終結果再加上一個偏執項,最後通過非線性函數(又稱激活函數),若ReLu,sigmoid等函數,最後得到的結果就是本層節點w輸出。
    	最後不斷的通過這種方法一層層運算,得到輸出層結果。
               
    • 如下公式:

      a2=σ(z2)=σ(a1∗W2+b2)

      其中,上标代表層數,星号表示卷積,b表示偏置項bias,σ \sigmaσ表示激活函數。
                 
  • 反向推導
    • https://blog.csdn.net/bitcarmanlee/article/details/78819025

前向推導和反向推導

6.LSTM不足

  • 和RNN一樣,隻是緩解了梯度問題。序列長度過長,還是存在梯度問題。
  • LSTM計算相對費時,LSTM的cell裡面都有4個全連接配接層(MLP)。

7.LSTM模型改進

  • Peephole LSTM
    在 LSTM 本體上加上一個Peephole connection,
               
  • GRU
    把遺忘門和傳輸門進行合并叫更新門,還把偏執省掉了。