第八章:深度學習之循環神經網絡與遞歸神經網絡

8.1 循環神經網絡與遞歸神經網絡的區別與聯繫

1.循環神經網絡(recurrent neural network)是時間上的展開,處理的是序列結構的信息,是有環圖,模型結構如下:

第八章:深度學習之循環神經網絡與遞歸神經網絡

recurrent: 時間維度的展開,代表信息在時間維度從前往後的的傳遞和積累,可以類比markov假設,後面的信息的概率建立在前面信息的基礎上,在神經網絡結構上表現爲後面的神經網絡的隱藏層的輸入是前面的神經網絡的隱藏層的輸出;

2.遞歸神經網絡(recursive neural network)遞歸神經網絡是空間上的展開,處理的是樹狀結構的信息,是無環圖,模型結構如下:

第八章:深度學習之循環神經網絡與遞歸神經網絡

recursive: 空間維度的展開,是一個樹結構,比如nlp裏某句話,用recurrent neural network來建模的話就是假設句子後面的詞的信息和前面的詞有關,而用recurxive neural network來建模的話,就是假設句子是一個樹狀結構,由幾個部分(主語,謂語,賓語)組成,而每個部分又可以在分成幾個小部分,即某一部分的信息由它的子樹的信息組合而來,整句話的信息由組成這句話的幾個部分組合而來。

8.2 循環神經網絡(recurrent neural network)

RNN引入“記憶”的概念;遞歸指其每一個元素都執行相同的任務,但是輸出依賴於輸入和“記憶”

https://zybuluo.com/hanbingtao/note/541458

RNN的梯度爆炸和消失問題

當η<1時,就會出現梯度消失問題,而當η>1時,梯度爆炸也就產生了。

通常來說,梯度爆炸更容易處理一些。因爲梯度爆炸的時候,我們的程序會收到NaN錯誤。我們也可以設置一個梯度閾值,當梯度超過這個閾值的時候可以直接截取。

梯度消失更難檢測,而且也更難處理一些。總的來說,我們有三種方法應對梯度消失問題:

1.合理的初始化權重值。初始化權重,使每個神經元儘可能不要取極大或極小值,以躲開梯度消失的區域。

2.使用relu代替sigmoid和tanh作爲激活函數。原理請參考上一篇文章零基礎入門深度學習(4) - 卷積神經網絡的激活函數一節。

3.使用其他結構的RNNs,比如長短時記憶網絡(LTSM)和Gated Recurrent Unit(GRU),這是最流行的做法。我們將在以後的文章中介紹這兩種網絡。

代碼:8_chapter/8.2循環神經網絡

8.3 遞歸神經網絡(recursive neural network)

https://zybuluo.com/hanbingtao/note/626300

代碼:8_chapter/8.3遞歸神經網絡

8.4 長短時記憶網絡(LSTM)

在8.1中,我們介紹了循環神經網絡以及它的訓練算法。我們也介紹了循環神經網絡很難訓練的原因,這導致了它在實際應用中,很難處理長距離的依賴。在本文中,我們將介紹一種改進之後的循環神經網絡:長短時記憶網絡(Long Short Term Memory Network, LSTM),它成功的解決了原始循環神經網絡的缺陷,成爲當前最流行的RNN,在語音識別、圖片描述、自然語言處理等許多領域中成功應用。

但不幸的一面是,LSTM的結構很複雜,因此,我們需要花上一些力氣,才能把LSTM以及它的訓練算法弄明白。在搞清楚LSTM之後,我們再介紹一種LSTM的變體:GRU (Gated Recurrent Unit)。 它的結構比LSTM簡單,而效果卻和LSTM一樣好,因此,它正在逐漸流行起來。最後,我們仍然會動手實現一個LSTM。

需要注意的一點是:LSTM和GRU都是循環神經網絡的一種。

本節分兩個部分,第一部分是原理(包括基於numpy的一個實現,幫助理解原理),第二部分是應用。

8.4.1 原理介紹及numpy實現

首先介紹一下原理及實現
https://zybuluo.com/hanbingtao/note/581764

代碼:8_chapter/8.4.1遞歸神經網絡

8.4.2 基於tensorflow的cnn/lstm的文本分類實現

其次介紹一下使用tensorflow實現的基於cnn/lstm文本分類

每個word經過embedding之後,進入LSTM層,這裏LSTM是標準的LSTM,然後經過一個時間序列得到的t個隱藏LSTM神經單元的向量,這些向量經過mean pooling層之後,可以得到一個向量h,然後緊接着是一個簡單的邏輯斯蒂迴歸層(戒者一個softmax層)得到一個類別分佈向量。

代碼:8_chapter/8.4.2遞歸神經網絡

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