當前位置:
首頁 > 新聞 > 手把手教你訓練 RNN|Part II

手把手教你訓練 RNN|Part II

雷鋒網按:本文為雷鋒字幕組編譯的技術博客,原標題 Step-by-step walkthrough of RNN Training - Part II,作者為 Eniola Alese。

翻譯 | 陳濤 整理 | 凡江

RNN 的反向傳播是為了計算出關於損失函數的梯度值

讀者可以在這裡看到本文的 Part I(https://www.leiphone.com/news/201805/ZMeniGUPBZ50lyvk.html)。

單個 RNN 單元的反向傳播

RNN 中反向傳播的目的是計算出最終的損失值 L 分別對權值矩陣(W_xh,W_ah,W_ao)和偏置向量(b_h,b_o)的偏導數值。

手把手教你訓練 RNN|Part II

推導出所需的導數值非常簡單,我們只需要利用鏈式法則就能計算出它們。


第一步:為了計算代價,需要先定義損失函數。一般根據具體手中的任務來選擇該損失函數。在這個例子里,對於多分類輸出問題,我們採用交叉熵損失函數 L?t?,其具體計算過程如下:

手把手教你訓練 RNN|Part II


第二步:接下來我們開始往後計算損失函數 L?t? 對預測輸出值的激活值 ??t? 的偏導數值。因為在前向傳播過程中 softmax 函數以多分類的輸出值作為輸入,因此下面的偏導數值

的計算分為兩種情況:分類 i 時和分類 k 時:

手把手教你訓練 RNN|Part II


第三步:接著利用分類 i 時和分類 k 時的偏導數值

,可以計算出損失函數 L?t? 對預測輸出值 o?t? 的偏導數值:

手把手教你訓練 RNN|Part II


第四步:利用偏導數值

及鏈式法則,計算出損失函數 L?t? 對輸出過程中的偏置向量 b_o 的偏導數值:

手把手教你訓練 RNN|Part II


第五步:利用偏導數值

及鏈式法則,計算出損失函數 L?t? 對隱層至輸出層中的權值矩陣 W_ao 的偏導數值:

手把手教你訓練 RNN|Part II


第六步:利用偏導數值

及鏈式法則,計算出損失函數 L?t? 對隱狀態的激活值 a?t? 的偏導數值:

手把手教你訓練 RNN|Part II


第七步:利用偏導數值

及鏈式法則,計算出損失函數 L?t? 對隱狀態 h?t? 的偏導數值:

手把手教你訓練 RNN|Part II


第八步:利用偏導數值

及鏈式法則,計算出損失函數 L?t? 對隱狀態的偏置向量 b_h 的偏導數值:

手把手教你訓練 RNN|Part II


第九步:利用偏導數值

及鏈式法則,計算出損失函數 L?t? 對輸入層至隱層中的偏置矩陣 W_xh 的偏導數值:

手把手教你訓練 RNN|Part II

第十步:利用偏導數值

及鏈式法則,計算出損失函數 L?t? 對輸入層至隱層中的偏置矩陣 W_ah 的偏導數值:

手把手教你訓練 RNN|Part II

隨時間反向傳播(BPTT)

就像前文中提到的前向傳播過程一樣,將循環網路展開,BPTT 將沿此一直運行著上述步驟。

手把手教你訓練 RNN|Part II

手把手教你訓練 RNN|Part II

主要的區別在於我們必須將每個時間步 t 的偏導數值

累加起來,從而更新權值和偏置,這是因為這些參數在前向傳播的過程中是被各個時間步所共享的。

總結

在本文的第一部分和第二部分中,我們了解了循環神經網路訓練過程中所涉及到的前向傳播和反向傳播。接下來,我們將著眼於 RNN 中所存在的梯度消失問題,並討論 LSTM 和 GRU 網路的進展。

博客原址:https://medium.com/learn-love-ai/step-by-step-walkthrough-of-rnn-training-part-ii-7141084d274b

雷鋒網雷鋒網

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

港科大劉明:深度學習為機器人研究注入新能量,產業需求是新發展的源動力
千架無人機表演成「亂舞」;大眾將與滴滴成立合資公司;樂視視頻App現賭博非法廣告

TAG:雷鋒網 |