深度學習【5】迴圈神經網路(RNN)反向傳播演算法(BPTT)理解_DL

來源:互聯網
上載者:User

http://blog.csdn.net/linmingan/article/details/50958304

迴圈神經網路的反向傳播演算法其實只是BP演算法的一個簡單變體而已。

首先我們先看看迴圈神經網路的前向傳播演算法:


需要注意的是,該RNN中前一時刻到當前時刻只有一個權重矩陣,該權重矩陣與時間並沒有什麼關係。整個前向傳播演算法與BP網路的前向傳播演算法的差別是多了一個前一時刻隱藏層的資訊而已。在我們這邊的前向傳播演算法可能與大家平時看到的會有點出入,因為這個前向傳播演算法將傳播過程中的各個階段都拆分開來表示。在進入啟用函數前先用額外的兩個變數表示,分別是進入隱藏層啟用函數e前的和進入輸出層啟用函數g前的。進行這樣的拆分是為了更好的實現反向傳播演算法,即鏈式求導法則。

RNN的前向傳播演算法是以時間的推移進行的,其實就是一些時序上的資料,比如音頻中分幀後的得到的一系列的音頻訊號幀。RNN的輸入資料與其他神經網路如DNN的輸入資料不同的是,RNN的輸入資料樣本不能打亂,必須按時間進行輸入,而其他的神經網路輸入資料可以打亂。所RNN與其他神經網路的前向傳播演算法和反向傳播演算法的實現其實並沒有什麼特別之處,只是多了幾個變數。因此RNN的關於時間的t迴圈可以看做,第t個訓練樣本(或者第t個批量訓練樣本),但是一定要保持先後順序,不然學習出來的可能沒有什麼用處。

接下來給出BPTT演算法:


從BPTT演算法可以看出,要求和的梯度必須先求的梯度,因為從前向傳播演算法我們可以知道和是直接決定的值的。類似的要求和的梯度必須先求的梯度(上述演算法中有錯誤,從第6行開始應該都改為,請大家注意一下)。這就是神經網路求導中的鏈式法則(chain rule)。

BPTT演算法詳解:

 

其中,

                                   
       其中,

 

其中,

 

其中,

                                                                

       其中,

       

       其中,         

                                 

       其中,

      

       其中,

                    

       其中,

第10步驟中的就是用來更新第5步驟中右邊的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.