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

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引入「記憶」的概念;遞歸指其每個元素都執行相同的任務,可是輸出依賴於輸入和「記憶」ide

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

RNN的梯度爆炸和消失問題

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

一般來講,梯度爆炸更容易處理一些。由於梯度爆炸的時候,咱們的程序會收到NaN錯誤。咱們也能夠設置一個梯度閾值,當梯度超過這個閾值的時候能夠直接截取。遞歸

梯度消失更難檢測,並且也更難處理一些。總的來講,咱們有三種方法應對梯度消失問題:圖片

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

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

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

代碼: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遞歸神經網絡

相關文章
相關標籤/搜索