VGGNet論文筆記

Title: Very Deep Convolutional Networks for large-scale image recognition(2014)

Link:paper

abstract

任務: large-scale image recognition

主要貢獻:通過比較不同深度的網絡,驗證深度卷積網絡(with very small 3×3 convolution filter)的深度配置對性能的影響。

這篇論文基於 ImageNet Challenge 2014,該團隊分別取得了 localisa tion and classification tracks 的第一第二名。

因爲團隊名稱叫 VGG,所以該模型叫 VGGNet。

1 Introduction

Convolutional networks (ConvNets) have recently enjoyed a great success in large-scale image and video recognition

CNN在大規模圖像,視頻識別中取得巨大成功。主要體現在ImageNet Large-ScaleVisual Recognition Challenge (ILSVRC)這個比賽中。

之前的工作也在爲更高的準確性改進CNN框架。

In this paper, we address another important aspect of ConvNet architecture design – its depth.

這篇論文,主要考慮網絡的深度。不改變其他參數,通過添加更多的卷積層來增加網絡深度。因爲使用的卷積濾波器很小 (3 × 3),所以這個方案可行。

最後得到了一個準確度更高的卷積網絡,這個網絡不但早ILSVRC classification and localisation tasks中取得了state-of-the-art accuracy,在其他圖像識別數據集上表現也很好。

文章結構如下:

  • 第二章:網絡配置
  • 第三章:圖像分類訓練和驗證的細節
  • 第四章:ILSVRC classification task中不同配置的比較
  • 第五章:總結

2 Convnet Configurations

2.1 Architecture

  • convolution layers
    input:224 × 224 RGB image
    filter size:3 × 3(receptive field)
    stride:1 pixel
    pooling layer:5個 max-pooling 層,只有一些卷積層後面跟着 pooling 層(2 × 2 pixel window, with stride 2)

  • Fully-Connected (FC) layers 所有網絡的FC層都一樣
    前兩層 4096 channels
    第三層 1000 channels(1000個類別)
    第四層 soft-max layer

  • hidden layers
    所有隱藏層的激活函數都是 ReLU;
    除了一個網絡外,其餘網絡都沒有采取 Local Response Normalisation (LRN) 這個正則化沒有提高 ILSVRC dataset 上的網絡性能,還耗時佔內存。

2.2 Configurations

本論文的方法是對比不同深度的 CNN,一共設計了以下幾種網絡,每一列是一種配置,網絡用 A 到 E 命名。

所有的網絡配置都按照2.1中的設計,只有深度不同: 從 A 中的11層(8 conv. and 3 FC layers)到 E 中的19層(16 conv. and 3 FC layers)

卷積層的通道數量很小,從 64 開始,沒經過一個max pooling 加 2,直到 512。

在這裏插入圖片描述

2.3 Discussion

  • small respective filed:
    與 ILSVRC-2012 和 ILSVRC-2013 比賽的 top-performing 網絡相比,本文的網絡用了 very small 3 × 3 receptive field with stride 1。

3 Classification Framework

3.1 Training

the training is carried out by optimising the multinomial logistic regression objective using mini-batch gradient descent with momentum.

learning strategy

SGD
batch size = 256
momentum = 0.9
weight decay = 0.0005
dropout ratio = 0.5
The learning rate was initially set to 0.01, and then decreased by a factor of 10 when the validation set accuracy stopped improving.

initialisation

按照上述 Table 1 配置網絡,淺層網絡訓練時可以隨機初始化,深層的網絡訓練時用 net A 的數據初始化前四個卷積層和最後三層全連接層,其餘的中間層隨機初始化。

隨機初始化採用均值爲 0 ,標準差爲 0.01 的正態分佈隨機取樣。

網絡偏置(bias)初始化爲 0。

training image size

用 S 代表 training image 的最小規模,當裁剪尺寸固定爲 224 × 224, S = 224,可以直接輸入整個圖像,黨 S >> 224,圖片就會裁剪。

訓練規模 S 有兩種設定方法。

The first is to fix S, which corresponds to single-scale training. The second approach to setting S is multi-scale training.

第一種方法是固定 S,適用於單尺寸訓練;第二種方法的 S 是從一個確定的區間隨機取樣,適用於多尺寸訓練,這可以看作一種數據增強(data augmentation)

3.2 Testing

給定一個訓練好的網絡和輸入圖像,按如下步驟完成分類任務:

  • 首先圖像調節(rescale)到預先定義的最小尺寸,記爲 Q;
  • 接着把網絡應用到 Q (rescaled test image),全連接層可以看作 1 × 1 的卷積層,所以整個網絡可以看作全卷積網絡(fully-convolutional net);
  • 最後得到一個固定尺寸的類別向量。輸出的向量通道數與類別數相等。

可以通過水平翻轉做測試圖片的數據增強,用原始圖像和翻轉圖像得到分數的平均值作爲最後預測結果。

3.3 Implementation Details

用 Caffe 實現,在此基礎上做了一些有意義的修改,所以能在多個 GPU 上訓練和測試(數據並行,加速訓練),還能使用多尺寸的未裁剪的圖片。

4 Classification Experiments

ILSVRC-2012 dataset 分成 3 sets:training,validation,testing。

分類性能測量:the top-1 and top-5 error。

4.1 Single scale evaluation

在單個尺寸的圖片上做測試:
在這裏插入圖片描述

  1. 使用 local response normalisation (A-LRN network) 沒有太大效果,所以後面的網絡沒有用 LRN;
  2. 隨着網絡深度增加,分類錯誤減小;
  3. 採用 multi-scale image 的策略對訓練有幫助(S 不固定)

4.2 Multi-scale evaluation

在多個尺寸的圖片上做測試:
在這裏插入圖片描述
可以看出,測試時應用 scale jittering 可以提高性能,看黑體加粗的部分。

4.3 Multi-crop evaluation

比較 dense ConvNet evaluation 和 mult-crop evaluation:
在這裏插入圖片描述
可以看出,multiple crops 比 dense 的效果稍好,兩個方式互補,兩者結合效果更好。

4.4 ConvNet fusion

考慮多模型融合:
在這裏插入圖片描述
把多個模型的輸出結合起來,錯誤率再一次降低。(比賽後再次提交的效果更好)

4.5 Comparision with the state of the art

在這裏插入圖片描述
從圖中的粗體可以看出,該網絡的效果比之前的好,6.8 的錯誤率也逼近分類任務冠軍 GoogLeNet 的 6.7。

單個網絡的性能,單個 VGG 的性能比單個 GoogLeNet 的性能好。

5 Conclusion

本文驗證了網絡深度對分類性能的影響,而且設計的深度卷積神經網絡在ImageNet challenge dataset 上能取得很好的分類性能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章