經典卷積網絡模型 — VGGNet模型筆記


一、簡介 

  VGGNet是計算機視覺組(Visual Geometry Group)和Google DeepMind公司的研究員一起研究的深度卷積神經網絡。VGGNet探索了卷積神經網絡深度與性能之間的關系,通過反復堆疊3*3的小型卷積核和2*2的最大池化層,VGGNet成功地構築了16~19層(這里指的是卷積層和全連接層)深度卷積神經網絡。到目前為止,VGGNet主要用來進行提取圖像特征。

二、特點

  以常用的VGG16為例,VGGNet的特點是

  •   整個網絡有5段卷積,每一段內有2~3個卷積層,且每一層的卷積核的數量一樣。各段中每一層的卷積核數量依次為:64,128,256,512,512。記住有兩層512
  •   都使用了同樣大小的卷積核尺寸(3*3)和最大池化尺寸(2*2),卷積過程使用"SAME"模式,所以不改變feature map的分辨率。網絡通過2*2的池化核以及stride=2的步長,每一次可以分辨率降低到原來的1/4,即長寬變為原來的1/2。
  •   網絡的參數量主要消耗在全連接層上,不過訓練比較耗時的依然是卷積層。

 三、結構

  以下是VGGNet各級別的網絡結構,總體上分為五段,各段中每一層的卷積核數量依次為:64,128,256,512,512,不一樣的就是每一段中卷積層的數量。還有特別地地方就是A-LRN和C的第3,4,5層,不解釋自己看圖。

以下是VGGNet各級別網絡參數量

 

以下有一個特點就是:兩個3´3的卷積層串聯相當於1個5´5的卷積層,即一個像素會跟周圍5´5的像素產生關聯,可以說感受野大小為5´5。而3個3´3的卷積層串聯的效果則相當於1個7´7的卷積層。除此之外,3個串聯的3´3的卷積層,擁有比1個7´7的卷積層更少的參數量,只有后者的。最重要的是,3個3´3的卷積層擁有比1個7´7的卷積層更多的非線性變換(前者可以使用三次ReLU激活函數,而后者只有一次),使得CNN對特征的學習能力更強。如下圖

VGGNet在訓練時有一個小技巧:先訓練級別A的簡單網絡,再復用A網絡的權重來初始化后面的幾個復雜模型,這樣訓練收斂的速度更快。在預測時,VGG采用Multi-Scale的方法,將圖像scale到一個尺寸Q,並將圖片輸入卷積網絡計算。然后在最后一個卷積層使用滑窗的方式進行分類預測,將不同窗口的分類結果平均,再將不同尺寸Q的結果平均得到最后結果,這樣可提高圖片數據的利用率並提升預測准確率。同時在訓練中,VGGNet還使用了Multi-Scale的方法做數據增強,將原始圖像縮放到不同尺寸S,然后再隨機裁切224´224的圖片,這樣能增加很多數據量,對於防止模型過擬合有很不錯的效果。實踐中,作者令S在[256,512]這個區間內取值,使用Multi-Scale獲得多個版本的數據,並將多個版本的數據合在一起進行訓練。圖9所示為VGGNet使用Multi-Scale訓練時得到的結果,可以看到D和E都可以達到7.5%的錯誤率。最終提交到ILSVRC 2014的版本是僅使用Single-Scale的6個不同等級的網絡與Multi-Scale的D網絡的融合,達到了7.3%的錯誤率。不過比賽結束后作者發現只融合Multi-Scale的D和E可以達到更好的效果,錯誤率達到7.0%,再使用其他優化策略最終錯誤率可達到6.8%左右,非常接近同年的冠軍Google Inceptin Net。同時,作者在對比各級網絡時總結出了以下幾個觀點。

(1)LRN層作用不大。

(2)越深的網絡效果越好。

(3)1´1的卷積也是很有效的,但是沒有3´3的卷積好,大一些的卷積核可以學習更大的空間特征。

 

四、參考

  《Tensorlow實戰》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM