迴圈神經網路RNN的基本介紹

2022-09-12 00:51:29 字數 1634 閱讀 6971

本部落格適合那些bp網路很熟悉的讀者

符號解釋:

1.$c_^$:t時刻第l層的神經元的集合,因為$c_^$表示的是一層隱藏層,所以圖中乙個圓圈表示多個神經元。

2.$h_^$:第l層在t時刻的輸出。因為$h_^$是一層隱藏層的輸出,所以表示的是乙個向量。

3.$l_$:表示的是在j時刻,網路的輸出的值和目標輸出值的平方差,l表示的是所有時刻的平方差的和。

4.$w_$:是乙個矩陣,表示的是輸入x到c的權值矩陣,那麼他的大小是(c的維度)x(x的維度)。

6. b:表示的是偏置。

(ps:個人感覺c,h和w這些符號表示的維度很重要,因為理解了維度,才能更好的理解網路的結構,才能更好的去實現這個結構。另外在這裡我們要學習的引數是$w_$和$w_$)

圖中左邊的網路結構是乙個rnn的時序上展開的結構,所有的列表示的是同乙個神經網路,只是時間依次排開而已,紫色(橫向)的箭頭表示的是時序上的聯絡。藍色(豎向)的箭頭表示的是空間上的傳播(也就是普通的前向傳播),而紫色(橫向)的箭頭表示的上乙個時刻隱藏層的輸出和當前時刻上一層的輸出共同組成當前隱藏層的的輸入。例如:$c_^$表示的是t+1時刻第l+1層,那麼這一層的輸入是該層的上乙個時刻的輸出$h_^$和當前時刻的上一層的輸出$h_^$共同作為$c_^$的輸入。

圖中右邊的公式分別是$c_$的輸入;$c_$的輸入的輸出,用$h_$表示;所有時刻的平方差的和。

上圖左邊的網路結構表示的反向傳播的過程。其中綠色的表示的是時間上的反向傳播的過程,紅色的是同乙個時刻空間上的傳播的過程(其實也就是普通前饋神經網路的誤差過程),

上圖右邊的公式表示的反向傳播的計算,n個輸入的誤差平方和的關於每個神經元的偏導(也就是$\delta$),這個過程使用的是鏈式求導法則。而右邊是關於$\delta_^$的偏導。

第乙個公式:將與$\delta_^$同乙個誤差時刻(紅色部分,也就是普通的前饋傳播造成的誤差)分離出來,其他時刻的誤差(綠色部分)是時序上的,這個也是造成梯度消失或**的原因。

第二個公式,$l_$關於$c_^$的分解過程,這是bp網路的分解方式。

第三個公式,$\sum l_$關於$c_^$的分解過程,這和bp網路的分解方式類似。

上圖表示的是從$\sum l_$中取出最後乙個$l_$求關於$c_^$,存在n個$||w_||||\delta'(c_^)||$相乘,一般來說$||\delta'(c_^)||$小於等於0.25,如果$w_$小於4,那麼就會出現梯度消;如果大於4,那麼就會出現梯度**。

RNN迴圈神經網路

評測乙個句子出現的可能性 文字自動生成 rnn迴圈處理相同的任務,就是 句子接下來的單詞是什麼。rnn迴圈記錄前面所有文字的資訊 也叫做記憶 作為 當前詞的乙個輸入 1.語言模型和文字生成 語言模型中,輸入是經過編碼的詞向量序列,輸出是一系列 的詞 2.機器翻譯 機器翻譯必須等待所有輸入結束後才能輸...

迴圈神經網路 RNN

from torchnlp.word to vector import glove vectors glove vectors hello torch.nn.utils.clip grad norm p,10 10就是最大梯度的模閾值,即保留原來梯度的方向,但梯度大小縮放至10對與梯度瀰散現象,考慮...

RNN迴圈神經網路

神經網路基礎 神經網路可以當做是擬合任意函式的黑盒子,給定特定的輸入x,就能夠的得到希望的輸出y。神經網路結構如下圖 將神經網路模型訓練好之後,輸入層輸入乙個x,通過網路之後就能夠在輸出層輸出特定的y.有了這麼強大的模型,為什麼會出現rnn 迴圈神經網 它們單獨的乙個個的輸入,前乙個輸入和後乙個輸入...