詳細闡述基於時間的反向傳播演算法(Back-Propagation Through Time,BPTT)
上一節我們說了詳細展示RNN的網路結構以及前向傳播,在瞭解RNN的結構之後,如何訓練RNN就是一個重要問題,訓練模型就是更新模型的引數,也就是如何進行反向傳播,也就意味著如何對引數進行求導。本篇內容就是詳細介紹RNN的反向傳播演算法,即BPTT。
首先讓我們來用動圖來表示RNN的損失是如何產生的,以及如何進行反向傳播,如下圖所示。
上面兩幅圖片,已經很詳細的展示了損失是如何產生的, 以及如何來對引數求導,這是忽略細節的RNN反向傳播流程,我相信已經描述的非常清晰了。下圖(來自trask)描述RNN詳細結構中反向傳播的過程。
有了清晰的反向傳播的過程,我們接下來就需要進行理論的推到,由於符號較多,為了不至於混淆,根據下圖,現標記符號如表格所示:
符號 | 含義 |
輸入向量的大小(one-hot長度,也是詞典大小) | |
輸入的每一個序列的長度 | |
隱藏層神經元的個數 | |
樣本集合 | |
第時刻的輸入 | |
第時刻經過Softmax層的輸出。 | |
第時刻輸入樣本的真實標籤 | |
第時刻的損失函式,使用交叉熵函式, | |
序列對應的損失函式: RNN的反向傳播是每處理完一個樣本就需要對引數進行更新,因此當執行完一個序列之後,總的損失函式就是各個時刻所得的損失之和。 |
|
第個時刻RNN隱藏層的輸入。 | |
第t個時刻RNN隱藏層的輸出。 | |
輸出層的輸入,即Softmax函式的輸入 | |
輸入層與隱藏層之間的權重。 | |
上一個時刻的隱藏層 與 當前時刻隱藏層之間的權值。 | |
隱藏層與輸出層之間的權重。 |
我們對引數求導比較方便,只有每一時刻的輸出對應的損失與相關,可以直接進行求導,即:
要對引數進行更新,就不那麼容易了,因為引數雖是共享的,但是他們不只是對第刻的輸出做出了貢獻,同樣對時刻隱藏層的輸入做出了貢獻,因此在對引數求導的時候,需要從後向前一步一步求導。
假設我們在對時刻的引數求導,我們利用鏈式法則可得出:
我們發現對進行求導的時候,都需要先求出,因此我們設:
那麼我們現在需要先求出,則:
注:在求解啟用函式導數時,是將已知的部分求導之後,然後將它和啟用函式導數部分進行哈達馬乘積。啟用函式的導數一般是和前面的進行哈達馬乘積,這裡的啟用函式是雙曲正切,用矩陣中對角線元素表示向量中各個值的導數,可以去掉哈達馬乘積,轉化為矩陣乘法。
則:
我們求得,之後,便可以回到最初對引數的求導,因此有:
有了各個引數導數之後,我們可以進行引數更新:
參考:
李弘毅老師《深度學習》
相關文章
- 詳解 BackPropagation 反向傳播演算法!反向傳播演算法
- 卷積神經網路(CNN)反向傳播演算法公式詳細推導卷積神經網路CNN反向傳播演算法公式
- 反向傳播演算法的暴力理解反向傳播演算法
- 反向傳播演算法(BackPropagation)反向傳播演算法
- 詳細闡述遊戲方法多種基本理念(轉)遊戲
- 正向傳播和反向傳播反向傳播
- 傳播小知識:timeout限制時間命令
- 機器學習分享——反向傳播演算法推導機器學習反向傳播演算法
- 機器學習反向傳播演算法的數學推導機器學習反向傳播演算法
- 2.反向傳播反向傳播
- LSTM模型與前向反向傳播演算法模型反向傳播演算法
- Eric Schwarz:闡述浪費玩家遊戲時間的設計模式遊戲設計模式
- 【DL筆記4】神經網路詳解,正向傳播和反向傳播筆記神經網路反向傳播
- 一段程式碼闡述一個輪播思路
- 卷積神經網路(CNN)反向傳播演算法卷積神經網路CNN反向傳播演算法
- 深度神經網路(DNN)反向傳播演算法(BP)神經網路DNN反向傳播演算法
- JavaScript基於時間的動畫演算法JavaScript動畫演算法
- 【機器學習】李宏毅——何為反向傳播機器學習反向傳播
- CUDA教學(2):反向傳播反向傳播
- 詳解神經網路中反向傳播和梯度下降神經網路反向傳播梯度
- 詳細闡述交換機的三種連線方式:級聯、堆疊和叢集
- 超級詳細的闡述:大資料、雲端計算和人工智慧的關係大資料人工智慧
- 關於 RNN 迴圈神經網路的反向傳播求導RNN神經網路反向傳播求導
- 零基礎深度學習入門:由淺入深理解反向傳播演算法深度學習反向傳播演算法
- 【Stanford CNN課程筆記】4. 反向傳播演算法CNN筆記反向傳播演算法
- 韓國政府詳細闡述多起加密貨幣交易黑客事件後的監管計劃加密黑客事件
- 【NLS_LANG】將Windows環境的SQL Plus提示資訊修改為“英文”之詳細闡述WindowsSQL
- 闡述玩家社群對於遊戲成功的重要性遊戲
- 【好文推薦】黑莓OS手冊是如何詳細闡述底層的程式和執行緒模型的?執行緒模型
- 迴圈神經網路(RNN)模型與前向反向傳播演算法神經網路RNN模型反向傳播演算法
- numpy實現神經網路-反向傳播神經網路反向傳播
- 你真的理解反向傳播嗎?面試必備反向傳播面試
- 深度學習二:概率和反向傳播的變種深度學習反向傳播
- 看詳細到秒的檔案時間
- 闡述遊戲設計基礎之遊戲理念和想法遊戲設計
- Wooga CEO闡述專注於劇情主導遊戲的原因遊戲
- 人民日報發推歡迎Google重返大陸,FB上長文闡述詳細立場Go
- STM32 定時器詳細篇(基於HAL庫)定時器