1. 程式人生 > >長短期記憶網路(Long Short-Term Memory,LSTM)及其變體雙向LSTM和GRU

長短期記憶網路(Long Short-Term Memory,LSTM)及其變體雙向LSTM和GRU

LSTM(Long Short-Term Memory)長短期記憶網路,是一種時間遞迴神經網路,適合於處理和預測時間序列中間隔和延遲相對較長的重要事件。LSTM是解決迴圈神經網路RNN結構中存在的“梯度消失”問題而提出的,是一種特殊的迴圈神經網路。最常見的一個例子就是:當我們要預測“the clouds are in the (...)"的時候, 這種情況下,相關的資訊和預測的詞位置之間的間隔很小,RNN會使用先前的資訊預測出詞是”sky“。但是如果想要預測”I grew up in France ... I speak fluent (...)”,語言模型推測下一個詞可能是一種語言的名字,但是具體是什麼語言,需要用到間隔很長的前文中France,在這種情況下,RNN因為“梯度消失”的問題,並不能利用間隔很長的資訊,然而,LSTM在設計上明確避免了長期依賴的問題,這主要歸功於LSTM精心設計的“門”結構(輸入門、遺忘門和輸出門)消除或者增加資訊到細胞狀態的能力,使得LSTM能夠記住長期的資訊。

  vs     

標準的RNN結構都具有一種重複神經網路模組的鏈式形式,一般是一個tanh層進行重複的學習(如上圖左邊圖),而在LSTM中(上圖右邊圖),重複的模組中有四個特殊的結構。貫穿在圖上方的水平線為細胞狀態(cell),黃色的矩陣是學習得到的神經網路層,粉色的圓圈表示運算操作,黑色的箭頭表示向量的傳輸,整體看來,不僅僅是h在隨著時間流動,細胞狀態c也在隨著時間流動,細胞狀態c代表著長期記憶。

上面我們提到LSTM之所以能夠記住長期的資訊,在於設計的“門”結構,“門”結構是一種讓資訊選擇式通過的方法,包括一個sigmoid神經網路層和一個pointwise乘法操作,如下圖所示結構。複習一下sigmoid函式,

,sigmoid輸出為0到1之間的陣列,一般用在二分類問題,輸出值接近0代表“不允許通過”,趨向1代表“允許通過”。


在LSTM中,第一階段是遺忘門,遺忘層決定哪些資訊需要從細胞狀態中被遺忘,下一階段是輸入門,輸入門確定哪些新資訊能夠被存放到細胞狀態中,最後一個階段是輸出門,輸出門確定輸出什麼值。下面我們把LSTM就著各個門的子結構和數學表示式進行分析。

  • 遺忘門:遺忘門是以上一層的輸出和本層要輸入的序列資料作為輸入,通過一個啟用函式sigmoid,得到輸出為的輸出取值在[0,1]區間,表示上一層細胞狀態被遺忘的概率,1是“完全保留”,0是“完全捨棄”


  • 輸入門:輸入門包含兩個部分,第一部分使用sigmoid啟用函式,輸出為
    ,第二部分使用tanh啟用函式,輸出為【個人通俗理解:在RNN網路中就是本層的輸出,是在[0,1]區間取值,表示中的資訊被保留的程度,表示該層被保留的新資訊】


到目前為止,是遺忘門的輸出,控制著上一層細胞狀態被遺忘的程度,為輸入門的兩個輸出乘法運算,表示有多少新資訊被保留,基於此,我們就可以把新資訊更新這一層的細胞狀態


  • 輸出門:輸出門用來控制該層的細胞狀態有多少被過濾。首先使用sigmoid啟用函式得到一個[0,1]區間取值的,接著將細胞狀態通過tanh啟用函式處理後與相乘,即是本層的輸出


至此,終於將LSTM的結構理解了,現在有很多LSTM結構的變形,只要把這個母體結構理解了,再去理解變形的結構應該不會再有多麻煩了。

雙向LSTM

雙向RNN由兩個普通的RNN所組成,一個正向的RNN,利用過去的資訊,一個逆序的RNN,利用未來的資訊,這樣在時刻t,既能夠使用t-1時刻的資訊,又能夠利用到t+1時刻的資訊。一般來說,由於雙向LSTM能夠同時利用過去時刻和未來時刻的資訊,會比單向LSTM最終的預測更加準確。下圖為雙向LSTM的結構。


  • 為正向的RNN,參與正向計算,t時刻的輸入為t時刻的序列資料和t-1時刻的輸出
  • 為逆向的RNN,參與反向計算,t時刻的輸入為t時刻的序列資料和t+1時刻的輸出
  • t時刻的最終輸出值取決於

GRU(Gated Recurrent Unit)是LSTM最流行的一個變體,比LSTM模型要簡單


GRU包括兩個門,一個重置門和更新門。這兩個門的啟用函式為sigmoid函式,在[0,1]區間取值。

候選隱含狀態使用重置門來控制t-1時刻資訊的輸入,如果結果為0,那麼上一個隱含狀態的輸出資訊將被丟棄。也就是說,重置門決定過去有多少資訊被遺忘,有助於捕捉時序資料中短期的依賴關係

隱含狀態使用更新門對上一時刻隱含狀態和候選隱含狀態進行更新。更新門控制過去的隱含狀態在當前時刻的重要性,如果更新門一直趨近於1,t時刻之前的隱含狀態將一直儲存下來並全傳遞到t時刻,更新門有助於捕捉時序資料中中長期的依賴關係

相關推薦

長短期記憶網路Long Short-Term MemoryLSTM及其雙向LSTMGRU

LSTM(Long Short-Term Memory)長短期記憶網路,是一種時間遞迴神經網路,適合於處理和預測時間序列中間隔和延遲相對較長的重要事件。LSTM是解決迴圈神經網路RNN結構中存在的“梯度消失”問題而提出的,是一種特殊的迴圈神經網路。最常見的一個例子就是:當我們

非監督特徵學習與深度學習十五--------長短記憶Long Short Term MemoryLSTM

LSTM LSTM概述   長短記憶(Long Short Term Memory,LSTM)是一種 RNN 特殊的型別,可以學習長期依賴資訊,它引入了自迴圈的巧妙構思,以產生梯度長時間持續流動的路徑,解決RNN梯度消失或爆炸的問題。在手寫識別、

RNN--長短期記憶(Long Short Term Memory, LSTM)

長短期記憶(Long Short Term Memory, LSTM)   是一種 RNN 特殊的型別,可以學習長期依賴資訊。記住長期的資訊在實踐中是 LSTM 的預設行為,而非需要付出很大代價才能獲得的能力! LSTM 單元和普通 RNN 單元的區別   在標準的 RNN 中,

Long Short-Term MemoryLSTM

迴圈神經網路(Recurrent Neural Network,RNN)可以通過許多不同的方式建立,但就像幾乎所有函式都可以被認為是前饋網路,基本上任何涉及迴圈的函式可以被認為是一個迴圈神經網路。它的基本結構以及其展開的理解如下圖所示: 同一網路被視為展開的計算圖,其中每個節點現在

Long-Short Term Memory(長短時記憶模型)

       長短期記憶(Long-Short Term Memory, LSTM)是一種時間遞迴神經網路(RNN),論文首次發表於1997年。由於獨特的設計結構,LSTM適合於處理和預測時間序列中間隔和延遲非常長的重要事件。        LSTM的表現通常比時間遞迴

(zhuan) Attention in Long Short-Term Memory Recurrent Neural Networks

have step points degree paper exc issues arr decision Attention in Long Short-Term Memory Recurrent Neural Networks by Jason Brownlee on

CNN Long Short-Term Memory

model = Sequential() # define CNN model model.add(TimeDistributed(Conv2D(...)) model.add(TimeDistributed(MaxPooling2D(...))) model.add(TimeDi

長短期記憶網路LSTM的基礎知識、邏輯結構、實際物理結構

一、LSTM的基礎知識 輸入層:(batch_size, time_steps, input_dim) LSTM輸入層的維度是3 (1)batch_size:量級——每次訓練輪次(batch)中資料量大小 (2)time_steps:時間維度——每個訓練批次(batch)中單個輸入資

