卷積神經網絡之

更多內容請關注『機器視覺CV』公眾號,提供GPU


VGGNet 是由牛津大學視覺幾何小組(Visual Geometry Group, VGG)提出的一種深層卷積網絡結構,他們以 7.32% 的錯誤率贏得了 2014 年 ILSVRC 分類任務的亞軍(冠軍由 GoogLeNet 以 6.65% 的錯誤率奪得)和 25.32% 的錯誤率奪得定位任務(Localization)的第一名(GoogLeNet 錯誤率為 26.44%)

論文地址:https://arxiv.org/abs/1409.1556


網絡結構

在《Very Deep Convolutional Networks for Large-Scale Image Recognition》論文中,作者給出了 6 個 VGG 模型,對應不同的網絡結構和深度,具體結構如下:


卷積神經網絡之 - VGGNet

不同的網絡結構


卷積神經網絡之 - VGGNet

不同網絡結構的參數量(單位:百萬)


卷積神經網絡之 - VGGNet

VGG-19 的網絡結構


設計要點


  • 預處理過程:圖片每個像素中減去在訓練集上的圖片計算 RGB 均值
  • 所有隱藏層都配備了 ReLU 激活
  • 全局使用 3×3 小卷積,可以有效的減少參數,2 個 3×3 卷積可以替代一個 5×5 卷積,參數量變成 5×5 卷積的 2×3×3/5×5=0.72 倍,3 個 3×3 卷積可以替換 1 個 7×7 卷積,參數量是 7×7 卷積的 3×3×3/7×7=0.6 倍。這樣的連接方式使得網絡參數量更小,而且多層的激活函數令網絡對特徵的學習能力更強。多個 3*3 的卷積核比一個較大尺寸的卷積核有更多層的非線性函數,增加了非線性表達,使判決函數更具有判決性。
  • 結合 1×1 卷積層是增加決策函數非線性而不影響卷積層感受野的一種方式。
  • 訓練設置:批量大小設為 256,動量為 0.9。訓練通過權重衰減(L2 懲罰乘子設定為 5×10^−4)進行正則化,前兩個全連接層採取 dropout 正則化(dropout 比率設定為 0.5)。學習率初始設定為 10−2,然後當驗證集準確率停止改善時,學習率以 10 倍的比率進行減小。學習率總共降低 3 次,學習在 37 萬次迭代後停止(74 個 epochs)。
  • 為了進一步增強訓練集,裁剪圖像經過了隨機水平翻轉和隨機 RGB 顏色偏移
  • 全連接轉卷積(測試階段),使用不同的尺度進行測試


卷積神經網絡之 - VGGNet


結果分析


  • 單尺度的測試結果
卷積神經網絡之 - VGGNet

  1. 網絡的性能隨著網絡的加深而提高。
  2. 應該注意到 B,C,D 這個網絡的性能。C 網絡好於 B 網絡,說明額外添加的非線性激活函數,確實是有好處的;但是,D 網絡好於 C 網絡,這說明也可以使用非平凡的感受野( non-trivial receptive fields)來捕獲更多的信息更有用。
  3. 當網絡層數達到 19 層時,使用 VGG 架構的錯誤率就不再隨著層數加深而提高了。更深的網絡應該需要更多的數據集。
  4. 論文還將網絡 B 與具有 5×5 卷積層的淺層網絡進行了比較,淺層網絡可以通過用單個 5×5 卷積層替換 B 中每對 3×3 卷積層得到。測量的淺層網絡 top-1 錯誤率比網絡 B 的 top-1 錯誤率(在中心裁剪圖像上)高 7%,這證實了具有小濾波器的深層網絡優於具有較大濾波器的淺層網絡。
  • 多尺度評估,測試圖像的尺度抖動對性能的影響


卷積神經網絡之 - VGGNet

在單尺度上評估 ConvNet 模型後,我們現在評估測試時尺度抖動的影響。它包括在一張測試圖像的幾個歸一化版本上運行模型(對應於不同的 Q 值),然後對所得到的類別後進行平均。考慮到訓練和測試尺度之間的巨大差異會導致性能下降,用固定 S 訓練的模型在三個測試圖像尺度上進行了評估,接近於訓練的尺度:Q = {S−32, S, S+32}。同時,訓練時的尺度抖動允許網絡在測試時應用於更廣的尺度範圍,所以用變量 S ∈ [Smin; Smax] 訓練的模型在更大的尺寸範圍 Q = {Smin, 0.5 (Smin + Smax), Smax} 上進行評估。

  • 稠密和多裁剪圖像評估

Dense(密集評估),即指全連接層替換為卷積層(第一 FC 層轉換到 7×7 卷積層,最後兩個 FC 層轉換到 1×1 卷積層),最後得出一個預測的 score map,再對結果求平均。

multi-crop,即對圖像進行多樣本的隨機裁剪,將得到多張裁剪得到的圖像輸入到網絡中,最終對所有結果平均

卷積神經網絡之 - VGGNet

模型特性

  • 整個網絡都使用卷積核尺寸為 3×3 和最大池化尺寸 2×2。
  • VGGNet 在訓練時有一個小技巧,先訓練淺層的的簡單網絡 VGG11,再複用 VGG11 的權重來初始化 VGG13,如此反覆訓練並初始化 VGG19,能夠使訓練時收斂的速度更快。
  • 在訓練過程中使用多尺度的變換對原始數據做數據增強,使得模型不易過擬合。

參考:

  • https://www.bbsmax.com/A/o75Nv7M95W/
  • https://www.cnblogs.com/bigcindy/p/10688835.html


分享到:


相關文章: