論文翻譯——使用深度卷積網絡處理ImageNet分類

ImageNet Classification with Deep Convolutional Neural Networks

Authors : Alex Krizhevsky, Ilya Sutskever, Geoffrey.E.Hinton
Publication:Communications of the ACM May 2017 https://doi.org/10.1145/3065386

摘要

作者在LSVRC(Large scale visual recognition challenge)2010比賽中通過包含在1000個類別的120萬張高像素圖片數據集中訓練,在測試集得到了37.5%的Top-1錯誤率和17.0%的Top-5錯誤率。

本文的創新主要體現在爲避免過擬合,採用了一種當前正在發展的正則化方法——“dropout”。

To reduce overfitting in the fully-connected layers we employed a recently-developed regularization method called “dropout” that proved to be very effective.

在2012年的LSVRC競賽中它們使用了該模型的變體,得到了15.3%的Top-5錯誤率和26.2%的Top-1錯誤率,大幅領先第二名的模型。

We also entered a variant of this model in the ILSVRC-2012 competition and achieved a winning top-5 test error rate of 15.3%, compared to 26.2% achieved by the second-best entry.

1. 介紹

介紹了圖像識別領域在此之前的兩個問題:

  1. 標註的圖像數據集相對較小,大部分只有幾萬張圖片。
  2. 對於大型模型和高清圖片算力不足,幾乎無法訓練。

當前面臨的問題都出現了轉機:

  1. 出現了像ImageNet和LabelMe,此類包含上百萬張標註圖片的數據集。
  2. CNN的出現大幅減小了模型複雜度和模型的訓練參數,而算法表現毫不遜色傳統MLP模型。
  3. 當前的GPU和高度優化的2D卷積計算搭配,大型CNN模型的訓練已經是可行的。

本文貢獻主要有:

  • 訓練了當前最大的CNN用於LSVRC2010和2012競賽,結果大幅領先之前最優的模型。
  • 編寫了高度優化的2D卷積實現在GPU上的運算並公之於衆。
  • 引入一系列新穎的技巧改善模型表現和訓練速度,在第3部分詳細介紹。
  • 使用多種有效手段防止過擬合,在第4部分詳細介紹。
  • 最終模型包含5個卷積層,3個全連接層。模型深度十分重要,哪怕減少一個卷積層都會導致模型結果不佳。

最後,阻止作者進一步加深網絡深度的主要原因是GPU的顯存大小和訓練時間。作者使用兩塊GTX 580 3GB顯卡花費5-6天才完成模型訓練。這一問題隨着GPU的發展有望解決。

2. 數據集

ImageNet是一個包含1500萬張圖片(分屬22000個類別)的大型圖像數據集。這個數據集通過網絡收集並通過Amazon Mechanical Turk這一衆包市場進行人工標註。從2010年起,抽取1000個類別的1000張圖片,共計120萬張圖片子數據集用於ILSVRC競賽。

主辦方僅在ILSVRC-2010提供了測試集標籤,本文的大部分實驗都基於ILSVRC-2010數據集。ILSVRC競賽主要報告兩個錯誤率,Top1和Top5。Top5表示真實標籤不在模型預測的前5個標籤中的概率。

ImageNet的圖片分辨率是變化的,該模型使用固定的輸入。因此作者使用下采樣的方式將所有圖片轉化爲256×256256 \times 256的標準圖片。除以對每個像素減去訓練集中的平均值,作者並未對圖片做其他預處理。它們在原始的居中RGB值上訓練網絡。

3.模型結構

模型整體結構
本文的模型由圖2所示(上圖),有8個可訓練層:5個卷積層和3個全連接層。下面介紹一些新穎的網絡結構特徵。3.1-3.4的排列是作者對這些特徵重要性的估計,最重要的最先寫。

3.1 ReLu 非線性函數

就梯度下降的訓練時間而言,未飽和的ReLu非線性函數比飽和的tanh和sigmoid非線性函數要快得多。這在圖一中得到證明。就像圖表顯示的如果使用tanh這種函數如此大的神經網絡是無法訓練的。

作者並非第一個想到替換傳統神經元的人,Jarret等人使用f(x)=tanh(x)f(x) = |tanh(x)|在Caltech-101數據集的平均池化層進行歸一化得到了很好的效果。但是這種做法主要是爲了避免過擬合,而ReLu是用於提升訓練速度,更快的學習速度對大型數據集在大型模型的性能提升至關重要。
在這裏插入圖片描述

3.2 使用多個GPU訓練

單個GTX 580 GPU無法完成訓練。作者將網絡分佈在兩個GPU上。當前的GPU能夠直接讀寫彼此內存而無需通過主機內存。作者的方案是將每層一半的卷積核放在單個GPU上。

此外還有一個技巧:GPU僅在某些層彼此通信。例如第3層卷積核從全部第2層的卷積核映射結果中獲取輸入。但第4層的卷積核僅從第3層中駐留在同一GPU上的那些卷積映射中獲取輸入。這樣能夠更精確地調整通信量,直到它的計算量可接受爲止。

相比於將卷積核數量減少一半,並行GPU運算將TOP1和TOP5錯誤率降低了1.7%和1.2%。

3.3 局部響應歸一化

ReLU具有無需輸入歸一化即可防止飽和優秀特性。 但作者發現對輸入進行局部歸一化依然能有效提升模型的泛化能力。ax,yia^i_{x,y}表示使用卷積核i在點(x,y)處的神經元激活值,這個值之後會代入ReLU非線性函數中,響應歸一化激活值bx,yib^i_{x,y}由下式給出。

