梯度消失(vanishing gradient)和梯度爆炸(exploding gradient)

神經網絡中梯度不穩定的根本原因:在於前層上的梯度的計算來自於後層上梯度的乘積(鏈式法則)。當層數很多時,就容易出現不穩定。下邊3個隱含層爲例:


b1的梯度爲:


加入激活函數爲sigmoid,則其導數如下圖:


sigmoid導數σ'的最大值爲1/4。同常一個權值w的取值範圍爲abs(w) < 1,則:|wjσ'(zj)| < 1/4,從而有:


從上式可以得出結論:前層比後層的梯度變化更小,變化更慢,進而引起梯度消失的問題。相反,如果|wjσ'(zj)| > 1時,前層比後層的梯度變化更大,就引起梯度爆炸的問題。實際中,當使用sigmoid作爲激活函數時,更普遍的是梯度消失的問題

在重複一遍,從根本上講無論是梯度消失還是梯度爆炸,其背後的原因是前層網絡的梯度是後層網絡的乘積,所以神經網絡不穩定。唯一可能的情況是以上連續乘積剛好平衡在1左右,但這種機率很小。

解決梯度消失的方法:

隱含層神經元的激活函數用Relu!大笑




發佈了69 篇原創文章 · 獲贊 133 · 訪問量 48萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章