【Deep Learning】筆記:Understanding the difficulty of training deep feedforward neural networks

這幾天讀了這篇論文,在這裏將大致內容寫在這裏。

Abstract

介紹這篇論文的主要內容就是嘗試更好的理解爲什麼使用“標準隨機初始化”來計算使用標準梯度下降的網絡效果通常來講都不是很好。

首先研究了不同的非線性激活函數的影響,發現 sigmoid 函數它的均值會導致在隱層中很容易到達函數的飽和區域,因此sigmoid 激活函數在隨機初始化的深度網絡中並不合適。但同時驚喜的發現,處於飽和的神經元能夠自己“逃脫出”飽和狀態。

最後研究了激活值和梯度值如何在訓練過程中的各層次裏發生變化,其中,當與每個層相關聯的雅可比矩陣的奇異值遠遠大於1時,訓練可能會變得更加困難。基於這些考慮,提出了一種新的初始化方法,可以帶來更快的收斂速度。

PS. 這種初始化權值的方法就是這兩年在深度網絡中經常使用的 Xavier 初始化

1. Deep Neural Networks.

這裏主要是對 深度神經網絡 的大致介紹,講述了這兩年的主要發展狀況。

這裏粗略翻譯一下第二段和第三段:

​ 最近的深層神經網絡結構的實驗結果大多數都可以用 能夠轉化爲深度有監督神經網絡的模型 來獲得,但是使用了與經典的前饋神經網絡不同的初始化或是訓練方法。爲什麼這些新的算法能夠獲得比經典的隨機初始化和梯度優化算法 好得多的結果呢?一部分的原因可能是由於採取了 unsupervised pre-training( 無監督預訓練 ) 的策略,表明了它作爲一個 “調節器”,在優化過程中 使初始化後的參數處於一個更好的 “基準位置”,使優化過程能夠避開與防滑相關的明顯的局部最小值。但是早期的工作已經證明了即使是單純的有監督學習但是採用貪心層次學習的過程也能夠取得更好的效果。因此這裏我們關注的是分析是良好的之前的(但深層)的多層神經網絡可能出現的問題而非關注於無監督的預訓練或是半監督標準對深層架構的影響。

​ 我們的實驗分析是通過監測在訓練迭代過程中不同層之間的激活值 (隱層的飽和狀態)和梯度來完成的。同樣研究了不同的激活函數和初始化方法對最終結果的影響。

2. Experimental Setting and Datasets

貼一下原文:

Understanding the difficulty of training deep feedforward neural networks.

2.1 Online Learning on an Infinite Dataset: Shapeser-3 × 2

主要介紹了一個無限數據數據集 Shapeser-3× 2,它這個數據3集上進行在線學習,它的數據的大小是無窮多的,因爲爲不斷地隨機生成。在線學習(或不斷學習)具有優點的:它可以把我們的任務focus在最優化問題上而不是小樣本中迴歸問題,明白吧,應該。 還應該指出:當面對很大很大的訓練集時,從非監督學習預訓練中來進行初始化網絡仍然使網絡的性能有巨大的提升,意思就是當面對在的訓練集時,非監督學習預訓練的作用依然沒有消失。

使用的數據集中隨機生成三個圖形(平行四邊形,橢圓,三角)中的兩個,而且允許相互之間存在遮擋關係(不大於 50% 的遮擋),最後將圖形全都 resize 成爲 32× 32 大小。

給出示例圖像:
這裏寫圖片描述

2.2 Finite Datasets

介紹了使用的有限數據集

MNIST digits ,10個數字的識別,50000個用於訓練,10000用於 validation,10000個用於測試。

CIFAR-10 :10種物品的識別,40000個用於訓練,10000用於 validation,10000個用於測試。

Small-ImageNet:10個物品的識別,90000個用於訓練,10000用於 validation,10000個用於測試。

給出示例圖像:

這裏寫圖片描述

2.3 Experimental Setting

