1. 程式人生 > >CNN感性認識(三)——為什麼深層次神經網路難於訓練?

CNN感性認識(三)——為什麼深層次神經網路難於訓練?

這裡寫圖片描述

深度網路中不同層次的神經元的學習速度是不同的。用梯度下降法學習,存在固有過的不穩定性,這種不穩定性導致網路在前面或後面的層次在訓練中停滯。

比如,如果我們設計一個每層只有一個神經元的網路:

這裡寫圖片描述

在反向傳播時,前面層次的梯度由後面層次的權重和導數累乘得到。

sigmoid的導數影象如下:
這裡寫圖片描述
函式的頂點在0.25處。
初始化時,如果按照常規的正態分佈從0到1中隨機選取權重的方法,權重的絕對值大都小於1.
這樣,經過累乘,梯度反向傳播到前面的層次時就已經很小了,這就出現了梯度消失現象
這裡寫圖片描述

如果我們針對這個現象採取權宜之計:
將權重初始化得大一點,初始化b使得啟用函式的導數不要太小。
但是大權重的累乘會造成梯度爆炸現象

,而取得一個恰到好處的值是非常困難的。

只要是sigmoid啟用函式構造的神經網路都會造成梯度更新時的不穩定,遇到梯度爆炸或者梯度消失的問題。

用ReLU代替sigmoid可以有效緩解梯度爆炸/梯度消失問題。