梯度消失、爆炸原因及其解決方法


一、梯度不穩定問題:

什么是梯度不穩定問題:深度神經網絡中的梯度不穩定性,前面層中的梯度或會消失,或會爆炸。

原因:前面層上的梯度是來自於后面層上梯度的乘乘積。當存在過多的層次時,就出現了內在本質上的不穩定場景,如梯度消失和梯度爆炸。

二、梯度消失(vanishing gradient problem):

原因:例如三個隱層、單神經元網絡:

 

則可以得到:

然而,sigmoid方程的導數曲線為:

可以看到,sigmoid導數的最大值為1/4,通常abs(w)<1,則:

 

前面的層比后面的層梯度變化更小,故變化更慢,從而引起了梯度消失問題。

 

三、梯度爆炸(exploding gradient problem):

當權值過大,前面層比后面層梯度變化更快,會引起梯度爆炸問題。

四、sigmoid時,消失和爆炸哪個更易發生?

量化分析梯度爆炸出現時a的樹枝范圍:因為sigmoid導數最大為1/4,故只有當abs(w)>4時才可能出現

 

由此計算出a的數值變化范圍很小,僅僅在此窄范圍內會出現梯度爆炸問題。而最普遍發生的是梯度消失問題。

(5)如何解決梯度消失和梯度爆炸?6種方法: https://www.imooc.com/article/44061

使用ReLU,maxout等替代sigmoid。
區別:(1)sigmoid函數值在[0,1],ReLU函數值在[0,+無窮],所以sigmoid函數可以描述概率,ReLU適合用來描述實數;(2)sigmoid函數的梯度隨着x的增大或減小和消失,而ReLU不會。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM