本文重點
本文我們來看一下RNN最致命的問題,這個問題就是RNN的梯度消失和梯度爆炸的問題,我們前面的一個章節已經計算了RNN的反向傳播,如果從反向傳播的角度來進行分析,我們可以很容易的分析出,RNN為什麼會有梯度消失和梯度爆炸?
RNN的反向傳播
如上所示,是上一個章節推導的RNN的反向傳播的公式,這裡是計算的第三個時刻損失關於h(1)的偏導數,如果我們將其進行擴展,擴展為T時刻的損失對h(1)的偏導數,那麼此時可以表示為:
其中diag(f'(Whhht-1+WxhXt+bt))是一個矩陣,Whh也是一個矩陣,二者相乘也是一個矩陣,為了好理解,我們將這個矩陣給計算出來:
這個矩陣我們稱之為雅可比矩陣,將其代入到反向傳播公式,我們可以看到這個矩陣會連乘。所以當這個矩陣的最大特徵值大於1時,每層的梯度由於連乘會出現指數級增長,導致梯度爆炸,反之,當雅可比矩陣的最大特徵值小於1的時候,梯度大小會×指數縮小,產生梯度消失的問題。由此我們就知道了梯度消失和梯度爆炸的真因。
梯度消失和梯度爆炸的解決辦法{!-- PGC_COLUMN --}
梯度爆炸很容易發現,因為參數會大到崩潰,你會看到很多 NaN,或者不是數字的情況,這意味著你的網絡計算出現了數值溢出。如果你發現了梯度爆炸的問題,一個解決方法就是用梯度修剪。梯度修剪的意思就是觀察你的梯度向量,如果它大於某個閾值,縮放梯度向量,保證它不會太大,這就是通過一些最大值來修剪的方法。
梯度消失可以嘗試使用新的模型結構來解決,這個結構叫做長短期記憶網絡LSTM和門控制循環單元(GRU),這個在之後的課程中會進行詳細的介紹
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺「網易號」用戶上傳並發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.