天天看點

論文解析-《Understanding the difficulty of training deep feedforward neural networks》

這篇論文詳細解析了深度網絡中參數xavier初始化方法,這裡做一下讀書筆記,同時記錄一下自己的了解。

1 引言

經典前饋神經網絡其實很早就有了(Remelhart et al.,1986),近年來對深度監督神經網絡的一些成果隻不過在初始化和訓練方法跟以前有點差別,可是為什麼能夠取得這麼好的結果?部分原因可能是使用非監督訓練方法來初始化網絡,使得網絡整體處于一個比較好的優化狀态。但是更早的一些研究(Bengio et al.,2007)顯示,使用greedy layer-wise procedure的方法能夠得到更好的結果,這篇論文沒有把精力放在深度網絡的非監督的預訓練方法,而是着眼于多層神經網絡究竟哪個環節出了問題(才會導緻直接訓練效果不佳)

2實驗一

作者使用了一個四層的網絡,使用sigmoid激活函數,權重層bias初始化為0,weight取下面的均勻分布,n是前一層輸入次元

論文解析-《Understanding the difficulty of training deep feedforward neural networks》

在Shapeset-3*2的資料上訓練,訓練過程中,使用300副測試圖測試,得到各層激活函數值,分别統計出均值和方差,結果得到了下圖,圖中曲線代表均值,總線條代表方差,可以看到訓練一剛開始,最後一層就飽和了(sigmoid範圍0-1),訓練過了很久,終于走出飽和區了。可是為什麼會這樣?

論文解析-《Understanding the difficulty of training deep feedforward neural networks》

作者提出了解釋是這樣的,剛開始時,整個網絡參數都是随機初始化的,這時低層計算得到的資料對整個分類沒帶任何分類資訊,邏輯層softmax(b+Wh)的學習會更多的去調節b,而把Wh壓制到0(畢竟Wh對分類無幫助,屬于噪音),繼而将h推向0,然而sigmoid輸出0,意味着飽和,梯度就傳遞不過去了,低層的學習過程就被阻礙了。這也是實踐中sigmoid慢慢被抛棄的原因了,如果我們将激活函數換成在0附近梯度不為零的Hyperbolic tangent呢?

3實驗二

作者将實驗一中激活函數換對稱的tangent和soft-sign,其他都一樣,得到了下圖,還是發現從第一層飽和,第二層飽和,最終都飽和了。這個違背了深度學習的兩個經驗原則,我們既不想網絡過飽和也不希望過線性。得到這個結果深層次的原因是什麼呢?

論文解析-《Understanding the difficulty of training deep feedforward neural networks》

同時也分析了訓練結束在300副測試圖上各層激活值的分布直方圖

論文解析-《Understanding the difficulty of training deep feedforward neural networks》

4理論分析

這裡寫下了解,假如我們輸入x,方差var(x),那麼經過深度網路後輸出的z方差是多少呢?已經假定各變量均值為0,激活函數是以都處于線性區,ni'為各層的次元,可以看到如果var[wi']都小于1,那麼最後的輸出将越來越小,這樣不利于數值穩定和梯度計算;

論文解析-《Understanding the difficulty of training deep feedforward neural networks》

後向傳播呢?其中d為網絡深度,可以看到,梯度的方差後向傳播後是n×Var(W)相乘的形式,乘數正比網絡深度d,如果網絡很深,傳到第一層的梯度方差就很小了,這就是梯度消失了,如果var(W)大于1,那麼傳到第一層的梯度方差就很大了,這就是梯度爆炸,那麼怎麼正确的選擇var(W)呢?

論文解析-《Understanding the difficulty of training deep feedforward neural networks》

隻要我們使得,既我們資料方差前向傳遞和梯度方差後向傳遞保持不變,那不是完美?

論文解析-《Understanding the difficulty of training deep feedforward neural networks》
論文解析-《Understanding the difficulty of training deep feedforward neural networks》

等價于:

論文解析-《Understanding the difficulty of training deep feedforward neural networks》

取均值:

論文解析-《Understanding the difficulty of training deep feedforward neural networks》

到此結束,引出了目前最常用的xavier初始化方法,現在明白了,哈哈

論文解析-《Understanding the difficulty of training deep feedforward neural networks》

那麼問題回來了,之前我們使用的均勻分布初始化方法有影響呢,均勻分布有下面公式,這會導緻梯度方差後向傳遞慢慢變小。

論文解析-《Understanding the difficulty of training deep feedforward neural networks》

繼續閱讀