我們給定一個三個時間的RNN單元,如下:
我們假設最左端的輸入 為給定值, 且神經元中沒有激活函數(便於分析), 則前向過程如下:
在 時刻, 損失函數為
,那么如果我們要訓練RNN時, 實際上就是是對
求偏導, 並不斷調整它們以使得
盡可能達到最小(參見反向傳播算法與梯度下降算法)。
那么我們得到以下公式:
將上述偏導公式與第三節中的公式比較,我們發現, 隨着神經網絡層數的加深對 而言並沒有什么影響, 而對
會隨着時間序列的拉長而產生梯度消失和梯度爆炸問題。
根據上述分析整理一下公式可得, 對於任意時刻t對 求偏導的公式為:
由 以上可知,RNN 中總的梯度是不會消失的。即便梯度越傳越弱,那也只是遠距離的梯度消失,由於近距離的梯度不會消失,所有梯度之和便不會消失。RNN 所謂梯度消失的真正含義是,梯度被近距離梯度主導,導致模型難以學到遠距離的依賴關系。
參考:
https://www.cnblogs.com/bonelee/p/10475453.html