產生消失的梯度問題的原因

產生消失的梯度問題的原因

先看一個極簡單的深度神經網絡:每一層都只有一個單一的神經元。如下圖:

代價函數C對偏置b1的偏導數的結果計算如下:

先看一下sigmoid 函數導數的圖像:

該導數在σ′(0) = 1/4時達到最高。現在,如果我們使用標準方法來初始化網絡中的權重,那麼會使用一個均值爲0 標準差爲1 的高斯分佈。因此所有的權重通常會滿足|wj|<1。從而有wjσ′(zj) < 1/4。

這其實就是消失的梯度出現的本質原因了。

 

可以考慮將權重初始化大一點的值,但這可能又會造成激增的梯度問題。

根本的問題其實並非是消失的梯度問題或者激增的梯度問題,而是在前面的層上的梯度是來自後面的層上項的乘積。所以神經網絡非常不穩定。唯一可能的情況是以上的連續乘積剛好平衡大約等於1,但是這種機率非常小。

所以只要是sigmoid函數的神經網絡都會造成梯度更新的時候極其不穩定,產生梯度消失或者激增問題。

 

解決梯度消失問題

使用ReLU。
使用ReL 函數時:gradient = 0 (if x < 0), gradient = 1 (x > 0)。不會產生梯度消失問題。、
注:實際上就是梯度計算過程中,w值和激活函數的導數值相乘大於1或者小於1的問題,如果是大於1,那麼經歷過很多個隱藏層梯度就會越來越大,即梯度爆炸,如果是小於1當然就是梯度消失啦。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章