序列模型(5)-----雙向神經網絡(BRNN)和深層循環神經網絡(Deep RNN)


一、雙向循環神經網絡BRNN

采用BRNN原因:

雙向RNN,即可以從過去的時間點獲取記憶,又可以從未來的時間點獲取信息。為什么要獲取未來的信息呢?

判斷下面句子中Teddy是否是人名,如果只從前面兩個詞是無法得知Teddy是否是人名,如果能有后面的信息就很好判斷了,這就需要用的雙向循環神經網絡。

至於網絡單元到底是標准的RNN還是GRU或者是LSTM是沒有關系的,都可以使用。

(2)雙向循環神經網絡(BRNN)的基本思想是提出每一個訓練序列向前和向后分別是兩個循環神經網絡(RNN),而且這兩個都連接着一個輸出層。這個結構提供給輸出層輸入序列中每一個點的完整的過去和未來的上下文信息。下圖展示的是一個沿着時間展開的雙向循環神經網絡。六個獨特的權值在每一個時步被重復的利用,六個權值分別對應:輸入到向前和向后隱含層(w1, w3),隱含層到隱含層自己(w2, w5),向前和向后隱含層到輸出層(w4, w6)。值得注意的是:向前和向后隱含層之間沒有信息流,這保證了展開圖是非循環的。每一個輸出都是綜合考慮兩個方向獲得的結果再輸出

 

 

(4)對於整個雙向循環神經網絡(BRNN)的計算過程如下:

向前推算(Forward pass):

對於雙向循環神經網絡(BRNN)的隱含層,向前推算跟單向的循環神經網絡(RNN)一樣,除了輸入序列對於兩個隱含層是相反方向的,輸出層直到兩個隱含層處理完所有的全部輸入序列才更新:

向后推算(Backward pass):

雙向循環神經網絡(BRNN)的向后推算與標准的循環神經網絡(RNN)通過時間反向傳播相似,除了所有的輸出層δ項首先被計算,然后返回給兩個不同方向的隱含層:

 摘自https://blog.csdn.net/jojozhangju/article/details/51982254

 

 

 二、深度循環神經網絡

(1)前面提到的其是都只有RNN的一單元或者說RNN單元只有一層隱藏層,可以想象將多個RNN單元堆疊在一起,那就形成了深度循環神經網絡(deep RNN)。深層循環神經網絡如下圖所示:

 

 

 

 

LSTM有一個缺點就是在使用時需要完整的數據序列,你才能預測任意位置。比如用來構建語音識別系統,需要人把話說完,才能進行處理。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM