26. 簡介雙向遞迴神經網路(BiRNN)

柯頌竹
Programming with Data
Jan 22, 2021

之前的提到的SimplyRNN、RNN+LSTM、RNN+GRU都是單向遞迴神經網路,也就是說再預測字詞的模型中,神經網路只會考慮上文,並不會上下文同時考慮進去。

雙向遞迴神經網路(BiRNN)不僅從前往後(如下圖黃色實箭頭)保留該詞前面的詞的重要信息,而且從後往前(如下圖黃色虛箭頭)去保留該詞後面的詞的重要信息,然後基於這些重要信息進行預測該詞。BiRNN 模型如下:

BiRNN 的網路架構:

如下圖所示,每一個輸出都是綜合考慮兩個方向獲得的結果再輸出:

正向傳播分為兩個步驟:

  • 由前往後(左到右)傳播,從初始時間開始計算直到到最後
  • 由後往前(右至左)傳播,從最後一個時間開始計算直到初始時間

用數學式子來表示雙向 RNN 的過程如下:

由前往後:

由後往前:

輸出:

輸出的部分要把往前和往後的資訊保留下來所以把 h1t 和 h2t 拼接起來,假設 h1t 和 h2t 都是 100*1 維,拼接起來後就變成 100*2 維了。又因為 BiRNN 需要保存兩個方向的權重矩陣,所以需要的記憶體是 RNN 的 2 倍。

將雙向 RNN 與 LSTM 模塊相結合可以顯著提高你的性能,當你將其與註意機制相結合時,你將獲得機器翻譯、情緒分析等用例的最新性能。

--

--

柯頌竹
Programming with Data

熱愛自由行、參觀各種形式的展覽,踏上過20個國家的領土。歡迎詢問各種在歐洲自由行的問題。偶爾分享一下資料分析的讀書筆記。