CNN架構優化之二:GoogLeNet Incepetion V1
註:本篇筆記主要來源於:
1、互聯網:http://blog.csdn.net/shuzfan/article/details/50738394
2、論文:Going deeper with convolutions
GoogLeNet-Incepetion-V1是GoogLeNet的最早版本,獲得了ILSVRC 2014的第一,相比2012年的第一名模型結構而言,參數少了近12倍,但是性能卻提升了。Incepetion-V1的結構與經典的CNN相比有一些改進,其改進思路和結構可參考論文《Going deeper with convolutions》。
1、動機
神經網路和深度學習發展快速,人們不再只關注更強配置的硬體,更多的數據,更大的模型,而更在意新的ideal,新的演算法以及新的模型結構。一般而言,提升網路性能最直接的方法就是增加網路的深度和寬度,這也就意味著巨大的參數,這就更容易導致Over-fitting和巨大的計算量。
該文獻認為解決上述兩個缺點的根本方法是將全連接層甚至一般的卷積層都轉化為稀疏連接。主要有兩個原因:
1)現實世界中的生物神經系統的連接也是稀疏的;
2)文獻《Provable bounds for learning some deep representations》表明,對於大規模稀疏的神經網路,可以通過分析激活值的統計特性和對高度相關的數據進行聚類來逐層構建出一個最優網路。這點表明臃腫的稀疏網路可能可以在不損失性能的前提下被簡化。
早些時候,為了打破網路對稱性和提高學習能力,傳統的網路都使用了隨機稀疏連接,但是計算機軟硬體對非對稱稀疏數據的計算效率很差,所以在AlexNet中又重新啟用了全連接層,目的是為了更好的優化並行運算。
所以,現在的問題是有沒有一種方法,既能保持網路結構的稀疏性,又能利用密集矩陣的高計算性能?大量文獻表明(e.g:On two-dimensional sparse matrix partitioning: Models, methods, and a recipe)可以將稀疏矩陣聚類為較為密集的子矩陣來提高計算性能,據此,該論文提出了名為Inception的結構來實現這個方法。
2、Inception結構
Inception結構的主要思路是如何用密集成分來近似最優的局部稀疏結構。作者首先提出圖1(a)這樣的基本結構,後續為了減小參數,改進為圖1(b)這樣的基本結構。
對圖1說明如下:
1)採用不同大小的卷積核意味著不同大小視野或者感受野,最後的拼接意味著不同尺度特徵的融合;
2)之所以採用1、3、5大小的卷積核,主要是為了方便對齊,設定卷積步長stride=1之後,只要分別設定pad=0、1、2,則卷積之後便可以得到相同維度的特徵,然後這些特徵就可以直接拼接在一起了;
3)很多文獻表明Pooling效果很好,所以Inception也嵌入了Pooling;
4)網路越深,特徵越抽象,而且每個特徵所涉及的感受野更大,因此隨著層數的增加,3x3和5x5的卷積核比例也要增加。
5)由於使用5x5的卷積核仍然會帶來巨大的計算量,所以,文章借鑒了《Network in Network》中的方法,採用1x1卷積核來進行降維。例如:上一層的輸出為100x100x128,經過具有256個輸出的5x5卷積層之後(stride=1,pad=2),輸出數據為100x100x256。其中,卷積層的參數為128x5x5x256。假如上一層輸出先經過具有32個輸出的1x1卷積層,再經過具有256個輸出的5x5卷積層,那麼最終的輸出數據仍為為100x100x256,但卷積參數量已經減少為128x1x1x32 + 32x5x5x256,大約減少了4倍。
1、GoogLeNet結構
GoogLeNet的整體結構如下:
1)GoogLeNet採用了模塊化的結構,方便添加和修改;
2)網路最後採用了average pooling來代替全連接層,想法來自《Network in Network》,事實證明可以將TOP1 accuracy提高0.6%;
3)雖然移除了全連接層,但是網路中依舊使用可Dropout;
4)為了避免梯度消失,網路額外增加了2個輔助的softmax用於向前傳導梯度。文章中說這兩個輔助的分類器的loss應該加一個衰減係數,但看caffe中的model也沒有加任何衰減。
4、結論
GoogLeNet是谷歌團隊為了參加ILSVRC 2014比賽而精心準備的,為了達到最佳的性能,除了使用上述的網路結構外,還做了大量的輔助工作:包括訓練多個model求平均、裁剪不同尺度的圖像做多次驗證等等。詳細的這些可以參看文章的實驗部分。
推薦閱讀:
※離開人工智慧談共享汽車就是耍流氓
※CNN入門講解:如何理解卷積神經網路的結構
※智齒客服:回答準確率97%的客服機器人是怎麼練成的
TAG:人工智能 |