[Reading] Very Deep Convolutional Networks For Large-Scale Image Recognition

1. 概述

  Very Deep Convolutional Networks For Large-Scale Image Recognition 一文提交于 2014 年,文章验证了通过增加卷积网络深度,可以显著提升其在图像识别任务上的准确率。文章提出了一种构建深度网络的基本规则,并据此构建了 VGG 系列网络。

2. 构建思路

2.1. 基本思路

  文章给出了一种构建网络的基本规则:主要使用 $3 \times 3$ 的卷积,步长为 1,通过 paading 使输入和输出的分辨率保持一致。 使用 $2 \times 2$ 的最大池化,步长为 2,使得输入分辨率减半。网络末端使用 3 个全链接层,通过 softmax 进行分类。所有隐藏层都使用 ReLU 作为激活函数。

2.2. 卷积核尺寸

  本文之前高性能的网络通常使用较大尺寸的卷积核,例如 $11 \times 11$、$7 \times 7$、$5 \times 5$ 等,而本文则使用了较小的 $3 \times 3$ 卷积核。两个 $3 \times 3$ 卷积叠加的感受野相当于一个 $5 \times 5$ 卷积,三个 $3 \times 3$ 卷积叠加的感受野相当于一个 $7 \times 7$ 卷积,虽然感受野相同,但使用多个 $3 \times 3$ 卷积叠加会带来两个好处:一方面,多个 $3 \times 3$ 卷积层包含更多的非线性,有助于提高区分能力。另一方面,多个 $3 \times 3$ 卷积叠加的参数量要大幅少于直接使用大尺寸卷积,例如 3 个 $3 \times 3$ 卷积(通道数为 $C$)的参数量为 $3(3^2C^2) = 27C^2$,而一个 $7 \times 7$ 卷积的参数量为 $7^2C^2 = 49C^2$;因为参数更少,可以将 3 个 $3 \times 3$ 卷积看成是给 $7 \times 7$ 卷积加上了正则化,强制 $7 \times 7$ 卷积可以分解为 3 个 $3 \times 3$ 卷积。

  除了 $3 \times 3$ 卷积,文章中还使用了 $1 \times 1$ 卷积。$1 \times 1$ 卷积本身是一个线性映射,通过加入非线性的激活函数,$1 \times 1$ 卷积层可以在不改变感受野的同时增加非线性。

3. 网络架构

  文章使用上面的构建规则,给出了一组不同深度的网络,如 Table 1 所示。网络都使用了大量 $3 \times 3$ 卷积层,间或加入最大池化层。每经过一次池化,特征图的长和宽减半,通道数翻倍。其中 LRN 指使用了 Local Response Normalisation,文章通过实验得知,LRN 在 ILSVRC 数据集上并没有带来性能提升。

Table 1

Table 1

  Table 2 列出了这些网络的参数量,可见虽然网络的深度从 11 层逐渐增长到 19 层,网络的参数量却没有大幅增加。

Table 2

Table 2

  文章指出,在训练时,网络权重的初始化非常重要。文章首先使用随机初始化训练了较浅的网络 A,然后使用网络 A 的权重来初始化其他更深的网络,包括前四个卷积层和后三个全连接层。

4. 实验结果

  文章给出了网络在 ILSVRC-2014 中的性能如 Table 7 所示(队伍名称为 VGG)。可见 VGG 的性能大幅超越了往年的最佳网络,和当年最佳的 GoogLeNet 接近。如果只考虑单网络的性能,VGG 具有最佳的性能。

Table 7

Table 7

5. 总结

  文章构造了一组更深的卷积神经网络,实验了更深的网络在大规模图像分类上的性能,验证了增加网络层数可以提升网络在分类任务上的准确率。文章提出的 VGG 网络并没有使用什么特殊的结构,只是在经典卷积网络的基础上增加的深度,就可以达到当时的最佳性能。