在深度學習領域梯度是個很重要的概念,梯度彌散和梯度爆炸現象(不同激活函數梯度彌散和梯度爆炸的現象不同):
梯度彌散:(以sigmoid爲例)我們可以知道當網絡層數越深的時候,它的學習速率就越大。通常每增加一層,該層的學習速率就要比相鄰的的上一層增加數倍左右。到第四層的學習速率往往是第一層的100倍左右。然而在sigmoid函數中,所有的輸入值都會被壓縮到[0,1]之間,並且隨着網絡層次越深,參數經過的sigmoid函數就越多,就會導致參數變化幅度越小:
例如:x=(1,1),y=(2,100),斜率爲(100-1)/1,但是將x,y都歸一化到(0,1)那麼斜率就會變得很小。歸一化的次數越多,那麼他們之間的斜率就越來越小。隨着網絡層次加深導致的梯度值就越小,最終趨近於0,參數更新幅度極小。
然而這種現象我們稱之爲梯度彌散。
梯度爆炸:在高度非線性的深度神經網絡中或者循環神經網絡中,目標函數通常包含由幾個參數連乘而導致的參數空間的尖銳非線性。當參數更新到處於這樣的懸崖區域的時候,梯度下降會使得更新的參數變得很大
並且隨着網絡深度增大伴隨學習速率指數級上升,所以變得巨大,所以更新使得參數彈跳非常大,使得損失值產生震盪達不到最低點。
在模型進行反向傳播的時候,爲了尋找到最優點,每次反向傳播都會讓自變量向左或者向右移動deta w 而這個值就等於學習速率乘以當前損失函數對自變量w的一個梯度(以簡單模型爲例)。所以深度學習模型中的梯度是非常重要的。一旦發生梯度消失(彌散)或者梯度爆炸的時候,就不能找到最優值了。所以,嘿嘿,你懂的......