循環神經(LSTM)網絡學習總結


摘要:

  1.算法概述

  2.算法要點與推導

  3.算法特性及優缺點

  4.注意事項

  5.實現和具體例子

  6.適用場合

內容:

  1.算法概述

  長短期記憶網絡(Long Short Term Memory networks) 通常叫做 “LSTM”,由Hochreiter & Schmidhuber (1997)提出,一個LSTM Cell圖示如下:

  

  現在,我們先來定義一下用到的符號:

 

  在網絡結構圖中,每條線都傳遞着一個向量。其中上面一條直線表示LSTM的狀態向量的傳遞;下面一條直線表示由LSTM的上一層輸出和這一層輸入組成的合並向量的傳遞;

  粉紅色的圓圈表示逐點操作,這里涉及到1.兩個輸入向量各個元素相加;2.兩個輸入向量各個元素相乘,即矩陣的哈達瑪積(hadamard product)

  黃色的矩形框表示的是一個神經網絡層(就是很多個神經節點);

  合並的線表示把兩條線上所攜帶的向量進行合並;

  分開的線表示將線上傳遞的向量復制一份,傳給兩個地方。

   

  一個LSTM Cell是由3個門限結構和1個狀態向量傳輸線組成的,門限分別是遺忘門,傳入門,輸出門;

  其中狀態向量傳輸線負責長程記憶,因為它只做了一些簡單的線性操作;3個門限負責短期記憶的選擇,因為門限設置可以對輸入向量做刪除或者添加操作;

  1.1遺忘門:

  遺忘門是通過一個sigmoid 神經層來實現的。 0 表示“不讓任何信息通過”, 1 表示“讓所有信息通過”。它的作用是要決定讓哪些信息繼續通過這個 cell。

  

 

  1.2傳入門:

  傳入門實現需要兩個步驟:首先,一個sigmoid 層決定哪些信息需要更新;一個 tanh 層生成一個備選的用來更新的內容;
  下一步,我們把這兩部分聯合(向量點乘)起來,對 cell 的狀態進行一個更新。它的作用是決定讓多少新的信息加入到 cell 狀態中來。

  

  1.3輸出門

  輸出門實現需要兩個步驟:首先通過一個sigmoid層來決定哪部分信息會被輸出;

       接着,我們把狀態向量通過一個 tanh 層,然后把 tanh 層的輸出和 sigmoid 層計算出來的權重相乘,這樣就得到了最后輸出的結果。

  輸出門的作用是決定輸出什么值。

 

  

   1.4 LSTM cell狀態更新:

   首先我們把舊的狀態和遺忘門的輸出相乘, 把一些不想保留的信息忘掉;然后加上輸入門的輸出,這部分信息就是我們要添加的新內容。

  

   

  2.算法要點與推導

    符號說明:這里的“*”代表矩陣的哈達瑪積(hadamard product)

    2.1LSTM前向傳播公式:

    

    其中設計到參數Wf,Wi,Wc,Wo,bf,bi,bc,bo

    2.2LSTM后向傳播公式:

    

    

         RNN推導

    LSTM推導

    (譯)理解 LSTM 網絡 (Understanding LSTM Networks by colah)

  3.算法特性及優缺點

    優點:可以擬合序列數據,通過遺忘門和輸出門忘記部分信息來解決梯度消失的問題。

    缺點:

  4.注意事項

  5.實現和具體例子

    《TensorFlow實戰》實現LSTM處理PTB數據

    《TensorFlow實戰》實現BiLSTM處理Mnist數據

    tensorflow-char-rnn_model處理莎士比亞詩集

  6.適用場合

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM