李宏毅深度學習筆記(十二)RNN(循環神經網絡)

1.一個簡單的循環神經網絡

在這裏插入圖片描述如上圖所示,先將輸入序列(Input sequence)的第一個節點[11]\begin{bmatrix} 1 \\ 1 \end{bmatrix}輸入上圖所示簡易版的記憶網絡中,即圖中橘色的方框裏面。藍色的方框是記憶單元,裏面儲存着上一個時間點所計算出來信息,因爲此次是第一個時間點所以先給藍色方框賦初值[00]\begin{bmatrix} 0 \\ 0 \end{bmatrix}。又因爲假定所有激活函數(activation function)的權重weight都是1,所有的偏置值(bias)都是0,所以經過綠色圓圈的計算得到[22]\begin{bmatrix} 2 \\ 2 \end{bmatrix},即1+1+0+0=2,然後要將計算出來的數值儲存到藍色方框裏面去,最後經過淺紅色圓圈的計算得[44]\begin{bmatrix} 4 \\ 4 \end{bmatrix},到此第一個時間節點就計算完畢了。
接下來重複上面的工作:
在這裏插入圖片描述
在這裏插入圖片描述
這樣就得到了輸出序列(output sequence)。這裏要注意輸入序列的順序不能隨意調整,因爲隨意調整的話輸出序列就會不同

2.RNN的應用舉例(Elman Network)

在這裏插入圖片描述如上圖要從一句話“arrive Taipe on November 2nd”中提取出地點和時間,就可以把這句話放入RNN裏面,進行處理,因爲RNN經過大量的訓練中會從訓練數據中總結出“arrive”這個單詞後面接一個地點的概率比較大,所以大概率會得出這句話中的地點是“Taipei”,同樣的,會根據前三個單詞“arrive Taipe on “和"November 2nd”得出一個概率指出"November 2nd”是世間的概率比較大。
上圖中綠色方框是隱藏層,可以多幾個隱藏層。

3.其他形式的RNN

Jordan Network
如下圖所示Jordan Network與Elman Network的區別在於輸入隱藏層的數據不同
在這裏插入圖片描述

雙向RNN
在這裏插入圖片描述

參考1.
參考2.
參考3:Pytorch的RNN.

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