VGG - Very Deep Convolutional Networks for Large-Scale Image Recognition

Very Deep Convolutional Networks for Large-Scale Image Recognition

ICLR 2015 (oral)

http://www.robots.ox.ac.uk/~vgg/research/very_deep/

本文针对 AlexNet 的改进主要集中在 网络的深度, depth。通过固定其他网络的结构和参数,来增加网络的深度(通过使用3*3的 小卷积滤波器来增加网络深度),得到很好的效果。

2 ConvNet Configurations 主要参考 AlexNet 网络,便于后续的对比。 2.1 Architecture 训练的输入是固定图像尺寸 224*224 的 RGB图像,唯一的预处理是每个像素减去训练集图像上RGB均值,图像经过一系列卷积层,这里我们使用很小的感受野 3*3。其中一个网络结构我们也使用了 1*1 滤波器,可以被看做是输入的线性变换。卷积步长固定为1个像素,通过填充使得卷积后的输出尺寸和输入尺寸一样大小,对于3*3卷积滤波器,周边分别填充一个像素。有5个最大池化层,采用 2*2 池化窗口,步长为 2。

卷积层(不同网络结构,卷积层数不一样)之后是3个全链接层,前两层有4096个通道,第三层有1000通道对应 ILSVRC分类中的1000类。网络最后一层是soft-max 层。所有网络结构的全链接层是一样的。

所有的隐层神经元都经过 ReLU 非线性处理,我们这里除了一个网络结构外没有采用 AlexNet 中的归一化 Local Response Normalisation (LRN),主要是因为我们发现它对 ILSVRC上数据没有性能改善,但是却增加了内存消耗和计算时间。当需要使用 LRN 时,可以使用 AlexNet 中关于 LRN 的参数。

2.2 Configurations 这里我们一共尝试了 6 个网络结构,主要差异在卷积层数,配置如下:

2.3 Discussion 这里我们网络结构和 AlexNet 以及其他网络模型中最大的不同是我们第一卷积层中的滤波器尺寸很小 3*3,其他的 都是 11*11 或 7*7 。此外我们网络其他层的滤波器都是 3*3大小。很容易发现两个 3*3 的卷积滤波器 (相邻不做空间池化)对应 5*5 的感受野。三个 3*3 对应 7*7 感受野。那么为什么这么做了?首先我们嵌入了三个非线性矫正层而不是一个,这么做增加了决策函数的表达能力。其次是降低参数的数量,假定三个叠加的3*3卷积层的输入输出都是 C 通道,那么一共有 3(3*3*C*C)=27*C*C个权值参数,而一个 7*7卷积层有 7*7*C*C= 49*C*C个参数。 所以参数总量降低了。

我们在 C 网络结构中嵌入了 1*1 卷积层,这可以增加决策函数的非线性表达能力而不影响卷积层的感受野。1*1卷积尽管是一个线性变换,但是因为引入了非线性激活函数,所以增加了非线性表达能力。我们可以看到最近提出的 Network in Network 网络结构就是利用了 1*1 卷积层。

在CNN网络中使用小尺寸卷积滤波器在其他文献已经存在,其中2014年提出的 GoogleNet 和我们类似,大量使用了小滤波器,但是它的网络拓扑结构更加的复杂。我们单个网络分类精度要高于GoogleNet。

3 Classificiaton Framework 3.1 Training 训练流程基本和 AlexNet 一样,文献也给出了一些参数设置。 其中参数的初始化,我们首先通过随机初始化训练了一个 A 网络,然后用 A 网络的参数 来初始化其他网络进行训练。

下面是一些测试结果:

上图主要是对比不同网络层数对精度的影响。

多尺度的影响

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券