1.一個簡單的循環神經網絡
如上圖所示,先將輸入序列(Input sequence)的第一個節點輸入上圖所示簡易版的記憶網絡中,即圖中橘色的方框裏面。藍色的方框是記憶單元,裏面儲存着上一個時間點所計算出來信息,因爲此次是第一個時間點所以先給藍色方框賦初值。又因爲假定所有激活函數(activation function)的權重weight都是1,所有的偏置值(bias)都是0,所以經過綠色圓圈的計算得到,即1+1+0+0=2,然後要將計算出來的數值儲存到藍色方框裏面去,最後經過淺紅色圓圈的計算得,到此第一個時間節點就計算完畢了。
接下來重複上面的工作:
這樣就得到了輸出序列(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