Very Deep Convolutional Networks For Large-Scale Image Recognition

Very Deep Convolutional Networks For Large-Scale Image Recognition

原文地址

时间:2014

Intro

本文的VGG网络在2014年的ImageNet竞赛中分别在定位和分类上获得第一和第二,主要的贡献是使用了小的(3×3)卷积核使得网络可以拓展到16-19层深。

ConvNet Configurations

Architecture

整体结构使用了以下的部件

  • 3×3卷积核,stride=1,padding=1
  • 1×1卷积核
  • 下采样通过最大池化操作,size=2,stride=2
  • 下采样位于卷积层之后,但不是每层卷积层都有下采样
  • 最后有三层全连接层,4096-4096-1000
  • 非线性采用ReLU

Configuration

不同网络的具体结构如表格所示
Very Deep Convolutional Networks For Large-Scale Image Recognition_第1张图片

discussion

与以往的网络不同,VGG没有在第一个卷积层使用大的卷积核(对比AlexNet 的5×5卷积核和ResNet的7×7卷积核),注意两层的3×3卷积核实际感受野是5×5,三层是7×7,那么为什么要使用3×3卷积核呢?

  • 首先,使用3×3卷积核在感受野相同的情况下有更多的非线性层,可以得到更丰富的表示
  • 其次,多个小卷积核的堆叠所需参数更少,假设卷积的输入和输出都是 C C C个channel,那么相同感受野下,三层3×3卷积核的参数就是 3 ( 3 2 C 2 ) = 27 C 2 3(3^2C^2)=27C^2 3(32C2)=27C2个,7×7卷积核的参数就是 7 2 C 2 = 49 C 2 7^2C^2=49C^2 72C2=49C2个,多了81%的参数

1×1的卷积核是为了在不改变感受野的情况下丰富特征的表征

分类框架

训练

训练的时候先训练模型A,然后用模型A的参数初始化更深的模型的参数,模型A权值用 1 0 − 2 10^{-2} 102为方差的正态分布来初始化所有偏置值初始化为0

数据是从rescaled的图片中crop的224×224的图片,同时采用随机垂直翻转和RGB颜色变换

测试

测试的图片rescale的大小与训练时不一定一样,使用不同的rescale大小可以提升性能

实现细节

模型在多个GPU上训练,需要约2~3周

分类实验

Single scale

记训练图片的scale为 S S S,测试图片的scale为 Q Q Q,对于固定的 S S S,令 Q = S Q=S Q=S
这里对每个测试图片使用一个scale,实验发现

  • Local Response Normalization(AlexNet中的)对网络帮助不大
  • 网络越深,误差越大
  • 相同深度的网络,使用3×3卷积的D比使用1×1卷积的C更好
  • 使用变化的scale比使用固定的scale效果更好
    Very Deep Convolutional Networks For Large-Scale Image Recognition_第2张图片

Multi-Scale Evaluation

对每个测试图片使用multi-scale时, Q = { S − 32 , S , S + 32 } Q=\{S-32,S,S+32\} Q={S32,S,S+32} Q = { S m i n , 0.5 ( S m i n + S m a x , S m a x ) } Q=\{S_{min},0.5(S_{min}+S_{max},S_{max})\} Q={Smin,0.5(Smin+Smax,Smax)},结果如表格所示,表面multi-scale在测试时效果更好
Very Deep Convolutional Networks For Large-Scale Image Recognition_第3张图片

Multi-Crop Evaluation

Very Deep Convolutional Networks For Large-Scale Image Recognition_第4张图片

State of the art 结果对比

Very Deep Convolutional Networks For Large-Scale Image Recognition_第5张图片

结论

本文通过使用小的卷积核构建更深的网络来得到更好的性能,利用不同的scale方法,在效果上超过当时的state of the art,其CONV-CONV-POOL的设计模式和小卷积核的应用,成为了之后网络设计的一个共识

问题

  • VGG和AlexNet有何不同?
    • VGG使用3×3的小卷积核,相比于AlexNet的5×5卷积核
    • VGG卷积层之间都是互联的,相比于AlexNet在两个GPU上的连接方法
    • VGG更深,且使用CONV-CONV-POOL的网络模式,相比于AlexNet的CONV-POOL-CONV-POOL模式
    • VGG没有使用AlexNet中的LRN
  • VGG和AlexNet有何相同?
    • 都使用卷积+全连接堆叠层的方式
    • 都使用线性整流单元作为非线性层

你可能感兴趣的:(论文笔记)