bx,yi=ax,yi/(k+αj=max(0,in/2)min(N1,i+n/2)(ax,yi)2)β b^i_{x,y} = a^i_{x,y} / \left( k + \alpha \sum_{j=max(0, i-n/2)}^{min(N-1, i+n/2)} (a^i_{x,y})^2 \right)^\beta

相同空間位置上遍歷n個“相鄰”卷積核映射結構,N是該層中卷積核總數。 卷積核映射的順序是任意的,在訓練開始之前確定。 常數k,n,α,βk,n,\alpha,\beta是超參數,其值是使用驗證集確定的; 作者使用k=2n=5α=104,β=0.75k = 2,n = 5,\alpha= 10^{−4}, β= 0.75。 在某些層中應用ReLU非線性之前我們應用了此歸一化(請參見第3.5節)。

3.4 重疊池化

通常來說,池化的步長ss和池化單元zz的寬度一致。如果z×zz \times z的池化單元其步長s<zs < z就會出現重疊池化的結果。作者採用s=2,z=3s=2, z=3的重疊池化,相比s=2,z=2s=2,z=2的傳統池化。TOP1和TOP5分別下降了0.4%和0.3%。

3.5 整體結構

模型結構:初始5個卷積層跟3個全連接層,最後一個全連接層作爲輸出層,其1000個的softmax產生1000個類別標籤。模型最大化正確樣本的logP分佈。

第二、四、五個卷積層只使用同一個GPU的卷積結果作爲輸入,第三個卷積層使用全部卷積結果作爲輸入。局部歸一化層位於第一和第二個卷積層之後,3.4所描述的最大池化層位於局部歸一化層和第五個卷積層之後。ReLU非線性函數應用於所有卷積和全連接層的輸出。

第一卷積層使用96個11×11×3卷積核過濾224×224×3的輸入圖片,步長爲4。第二個卷積層將第一個卷積層的(響應歸一化和池化後)輸出作爲輸入,並使用256個5×5×48的卷積覈對其進行過濾。第三,第四和第五卷積層彼此連接而沒有任何中間池化或歸一化層。第三卷積層具有384個3×3×256的卷積核,這些卷積核與第二卷積層的(標準化,池化)輸出連接。第四卷積層具有384個3×3×192大小的卷積核,第五卷積層具有256個3×3×192的卷積核。每個全連接層有4096個神經元。

4. 減少過擬合

介紹兩種減少過擬合的方法

4.1 數據增強

使用標籤保護的轉化擴大數據集以避免過擬合,且這種轉化是通過CPU完成無須存在磁盤上,也不影響GPU中的模型訓練。

第一種數據增強的方式圖像平移加水平映射。從256256的圖片在提取224224的色塊(及其映射)這將整個訓練集擴大2048倍,儘管生成的子圖高度依賴,沒有這種方案模型將嚴重過擬合。測試時,網絡通過提取5個224*224色塊(四角和中心)及其水平映射(共10個色塊)進行預測,結果取softmax層輸出的平均值。

數據增強的第二種形式包括更改訓練圖像中RGB通道的強度。作者在整個ImageNet訓練集中對RGB像素值集執行PCA。訓練樣本的每個像素加一個附加值,該附加值爲主成分特徵向量乘以特徵值和一個均值0方差0.1高斯分佈產生的隨機數:

[p1.p2,p3][α1λ1,α2λ2,α3λ3]T [p_1.p_2,p_3][\alpha_1\lambda_1,\alpha_2\lambda_2,\alpha_3\lambda_3]^T
該方案近似地捕獲了自然圖像的重要屬性,對象標籤對於圖片亮度和顏色變化是不變的。 此方案將top-1錯誤率降低了1%以上。

4.2 dropout

每次按一定概率使某層中的部分神經元不參與訓練,這是一種代價極小的bagging方式。可以生成指數多個子模型。沒有dropout,網絡會出現極大的過擬合。Dropout也時收斂所需迭代次數增加了一倍。

5. 訓練的細節

使用小批量(128)隨機梯度下降。動量0.9,0.0005的權重衰減。我們發現少量的權重衰減至關重要,不只是正則化它也減小了模型的訓練誤差,參數更新原則如下:

vi+1:=0.9vi+0.0005ϵωi+ϵ<Lωωi>Diωi+1:=ωi+vi+1 \begin{aligned} v_{i+1} &:= 0.9 \cdot v_i + 0.0005 \cdot \epsilon \cdot \omega_i + \epsilon \cdot \left< \frac{\partial L}{\partial \omega} |_{\omega_i} \right>_{D_i} \\ \omega_{i+1} &:= \omega_i + v_{i+1} \end{aligned}

權重通過均值0方差0.01的高斯分佈初始化,二、四、五卷積層和所有全連接層的偏置設爲1,其餘層設爲0。

每層學習率相同,驗證錯誤率在當前學習率下不再降低,將學習率除以10。 學習率初始化爲0.01,終止之前降低三次。 我們通過120萬張圖像的訓練集對網絡進行了大約90個週期的訓練,在兩個NVIDIA GTX 580 3GB GPU上花了五到六天的時間。

6. 實驗結果

作者所使用的模型在ILSVRC-2010的數據集取得的結果如下圖第三行所示:

  • 第一個對比模型是2010表現最好的模型。
  • 第二個對比模型是在作者論文發表前已發佈的模型中表現最好的。
    在這裏插入圖片描述
    作者攜本文所述模型參加了ILSVRC-2012競賽,取得的結果如下圖所示。在這裏插入圖片描述
    具體圖片實例展示:
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章