閱讀688 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Top100論文導讀:深入理解卷積神經網絡CNN(Part Ⅱ)

https://yq.aliyun.com/cloud

Adrian Colyermorning paperAccel Partners

https://www.linkedin.com/in/adriancolyer/

Twitterhttps://twitter.com/adriancolyer


這篇文章介紹 top100列表中卷積神經網絡的第二部分,Part的內容可以。本篇主要介紹以下幾篇論文:

Return of the devil in the details: delving deep into convolutional nets,Chatfield,2014.
Spatial pyramid pooling in deep convolutional networks for visual recognition,He,2014.
Very deep convolutional networks for largescale image recognition,Simonyan

&Zisserman,2014.

Going deeper with convolutions,Szegedy,2015. 

篇論文是一個非常好的研究CNN已經在圖像識別任務中打敗了手工提取特征,但是由於所有這些不是基於相同條件下進行比較,所以很難分辨出真正占據差異的因素。ChatfieldIFV表示,三種基於CNN的不同深層表示,以及對目標數據集進行預訓練和微調的深表征。對於所有的研究,使用相同的任務(PASCAL VOC分類)三種不同的CNN表示分別為基於Krizhevksy的架構CNN-FFast使用減小的步和較小的第1卷積層的感知野的CNN-MMedium以及基於OverFeat準確網絡的CNN-SSlow)。
主要發現:

  • 增強將IFVCNN的性能提高了約3%翻轉隻能起到略微的作用,但翻轉結合裁剪效果很好。IFVCNN受到顏色信息添加或減少影響將圖像轉換為灰度後重新訓練CNN,會導致3%的性能下降。
  • 基於CNN的方法仍然優於淺編碼等方法10%的性能
  • CNNMCNNS均優於CNNFast 23%的性能;CNNMCNNS25%
  • 再次訓練CNN,最後一層較低的維數導致了邊緣性能提升 
  • 微調導致結果有顯著差異,提高約2.7%

論文提出了一種基於CNN的圖像分類方法的嚴格的經驗評估,以及與傳統的淺層特征編碼方法的比較。結果表明,數據增加可以顯著提高淺表示的性能。盡管有了這樣的改進,但深層次架構的性能仍然大大超過了淺層的方法。結果表明,ILSVRC數據集上的深層表現是其他數據集的性能一個很好的指標,另外使用深表示和線性SVM組合微調可以進一步提高實現的結果。 


到目前為止CNN的架構一般為一係列的卷積層之後是全連接層以及Nsoftmax輸出這種架構造成其隻能處理固定大小的圖像卷積層中使用的滑動窗實際上可以處理任何圖像尺寸,隻是由於全連接層具有固定尺寸的輸入限製了尺寸,導致效果遠遠不理想。
空間金字塔池化(SPP)在卷積層和全連接層之間增加了一個新的層,新層的任務是將任何大小的輸入映射到固定大小的輸出。空間金字塔池化思想早已存在計算機視覺中,但並沒有被應用於CNN

SPP通過將最後一層空間箱,因此無論圖像大小如何,空間箱的數量都會固定。空間箱以不同的間隔尺寸被捕獲在每個空間中,每個過濾器的響應使用最大池。 

373921e1bbdf53f9768307f8215ccca98f29d764

由於箱的數量已知,可以連接SPP輸出以給出固定長度的表示(見上圖) 

這允許任意的尺度輸入當輸入圖像處於不同的尺度時,網絡將提取不同尺度的特征
SPP層添加到四個不同網絡模型中,包括AlexNetKrizhevsky等)和OverFeat後,都提高了它們的準確性。不僅僅是因為更多的參數,而是因為多層次

SPP技術也可用於檢測。之前最先進的RCNN方法需要從輸入圖像找到2000個候選窗口,並利用卷積網絡提取每個窗口的特征,這種方法是昂貴而又緩慢的。SPP網絡僅提取一次特征圖(可能在多個尺度,即對每個候選窗口運行一次空間金字塔池化 

a267661f9b12c8c56dd0b95f737b00fe10a7be8d


之前了解了ConvNet一些變化,探索了不同窗口大小和步以及多尺度的訓練和測試的結果。在本論文中,SimonyanZisserman所有這些變量保持不變,探討了網絡深度對分類準確度的影響
基本設置固定大小的224 x 224 彩色輸入圖像,並且每個像素減去平均像素值(歸一化卷積層使用具有3×3感知野的濾波器,並且配置一個1×1大小的卷積,固定為1像素五個最大池化層與卷積層交織進行空間池化;然後輸入到三個全連接層最終的softmax隱藏層都使用ReLU激活函數
網絡實際架構如下表所示(注意使用了一個局部響應歸一化-LRN 

4d6b430af1a8703b51ee2c27554fc02a5d1cba8f

以下是作者的結果: 

c11f64dadac4686dca0d0ae7db9de5b81233546f

首先,局部響應歸一化並沒有提高準確性,反而增加了訓練時間,所以在較深的體係架構中不被使用。其次,分類誤差隨著ConvNet深度的增加而減小
當深度達到19層時,模型的錯誤率達到飽和,但更深層的模型可能對較大的數據集有益。將表中網絡B55×5卷積層的層網絡進行了比較,結果表明3×3的卷積層代替單個5×5卷積層後準確率提升了7%,這證實具有小濾波器的深優於具有較大濾波器的淺層網絡  

 

這是論文主要介紹Inception”網絡架構的實例“GoogLeNet”網絡,它在2014 ISLVRCImageNet)競賽中取得最好的結果GoogLeNet網絡的深度是22層,整體架構令人難以置信  

0cf4951466c4bf068dd03301d5fb7d8d110a6000

盡管看起來令人恐懼,GoogLeNet實際上比兩年前獲勝的KrizhevskyConvNet的參數要少12同時精度顯著提升。高效功率和內存使用是Inception架構的設計目標:
本文提出的深層架構設計的考慮因素主要是基於效率這個因素,而不是針對準確度。對於大多數實驗,這些模型的設計不純粹的學術好奇心,而是可以應用於現實世界中,即使大數據集成本也是合理

你可以通過增加層數(深度)或者是每層的寬度使的網絡更大”,原則上這將導致更高質量的模型。然而,更大的網絡將導致更多的參數,使得它們容易過擬合為了避免這種情況,需要更多的訓練數據以及更多的計算資源來訓練

解決這個問題的一個方法是引入稀疏性Arora等人在中表明,如果數據集的概率分布由大的非常稀疏的深層神經網絡表示,則可以通過分析前一層激活和高度相關輸出的聚類神經元的相關統計來使用最佳網絡技術每一層
不幸的是,當涉及非均勻稀疏數據架構的數值計算時,目前的計算硬件設備效率很低。
是否有希望利用稀疏性過濾器的架構,通過當前的硬件上使用密集矩陣上的計算?Inception架構開始是對這一目標的進行探索。
Inception架構的主要思想是考慮卷積視覺網絡的最優局部稀疏架構如何被現成的密集組件近似和涵蓋
假設使用層次架構的方法,隻需找到最優層架構,然後對該架構進行堆疊即可。初始層的基本架構如下所示: 

a0f1fd53ffec8ab08d4261377b06d7cff8bc2ba2

1×1卷積檢測局部區域中的相關單元,較大(3×35×5卷積檢測更多的空間由於池化具有的效果,所以每個階段加入池化
雖然這種架構可能會涵蓋最優的稀疏架構,但它計算複雜度非常高、效率低
解決方案是在所有3×35×5路徑上使用1×1卷積來降維。下圖給出了一個Inception層的最終架構 

b9cbb6cf30ec036c127e8961c6c8fc866a2ff6e8

一般而言,Inception網絡是由上述類型的模塊組成,模塊彼此堆疊,偶爾具有步長2的最大池化層將網格的分辨率減半。
GoogLeNet模型中這些層疊在一起深度為22層(如果池層也被計數,則為27總體模塊數量約為100個!梯度通過這麼多層傳遞將是一個挑戰。由於較淺的網絡仍然具有很強的辨別性能,因此向中間層添加輔助分類器(本節開頭的整個網絡圖中的黃色框)。這些分類器較小的卷積網絡放置在Inception4a)和(4d)模塊的輸出之上。在訓練過程中,損失會根據權重疊加,測試時,這些輔助網絡被丟棄。 

@

Convolutional neural networks, Part 2Adrian Colyer

pdf

最後更新:2017-07-12 22:11:46

  上一篇:go  考察數據科學家數據降維知識的40道題,快來測測吧(附答案)
  下一篇:go  Top100論文導讀:深入理解卷積神經網絡CNN(Part Ⅰ)