迴圈神經網路的變種

2021-10-05 11:37:38 字數 1504 閱讀 9469

迴圈神經網路除了有不同的設計方法之外,還能夠造出一些比較實用的 「變種」,用於提高迴圈神經網路解決一些特定問題的能力。常用的迴圈神經網路變種就是雙向迴圈神經網路和深層迴圈神經網路,本節將會對這兩個網路變種進行簡要的介紹。

雙向迴圈神經網路

到目前為止,我們討論的迴圈神經網路只能將狀態按照從前向後的方 向傳遞,這意味著迴圈體在時刻 t 的狀態只能從過去的輸入序列 x(t=0) ,…, x(t-1)以及當前的輸入x(t)中獲取資訊。然而,在一些應用中,我們要得到的y(t)可能對整個輸入序列都有依賴。也就是說,當前時刻的輸出不僅取決於之前的狀態,也要考慮到之後的狀態。例如,在語音識別中,由於一些字詞的發音相同但含義不同,所以對當前發音的正確解釋可能取決於下乙個(或多個〉發音。又如,填補乙個語句中空缺位置的單詞,此時掌握這個位置之前的單詞是必須的,但為了**得更符合情景,最好還要考慮到這個位置之後的幾個單詞。雙向迴圈神經網路(bidirectionalrnn, bi-rnn)的發明就是為了解決 這類問題, 在一些需要雙向資訊的應用中,bi-rnn得到了非常成功的應用。顧名思義,bi-rnn結合了在時間序列上乙個從起點開始執行的rnn和另乙個從終點回朔執行的rnn。將 bi-rnn 以圖的方式繪製出來的話, 它看上去就像是由兩個迴圈神經網路上下疊加在一起而組成,並且輸出由這兩個迴圈神經網路的狀態共同決定。下圖展示了乙個雙向迴圈神經網路的結構。

從上圖中可以看到,在每乙個時刻t,例如 t=2 ,輸入x(2))會同時提供給這兩個方向相反的迴圈神經網路,而輸出則是由這兩個單向迴圈神經網路共同決定的。bi-rnn 是由 mike schuster 及 kuldip k.paliwal 等人於2023年首次提出的,年份與 lstm被提出的年份相同。在 mike schuster 及 kuldip k.paliwal 等人發表的**《bidirectional recurrent neural networks》 中有更多關於bi-rnn的內容,感興趣的讀者可以參考這篇**。

深層迴圈神經網路

通過將每乙個時刻上的迴圈體重複執行多次,迴圈神經網路可以變得更深,由此就得到了深層迴圈神經網路(deeprnn)。深層迴圈神經網路可以看作是迴圈神經網路的另外乙個變種,其設計的初衷是為了增強模型的表達能力。下圖給出了深層迴圈神經網路的結構示意圖。

在設計深層迴圈神經網路的引數時,處在相同層的迴圈體所使用的引數是一致的,而處在不同層的迴圈體可以使用不同的引數。drnn可以增強模型的表達能力,主要是將每個時刻上的迴圈體重複多次,每一層迴圈體中引數是共享的,但不同層之間的引數可以不同。總結:本小節主要講述了兩個不同的迴圈神經網路的變種,分別是雙向迴圈神經網路和深層迴圈神經網路的內容,以及它們的結構和普通rnn的乙個對比。

關注小鯨融創,一起深度學習金融科技!

迴圈神經網路

原文 迴圈神經網路也可以畫成下面這個樣子 對於語言模型來說,很多時候光看前面的詞是不夠的,比如下面這句話 我的手機壞了,我打算 一部新手機。可以想象,如果我們只看橫線前面的詞,手機壞了,那麼我是打算修一修?換一部新的?還是大哭一場?這些都是無法確定的。但如果我們也看到了橫線後面的詞是 一部新手機 那...

迴圈神經網路

原文 迴圈神經網路也可以畫成下面這個樣子 對於語言模型來說,很多時候光看前面的詞是不夠的,比如下面這句話 我的手機壞了,我打算 一部新手機。可以想象,如果我們只看橫線前面的詞,手機壞了,那麼我是打算修一修?換一部新的?還是大哭一場?這些都是無法確定的。但如果我們也看到了橫線後面的詞是 一部新手機 那...

迴圈神經網路

特點 上一階段 時間步 的輸出作為輸入進入當前時間步。迴圈神經網路由迴圈神經原組成,迴圈神經元一般有兩個輸入,乙個是前階段的資訊,乙個是當前階段的資訊。同時產生乙個輸出,可以作為下一階段的輸入。迴圈神經網路採用多種模型。左上 每個時間步有乙個輸入,同時產生乙個輸出 右上 一串輸入,最後產生乙個輸出。...