這一小節主要介紹了實驗中使用的神經網絡的參數

使用的是一個具有 1-5 層深度的,每層具有1000個神經元節點,輸出層使用一個 softmax logistic regression,代價函數是 logP(y|x)

網絡優化的方法是使用隨機梯度的反向傳播算法,並採用 mini-batches 策略,mini-batches = 10,權值更新過程中的學習率基於驗證集誤差來確定。

在隱層選用三種不同的激活函數分別進行試驗,分別是 sigmoid 函數,雙曲正切函數 (tanh) 與 softsign 函數 ,後面兩個函數是相似的,唯一的區別在於,雙曲正切函數以指數速率接近漸近線,而 softsign 函數以二次速率接近漸近線。

三個函數的表達式分別爲:

sigmoid(x)=11+ex

tanh(x)=sinhcosh=exexex+ex

softsign(x)=x1+|x|

網絡權值的初始化使用下面的均勻分佈,其中 n 是前一層的神經元

WijU[1n,1n]

3. Effect of Activation Functions and Saturation During Training

在選擇激活函數時,我們總要避免兩點:

  1. 避免激活函數處於過飽和狀態,在這種狀態,梯度就不能很好的得到傳遞。
  2. 激活函數過度線性化,因爲只有非線性才能擬合更多的函數。

3.1 Experiments with the Sigmoid

Sigmoid 函數它會降低學習速率的(由於它的mean不是0)。對於這個函數的問題,LeCun 已經研究過了。

這裏選擇 Sigmoid 函數是爲了通過觀察它的激活值來反映它的飽和程度,使用的數據集是前面提到的 Shapeset-3× 2 ,但是在其他數據集上也會觀察到相似的效果。

具體如下圖所示:
這裏寫圖片描述

圖說明:

豎直方向表示激活值,其中實線表示的是均值,上下的浮動表示上下標準差,水平方向表示迭代的次數。

我們可以看到,對於第 1~4 層,其均值都在 0.5 左右,且按照輸出到輸入方向激活值依次降低,但這個位置處於 Sigmoid 函數的線性區附近,而第 5 層在迭代的過程中很快就到達了飽和區,而且這種飽和狀態會持續很長的時間,很可能在整個訓練過程中這一層都處於飽和狀態。但是,令人驚奇的是,隨着迭代次數的增加,第 5 層隱層有 “逃離” 飽和狀態的趨勢,而前面的 4 層有逐漸趨於飽和的趨勢,因此會逐漸趨於穩定。

對於上面這種情況,文中假設是由於 採用隨機初始化和對於飽和的 Sigmoid 函數輸出接近爲 0 共同造成的。同時也應該注意到,對於經過 pre-training 的深度網絡並不會出現這種飽和情況。所以,前面幾層的輸出對於最後輸出的各類的預測是基本沒有作用的,或者說直到第三層爲止,前幾層的輸出都是隨機的,而非像經過了 pre-training 得到的初始化參數,預訓練得到的初始化參數是有意義的。第四層的輸出加權後的值直接影響到的最後的代價函數的,因爲它後面接的是 softmax 的輸出層的,因此,輸出層的 softmax(b+Wh) 的最終正確性可能更依賴於偏置 b 而非由前幾層共同作用得到的 h,因此爲了在一開始讓 h 的值不至於影響到 b+Wh 值,網絡自己就在代價函數的作用下學習了,學習的結果就是:反向梯度算法導致 Wh 的結果趨向於0,而這可以通過讓 h 趨向於 0 來完成,偏置 b 迅速學習,並支撐起了整個預測結果。但是同時,將 h 推向 0 會導致處於 Sigmoid 函數的飽和區,使得反向梯度學習緩慢。最終 (但會經過很長時間 ),前面的隱層會向提取更有意義的特徵方向移動,而最後層也會逐漸移出飽和區,但是即便是在這樣之後,網絡最終也無法得到很好的訓練效果 (以及泛化能力)。

3.2 Experiment with the Hyperbolic tangent

這部分對比了隨着迭代次數的增加採用雙曲正切函數 (tanh) 和 softsign 函數作爲激活函數的激活值情況。

先簡單翻譯一下:

上面提到了 Sigmoid 函數在 0 附近會到達飽和區域,但是 tanh 函數在 0 附近則不會達到飽和,因爲 tanh 函數在 0 附近呈現對稱線性特徵,但是,使用標準權重分佈來初始化權重,我們會發現同樣會很快達到飽和狀態,正如下圖中所示,爲什麼會出現這種情況還需要進一步討論。

這裏寫圖片描述

這裏寫圖片描述

圖片說明:

上面兩張圖分別是 tanh 作爲激活函數的激活值情況和 softsign 函數作爲激活函數的激活值情況。

其中實線表示上下標準差,而沒有實線的點則表示 98% 的數據分佈。

首先看上面的圖像,可以看出從第一層到第五層,在標準均勻初始化權值的前提下,逐漸每層都慢慢到了飽和區, 對於這個現象,文中也沒有給出合理的解釋。

再觀察下面的圖像,可以看出 softsign 函數的激活值比 tanh 函數的激活值區域飽和區的速度慢,因此效果也就更好。

3.3 Experiments with the Softsign

Softsign 函數在形狀上與 tanh 函數具有一定的相似性,但是在前面也有提到,在趨近漸近線的速度上,tanh 是指數級趨近,而 tanh 則是二次趨近。圖 3 給出的是 tanh 激活函數與 softsign 激活函數在訓練完成以後的激活值的分佈圖。

我們可以看到對於 tanh 激活函數,它的激活值大多分佈在 -1 和 +1 處,而這兩個位置都是出於飽和區的位置,第 5 層還有許多出於 0 附近的激活值,但是對於 tanh 激活函數,0 附近具有良好的線性性質,而不具有良好的非線性性質,因此對於擬合函數來說整體並不理想。

對於 softsign 函數,我們可以看到處於飽和取得值並不佔數據的大多數,除了第 5 層有相當數量的激活值處於0附近,其餘隱層的激活值在 (-0.8, -0.6) 和 (0.6, 0.8) 這兩個非線性區也有大量的分佈,因此具有良好的非線性擬合能力,對於擬合函數來說比較理想。

這裏寫圖片描述

這裏寫圖片描述

圖像說明:

上面兩圖示激活值在學習結束時歸一化的直方圖,分佈在同一層上的所有神經元和300個測試示例。

兩幅圖中上面的表示的是激活函數爲 tanh ,下面表示的是激活函數爲 softsign,處在 0 附近的激活值是線性區,而 (-0.8, -0.6) 和 (0.6, 0.8) 區域處於非線性區。

4. Studying Gradients and their Propagation

4.1 Effect of the Cost Function

在1986年 Rumelhart 已經發現:logistic function 或者叫 conditional log-likelihood function: -log P(y|x) 的效果比 quadratic cost function(平方代價函數)的效果好很多的,原因在於 quadratic cost function(平方代價函數)在訓練過程中會出現更多的 plateaus(平坦區域)。文章給出了一個兩個參數下的圖,圖中採用的是具有單隱層的神經網絡,激活函數使用的是 tanh 函數,對於輸入信號進行隨機初始化,可以看到二次代價函數具有更多的 plateaus (平坦區域)。

這裏寫圖片描述

說明:

圖中上面的曲面表示的是交叉熵代價函數,下面的曲面表示的是二次代價函數,W~1~W~2~ 分別表示層與層之間的連接權值。

4.2 Gradient at initialization

說明,這部分是這篇論文的重點內容,提出了一種新的權重初始化方法。

4.2.1 Theoretical Considerations and a New Normalized Initialization

這部分基於 Bradley 在 2009 年的理論分析 the variance of the back-progated gradients,並提出一種新的權值初始化的方法。

進行翻譯:

