RNN part 6-Bidirectional RNN
前面章節中我們介紹了
習翔宇:RNN Part1-RNN介紹習翔宇:RNN Part 4-LSTM習翔宇:RNN part 5-GRU(Gated Recurrent Unit)到此為止介紹的都是單向RNN,也就是在 時刻的判斷依賴於過去的上文信息也就是 時刻的輸入,但是未來的上下文信息是無法獲取的,比如在實體抽取任務重,下面的句子是一個很好的例子:
He said, 「Teddy bears are on sale!」He said, 「Teddy Roosevelt was a great President!」
我們需要判斷Teddy是否是Person的一部分,第一句里顯然不是,第二句里顯然是。但是如果只用到過去的上下文信息也就是「He said, 」,顯然是無法做出判斷的,需要用到未來的上下文信息才能夠進行判斷。Bi-directional RNN解決了這個問題。
1. Bi-directional RNN(BRNN)
Bidirectional recurrent neural networks在1997年由Mike Schuster等提出。
1.1 structure
BRNN的idea是將傳統RNN的狀態神經元拆分為兩個部分,一個負責positive time direction(forward states),另一個負責negative time direction(backward states)。Forward states的輸出並不會連接到Backward states的輸入。因此結構如下所示。如果沒有backward layer的話就跟傳統RNN相同了。
這個結構提供給輸出層輸入序列中每一個點的完整的過去和未來的上下文信息。下圖展示的是一個沿著時間展開的雙向循環神經網路。六個獨特的權值在每一個時步被重複的利用,六個權值分別對應:輸入到向前和向後隱含層(w1, w3),隱含層到隱含層自己(w2, w5),向前和向後隱含層到輸出層(w4, w6)。值得注意的是:向前和向後隱含層之間沒有信息流,這保證了展開圖是非循環的。
1.2 Training
BRNN同樣採用BPTT的演算法,只是稍微有一點不同。
- 前向傳播
- 後向傳播
2. 總結
問:BRNN是如何能夠獲取到未來上下文信息的呢?
答:通過backward layer來獲取未來的上下文信息,例如針對一段長為 的序列數據,在時刻 ,傳統RNN只能獲取到 時刻的信息,而通過backward layer能夠獲取到 時刻的輸入信息,因此結合起來得到的結果就是在任何時刻 都能夠獲取到所有時刻的輸入信息。
推薦閱讀:
※【轉】欠擬合、過擬合及其解決方法
※李飛飛最新論文:構建好奇心驅動的神經網路,複製嬰兒學習能力
※情緒大腦皮層和皮層下神經過程 植物性神經下丘腦和邊緣 杏仁核 海馬 扣帶回 大腦皮層 腦垂體腎上腺甲狀腺
※Michael Nielsen對交叉熵的解釋(三)
※從下往上看--新皮層資料的讀後感 第三部分 MP神經元-70年前的逆向推演