【文本識別】RNN和和LSTMs介紹

循環神經網絡(Recurrent Neural Networks)

循環神經網絡:圖中A是一組神經網絡(可以理解爲一個網絡的自循環),它的工作是不停的接收xt並且輸出ht .從圖中可以看出A允許將信息不停的在內部循環,這樣使得它可以保證每一步的計算都保存以前的信息。

長依賴存在的問題

1)信息較近時:相關信息與需要該信息的位置距離較近時,RNNs能夠學習利用以前的信息來對當前任務進行相應的操作。

2)信息較遠時:有用信息與需要進行處理信息的地方之間的距離較遠,這樣容易導致RNNs不能學習到有用的信息,最終推導的任務可能失敗。

 

LSTM 網絡

Long Short Term Memory networks(以下簡稱LSTMs),是一種特殊的RNN網絡,該網絡設計出來是爲了解決長依賴問題。

 

1、標準RNN網絡:所有循環神經網絡都具有神經網絡的重複模塊鏈的形式。在標準的RNN中,該重複模塊將具有非常簡單的結構,例如單個tanh層。標準的RNN網絡如下圖所示

2、LSTMs也具有這種鏈式結構,但是它的重複單元不同於標準RNN網絡裏的單元只有一個網絡層,它的內部有四個網絡層。LSTMs的結構如下圖所示。

下面是圖中各個符號的含義,符號包括下面幾種:

        圖中黃色類似於CNN裏的激活函數操作,粉色圓圈表示點操作,單箭頭表示數據流向,箭頭合併表示向量的合併(concat)操作,箭頭分叉表示向量的拷貝操作。

 

LSTMs的核心思想

        LSTMs的核心是細胞狀態,用貫穿細胞的水平線表示。細胞狀態像傳送帶一樣。它貫穿整個細胞卻只有很少的分支,這樣能保證信息不變的流過整個RNNs。細胞狀態如下圖所示:

 

門結構:LSTM網絡能通過一種被稱爲門的結構對細胞狀態進行刪除或者添加信息。門能夠有選擇性的決定讓哪些信息通過。其實門的結構很簡單,就是一個sigmoid層和一個點乘操作的組合。如下圖所示

        因爲sigmoid層的輸出是0-1的值,這代表有多少信息能夠流過sigmoid層。0表示都不能通過,1表示都能通過。值越大表示通過的信息越多。

 

深入理解LSTM結構:

       LSTM由三個門來控制細胞狀態,這三個門分別稱爲忘記門輸入門輸出門

1、忘記門:主要是對上一個節點傳進來的輸入進行選擇性忘記。簡單來說就是會 “忘記不重要的,記住重要的”。這部分操作是通過一個稱爲忘記門的sigmoid單元來處理的。它通過查看ht-1和xt信息來輸出一個0-1之間的向量,該向量裏面的0-1值表示細胞狀態Ct-1中的哪些信息保留或丟棄多少。0表示不保留,1表示都保留。忘記門如下圖所示(忘記門的輸出值與Ct-1相乘,得到Ct-1中需要保留的信息)。

 

2、輸入門:是將這個階段的輸入有選擇性地進行“記憶”。主要是會對輸入xt進行選擇記憶。哪些重要則着重記錄下來,哪些不重要,則少記一些。

1)這一步又分爲兩個步驟,首先,利用ht-1和xt通過一個稱爲輸入門的操作來決定更新哪些信息。

2)然後利用ht-1和xt通過一個tanh層得到新的候選細胞信息,這些信息可能會被更新到當前節點的細胞信息中(由輸入門決定)。這兩步描述如下圖所示。

 

更新當前細胞狀態信息:將舊的細胞信息Ct-1,更新爲新的細胞信息Ct。更新的規則就是通過忘記門選擇忘記一部分的舊細胞信息,通過輸入門選擇添加當前細胞輸入信息的一部分,再把兩個相加得到當前細胞信息Ct。更新操作如下圖所示(即先遺忘掉舊的Ct-1中部分信息,再選擇當前輸入中部分信息,最後把二者想加得到當前細胞的輸出信息Ct):

 

3、輸出門:決定將哪些信息作爲當前狀態的輸出。更新完細胞狀態後,先利用ht-1和xt通過輸出門(sigmoid)決定輸出哪些細胞狀態信息,然後將細胞狀態經過tanh層得到一個-1~1之間值的向量,最後將該向量與輸出門得到的值相乘就計算出了該RNN單元最終的輸出ht .該步驟如下圖所示

最後畫了個圖對LSTMs內部結構作了詳細的介紹:

 

致謝:文章參考:https://www.jianshu.com/p/95d5c461924c

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章