1、簡介
在反向傳播的過程中,需要對激活函數(shù)進(jìn)行求導(dǎo),如果導(dǎo)數(shù)大于1,那么會隨著網(wǎng)絡(luò)層數(shù)的增加梯度更新將會朝著指數(shù)爆炸的方式增加,這就是梯度爆炸。同樣,如果導(dǎo)數(shù)小于1,那么隨著網(wǎng)絡(luò)層數(shù)的增加梯度更新信息會朝著指數(shù)衰減的方式減少,這就是梯度消失。梯度消失和梯度爆炸的根本原因在于反向傳播訓(xùn)練法,屬于先天不足。
2、解決方法
1)預(yù)訓(xùn)練加微調(diào)。先對整個(gè)網(wǎng)絡(luò)逐層預(yù)訓(xùn)練,預(yù)訓(xùn)練完成之后再微調(diào)。(應(yīng)用的不是很多)
2)梯度剪切。主要是針對梯度爆炸的問題提出的,基本思想是對梯度設(shè)置一個(gè)閾值,然后更新梯度的時(shí)候,如果梯度超過這個(gè)閾值,那么將其強(qiáng)制限制在這個(gè)范圍之內(nèi)。正則化可以通過對權(quán)重做正則限制過擬合,從而限制梯度爆炸的發(fā)生。
3)relu等激活函數(shù)。relu:如果激活導(dǎo)數(shù)為1,那么不存在梯度消失和爆炸了。
4)batch norm。通過對每一層的輸出規(guī)范為均值方差一致的方法,消除了權(quán)重帶來的放大縮小的影響。
5)殘差網(wǎng)絡(luò)