我們研究反向傳播的梯度,或是代價函數對於每一層輸入偏置的梯度。Bradley 在 2009 年發現在初始化權重後反向梯度從輸出層到輸入層逐漸減小。它使用線性的激活函數,發現了反向傳播的梯度的方差隨網絡的向後而逐漸減小,在這部分的開始,我們在線性領域進行研究。

對於一個密集連接的使用線性激活函數的 ANN,且激活函數在 0 處的導數值爲 1,即有 f’(0) = 1,這裏我們設 z^i^ 是第 i 層的激活向量,s^i^ 表示輸入第 i 層激活函數的向量,所以有 si=ziWi+bizi+1=f(si) ,從這些定義中可以得到下面這兩個式子

Costsik=f(sik)Wi+1k, Costsi+1

Costsil,k=zilCostsik

對上面這兩個公式進行簡單的推導說明

上面第一個公式可以由下面這個公式推導得出:

si+1=Wi+1k, f(ski)+bi+1

上面第二個公式可以由下面這個公式推導得出:

Wil,kzil+bil,k=sik

方差可以用輸入,輸出和隨機權重初始化推導得出,考慮考慮我們在初始化時處於線性狀態的假設,權重是獨立初始化的,輸入特徵差異是相同的 ( = Var[x] ),然後我們就可以得出,對於第 i 層共有 n~i~ 個神經元和網絡的輸入向量爲 x ,有下面的公式:

f(sik)1

Var[zi]=Var[x]i1i=0niVar[Wi]

我們爲第i層的所有權重的共享標量方差寫入Var[W^i’^],因此,對於一個有 d 層的神經網絡:

Var[Costsi]=Var[Costsd]i1i=0ni+1Var[Wi]

Var[Costωi]=i1i=0niVar[Wi]d1i=iVar[Wi]×Var[x]Var[Costsd]

對於一個前向網絡來說,爲了保持信息的流動,我們希望有:

(i,i), Var[zi]=Var[zi]

而對於一個誤差反向傳播的網絡來說,我們希望有

(i,i), Var[Costsi]=Var[Costsi]

從上面這兩個條件我們就可以推斷出:

i, niVar[Wi]=1

i, ni+1Var[Wi]=1

由上面這兩個公式可以推出下面的式子:

i,Var[Wi]=2ni+ni+1

需要說明的是,當着兩個條件都同時滿足時,需要滿足所有層的寬度都是相同的,如果我們使用同樣的初始化方法對權重進行初始化,就能夠得到下面這兩個很有意思的結論:

i,Var[Costsi]=[nVar[W]]diVar[x]

i,Var[Costwi]=[nVar[W]]dVar[x]Var[Costsd]

可以看出,對於每一層上的權重的方差都是相等的,但是隨着我們考慮更深入的網絡,反向傳播梯度的方差可能會消失或爆炸。 注意,在研究遞歸神經網絡時,在時間上可以看出是非常深入的網絡。

我們使用的標準初始化(eq.1)產生了以下屬性的差異:

nVar[W]=13

這裏 n 表示的是每一層網絡的神經元個數 (假設所有層具有所有相同的神經元數),而這就會導致 BP 算法的梯度的方差取決於層數。

因此,由於通過層次間的乘法效應來初始化深層網絡,歸一化因子可能很重要,我們建議使用以下初始化過程大致滿足維護激活方差和反向傳播梯度方差的目標,考慮到網絡向上或向下移動。

這裏我們叫它 “normalized initialization”:

WU[6nj+nj+1,6nj+nj+1]

上面這部分是這篇論文的重點,但是覺得這部分的推導部分比較繁瑣,查閱資料發現了這兩篇博客

http://blog.csdn.net/kangroger/article/details/61414426

http://blog.csdn.net/u011534057/article/details/51673458

這兩部分的推導比較容易理解。這裏不再贅述。

Ps. 重點是記住這種初始化權值的方法,這在以後的深層網絡中也會經常用到。

4.2.2 Gradient Propagation Study

簡單翻譯:

爲了經驗驗證上述理論思想,我們使用兩種不同的初始化方法在初始化時繪製了激活值,權重梯度和反向傳播梯度的歸一化直方圖。結果在圖6,圖7和圖8中,實驗是在 Shapeset-3x2 數據集上進行的,但是定性的說,在其餘數據集上也能夠得到相似的結論。

我們觀測第 i 層網絡的雅可比矩陣的奇異值:

J=zi+1zi

當連續層具有相同的維度時,平均奇異值對應於從 z^i^映射到 z^i+1^ 的平均比例,以及從 z^i^z^i+1^ 的平均激活方差的比率。實驗表明,使用我們提出的 normalization initialzation 方法比率大致在 0.8 左右,但是使用標準均勻分佈初始化方法的比率降到了 0.5 左右。

這裏寫圖片描述

這裏寫圖片描述

說明:

上圖給出的是對於 tanh 激活函數使用不用的初始化方法進行初始化後的激活值的分佈情況,上面的圖使用的是標準方法初始化,下面的圖使用的是我們提出的

normalization initialzation 方法

可以看出,使用標準的初始化方法激活值從外層向內層逐漸衰減,而使用 normalization initialzation 方法進行初始化各層之間的激活值幾乎保持不變。

4.3 Back-propagated Gradients During Learning

這種網絡中的學習動態很複雜,我們希望開發更好的分析和跟蹤工具。 特別地,我們不能在理論分析中使用簡單方差計算,因爲權重值不再與激活值無關,線性假設也不再成立。

如Bradley(2009)第一次指出,我們觀察到(圖7),在訓練開始時,在標準初始化(等式1)之後,反向傳播梯度的方差隨着向下傳播而變小。 然而,我們發現,在學習過程中,這種趨勢非常迅速。 使用我們的歸一化初始化,我們看不到這種降低的反向傳播梯度(圖7的底部)。

這裏寫圖片描述

這裏寫圖片描述

說明,實驗中使用的激活函數是 tanh,上面的圖像是使用標準隨機初始化法法初始化的,而下面的圖像使用的是 normalization initialzation 方法

繼續正文:

最初令人驚訝的是,即使反向傳播的梯度變小(標準初始化),權重梯度的方差大體上是恆定的,如下圖所示。

這裏寫圖片描述

這裏寫圖片描述

圖像說明

上圖是使用 tanh 激活函數在初始化後的權重梯度歸一化,上面的圖表示的是使用標準初始化,下面的圖使用的是 normalized initialization, 可以看出即使是使用標準初始化方法的反向梯度也沒有發生明顯的衰減。

正文:

然而,這可以通過我們上面的理論分析來解釋。 有趣的是,如下圖所示,這些關於訓練期間標準和歸一化初始化變化的權重梯度的檢測(此處使用的是 tanh 網絡)。 實際上,隨着訓練的進展,特別是在標準初始化方面,梯度起始大體上相同,它們彼此分開(下層具有更大的梯度)。 請注意,這可能是歸一化初始化的優點之一,因爲在不同層次上具有非常不同的幅度的梯度可能會導致病態和較慢的訓練。

這裏寫圖片描述

這裏寫圖片描述

圖像說明

訓練期間具有標準初始化(上面圖)和 normalized initialization(下面圖)的雙曲正切的權重梯度的標準偏差間隔。 我們看到 normalized initialization 允許在訓練期間保持層間權重梯度的相同方差。

正文:

最後,我們觀察到softsign網絡與正態化初始化的tanh網絡有類似特性,可以通過比較兩種情況下的激活變化來看出。

這裏寫圖片描述

圖像說明:

上面兩張圖分別是 tanh 作爲激活函數的激活值情況,其中實線表示上下標準差,而沒有實線的點則表示 98% 的數據分佈。可以看出很快達到飽和。

5. Error Curves and Conlusions