Improved Semantic Representations From Tree-Structured Long Short-Term Memory Networks-paper

  1 introduction  Most models for distributed representations of phrases and sentences—that is, models where realvalued vectors are u

吳恩達Deeplearning.ai 第五課 Sequence Model 第一週------Long Short Term Memory(LSTM)

這一節主要講解了LSTM單元 LSTM和GRU略有區別,可以說是一種更加通用的GRU模型 在LSTM中,c<t>不再等於a<t>,因此原來公式中的c<t-1>要改成a<t-1>,同時在LSTM中,也沒有了Γ

NRE論文總結:Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification

acl論文閱讀(Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification,中科大自動化所 Zhou ACL 2016) 資料集詳情 SemEval-2010 Ta

論文筆記:Long Short-Term Memory

LongShort-Term Memory 摘要 通過recurrent BP方式來學著儲存隨時間間隔變化的資訊會花費很長的時間。我們引進了新奇的,有效的,基於梯度的方法:LSTM(至少在1997年的時候這麼評價還算公正)。 且能夠解決一些標籤比較長的分

Long short-term memory 論文小記

這是Hochreiter(1997)的一篇老論文,我為了一睹lstm的原創遺風而讀。本來想看看最樸素最正宗的lstm模型,結果卻發現在本文中作者並未提出一種特有的模型。文章很長,並不打算翻譯。下面是我的一些總結和見解,純粹小菜鳥的個人觀點,大家多多指正,非常歡迎

Attention-Based Bidirectional Long Short-Term Memory for Relation Classification雙向lstm實體關係分類

         本文章主要內容為關係分類的重大挑戰是一個短文字的重要資訊的位置並不確定提出的attention雙向lstm;attention在許多部落格都有相關解釋,這裡不作說明,雙向lstm是對單向lstm做的改進,要通過上下文資訊對當前lstm神經元做影響;    

[ACL2016]Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification

關係分類在自然語言處理領域是一個很重要的語義處理任務,目前state-of-the-art system非常依賴於lexical resources 比如WordNet或者dependency parser 和NER. 還有一個挑戰是重要資訊不知道在句中的什麼位

深度學習 Long Short Term Memery

Introduce 為什麼會有RNN模型?        每次涉及到新概念時候總不禁要問自己,為什麼要引入這麼模型,深度學習有深度網路DNN、圖片識別CNN等,他們都是一次性輸出內容的全部來識別或預測一個分類結果,然

長短期記憶LSTM系列_LSTM的資料準備4——如何歸一化標準化長短期記憶網路的資料

導讀: 在訓練神經網路(例如長短期記憶復現神經網路)時,可能需要縮放序列預測問題的資料。 當輸入資料序列分佈並不標準,或者變化幅度(標準差)過大時,這會減慢網路的學習和收斂速度,也會阻礙網路的學習效率。 因此您需要了解如何歸一化和標準化序列預測資料,以及如何確定將哪中形式用於輸入和輸出變

論文解讀:記憶網路Memory Network

在瞭解vqa問題的論文時,發現有很多論文采用了記憶網路的思路,模擬推理過程,這篇文章主要總結關於記憶網路的三篇經典論文,目的是對記憶網路有個認識。分別是: MEMORY NETWORKS,End-To-End Memory Networks,Ask Me Anything: Dynami

Long-Short-Term-MemoriesLSTM

1.傳統RNN存在的問題 在迴圈神經網路一文中,對前向傳播、後向傳播進行了仔細的推導,回顧一下,可以發現傳統RNN很容易產生梯度消失、爆炸的問題。 可能公式會顯得有點抽象,這裡舉一個例子:

雙向長短記憶網路BiLSTM

關於理解LSTM的一篇英文部落格非常經典,可以去這裡閱讀,本文也參考了該博文。 迴圈神經網路(RNN) BiLSTM是RNN的一種延伸,因此,要理解BiLSRM就必須首先弄明白什麼是RNN。 普通神經網路的侷限 假設我們對於普通的神經網路模型已經比較熟悉,那