深度學習-*-RNN正向及反向傳播
阿新 • • 發佈:2018-11-27
RNN簡介
RNN(迴圈神經網路)是深度神經網路中,應用最廣泛的兩種神經網路架構之一。並且,作為一種時序結構的神經網路,RNN經常用於時序相關的問題中,且在NLP中應用廣泛。還有一種RNN稱為遞迴神經網路,雖然名字類似,但是卻是不一樣的架構。
RNN圖示
是輸入層資料,
是隱含層資料,
是輸出層資料,我們令:每一個
是t時刻對應的真實輸出,
是對
進行softmax計算之後得到的估計值。
是輸入層到隱含層的權重,
是上一時刻隱含層到當前時刻隱含層的權重,
是隱含層到輸出層的權重。
正向傳播
由上圖易知:
我們假設t時候的損失函式為
(一般為交叉熵損失/負對數似然),則一次正向傳播的損失
反向傳播
反向傳播中,還是使用鏈式推導方法,與傳統的神經網路推導類似。但不一樣的地方在於隱含層受到了前一時刻隱含層的影響,故
時刻隱含層
的誤差傳播源來自於
與
兩個方向。這裡推導我是參考了很多部落格文章,但是一直都沒理解。後來看了文獻1,多少有點明白的意思。有幸各位大牛們看了這篇文章,請指點。
我們首先看誤差對
的影響
其中i是當前資料所屬真實類別索引,j為所有類別的索引分量。當i=j時,
是1,否則是0,參考了文獻2。
假設總時刻長度為
,
也就是說最後一個節點的隱含層誤差只來源於他的輸出層。其餘各層除了本身輸出層外,還會有上一層的誤差來源。通過鏈式求導有