我們最終關心的是使用不同的訓練策略的實驗情況,使用錯誤曲線顯示測試錯誤的演變隨着訓練進展和漸近是最好的表示方法,下圖的曲線是在 Shapeset_3x2 數據集上進行的,表1 給出的是對於所有數據集的最終測試誤差。作爲基準,我們優化了 RBM SVM 模型在 100,000 個Shapeset 數據上達到了 59.74% 的測試誤差,在同樣的測試集上使用一個五層的激活函數使用 tanh ,並使用 normalized initialization 進行初始化,最終得到了 50.74% 的錯誤率。

這裏寫圖片描述

圖像說明:

Shapeset 數據集上的使用各種激活函數和初始化方法的測試錯誤率,後面有字母 N 的激活函數表示的是使用 normalized initialization 初始化方法

上面這個圖像還說明了一件有意思的事情,sigmoid 激活函數的網絡深度不能超過5層

Table 1:

TYPE Shapeset MNIST CIFAR-10 ImageNet
Softsign 16.27 1.64 55.78 69.14
Softsign N 16.06 1.72 53.8 68.13
Tanh 27.15 1.76 55.9 70.58
Tanh N 15.60 1.64 52.92 68.57
Sigmoid 82.61 2.21 57.28 70.66

表說明:

使用不同激活函數和初始化策略的 5 層的神經網絡的測試錯誤率。激活函數帶有 N 表示的是使用 normalized initialization 正則化策略。 粗體的結果與無假設檢驗下的非粗體結果有統計學差異,p = 0.005。

繼續正文

這些結果說明了激活和初始化的選擇的效果。作爲參考,我們在圖11中引用了在使用去噪自動編碼器進行無監督的預訓練之後從初始化獲得的監督調整的誤差曲線。對於每個網絡,單獨選擇學習率來最小化驗證集上的錯誤。 我們可以在Shapeset 數據集上進行測試,由於任務困難,我們在學習過程中觀察到重要的飽和度,這可能解釋了歸一化初始化或 softsign 激活函數的效應更明顯。

從這些錯誤曲線中我們可以推斷出以下信息:

  • 使用傳統的 sigmoid 或 tanh 激活函數和標準初始化方法效果並不好,它們收斂緩慢而且往往會陷入局部最優。
  • 使用 softsign 激活函數看上去比 tanh 網絡對初始化方法具有更好的魯棒性
  • 對於 tanh 網絡,使用 normalized initialization 初始化方法對提升性能很有用,可能是因爲層與層之間的激活值和梯度值得以保持。

其他方法可以減輕學習期間層之間的差異,例如利用二階信息爲每個參數分別設置學習率。 例如,我們可以利用 Hesian 矩陣的對角線(LeCun等,1998b)或梯度方差估計。 這兩種方法都已經應用於具有雙曲正切和標準初始化的以及數據集 Shapeset 上。 我們觀察到性能增益,但沒有達到歸一化初始化獲得的結果。 此外,我們通過將歸一化初始化與二階方法組合來觀察到進一步的增益:估計的Hessian可能會關注單元之間的差異,而不必糾正層之間的重要初始差異。

在所有報告的實驗中,我們每層使用相同數量的單位。 然而,我們證實當層大小增加(或減少)層數時,我們獲得相同的增益。

從上面這些研究中可以得出以下結論

  • 通過監測迭代過程中層與層之間的梯度值和激活值對於理解深層網絡中的困難是一個有力的工具。
  • Sigmoid 激活函數在使用小隨機值初始化時應該儘量避免使用(在0附近處於飽和狀態)
  • 保持層間轉換,使得激活和漸變都能夠很好地發揮作用似乎是有幫助的,並且允許消除純監督深層網絡與預先使用無監督學習訓練的深層網絡之間的差異的很大一部分。
  • 我們的許多觀察結果仍然無法解釋,提示進一步研究以更好地瞭解深層網絡的梯度和訓練動力。
發佈了88 篇原創文章 · 獲贊 129 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章