VGG

Very Deep Convolutional Networks For Large-Scale Image Recogntion

一、摘要

VGG的主要贡献是表明:通过增加网络深度并且使用非常小的卷积核对网络效果有很大的改善。

二、简介

通过增加深度和使用小卷积核搭建的网络不仅在ILSVRC数据集上表现好,同样也使适用其它数据集。

三、ConvNet结构

这一节详细描述了ConvNet的网络结构。

3.1结构Architecture

预处理:减去像素均值
输入:224x224RGB图像
卷积层:感受野3x3和1x1(1x1可以看出线性转换),步长1
padding:1像素 for 3x3卷积核
pooling:5个max-pooling层,跟在卷积层后面(但不是每个卷积层后都有pooling)。max-pooling的核是2x2,步长2
全连接层(FC):3个全连接层
soft-max层:最后一层
激活函数:ReLU
网络不使用局部响应响应规范化(Local Response Normalisation):因为没有提高性能,反而增加了内存消耗和计算时间。

3.2配置Configuration

网络配置
VGG_第1张图片
网络参数
网络参数

3.3讨论Discussion

1.三个3x3感受野的叠加效果等同于一个7x7的感受野,为什么用三个3x3而不用一个7x7?
(1)使用三个非线性修正函数,使得决策函数更可分。
(2)减少了参数数量。假设通道数为C,则三个3x3参数个数为 3 ( 3 2 C 2 ) = 27 C 2 3\left ( 3^{2}C^{2} \right )=27C^{2} 3(32C2)=27C2。而7x参数个数为 ( 7 2 C 2 ) = 49 C 2 \left ( 7^{2}C^{2} \right )=49C^{2} (72C2)=49C2
2.为什么使用1x1卷积核?
在不影响卷积层的感受野前提下,增加了决策函数的非线性性。

4.分类框架

这一节详细描述ConvNet训练和评估的细节。

4.1训练Training

小批量梯度下降
batch size:256
动量(momentum):0.9
正则化:L2惩罚子 5 × 1 0 − 4 5\times 10^{-4} 5×104。dropout:前两层FC,dropout设置为0.5
学习率 1 0 − 2 10^{-2} 102,当验证集正确率停止上升时,减少1/10。
总的来说,学习率减小3次,在370K次(74 epochs)迭代时停止。
收敛快的原因:(1)正则化和小卷积核(2)特定层的初始化。
初始化策略:先以随机初始化训练配置A,然后用Net A的参数初始化前四层卷积层和最后三层FC层,其它层的权重初始化为 N ( 0 , 1 0 − 2 ) N(0,10^{-2}) N(0,102)正态分布,bias初始化为0来训练更深层网络。
训练数据:从训练集中随机裁剪得到224x224的固定输入图像。裁剪包括随机水平翻转和随机的RGB颜色转移。
训练图像大小
令S表示各向同比例缩放训练图像的最小边。两种方法设置S。
(1)固定S单尺寸训练。S=256和384。先使用256训练网络,然后用256的网络初始化384的网络来加快384网络的训练。初始化学习率为 1 0 − 3 10^{-3} 103
(2)多尺寸训练。S可取 [ S m i n , S m a x ] [S_{min},S_{max}] [Smin,Smax]中的随机值。 S m i n = 256 S_{min}=256 Smin=256 S m i n = 512 S_{min}=512 Smin=512

4.2测试Testing

测试的预定义图像最小边Q可以不等于S。

4.3实现细节Implementation Details

实现平台:C++ Caffe
多GPU并行计算

5.实验结果

5.1单尺寸评估

VGG_第2张图片

5.2多尺寸评估

VGG_第3张图片

5.3多裁剪评估

VGG_第4张图片

5.4和其它网络对比

VGG_第5张图片

你可能感兴趣的:(论文阅读)