2.1.3 VGGNet
VGGNet(Simonyan & Zisserman,2015)是2014年ImageNet 竞赛分类任务的亚军网络和定位任务的冠军网络,其中最常见的VGG-16(也被称为VGG-D)的网络结构如图2-4所示。VGG-16 共有16 层卷积和全连接层,共有1.38亿个参数。VGGNet 取名源自作者所处的英国牛津大学(Oxford University)的VGG(Visual Geometry Group,视觉几何组)研究组。
图2-4 VGGNet 网络结构图
VGGNet的网络结构十分简单,整个网络中的卷积层都采用了的卷积核,汇合层都采用了的卷积核。使用这种小卷积核的优势在于,堆叠两个卷积层可以得到的感受野(Receptive Field)大小,堆叠3个卷积层可以得到的感受野大小,但是和直接使用一个或卷积层相比,堆叠多个卷积层的参数量更少。
具体地说,对于一个标准的卷积核维度为、输入通道数为、输出通道数为的卷积层,其输入特征维度为,输出特征维度为,忽略卷积层的偏置项(Bias),该卷积层的参数量为,计算复杂度为。假设卷积层的输入输出特征维度都是,如表2-1所示,可以看出,在获得相同大小感受野的条件下,使用两个卷积层的参数量和计算量是使用一个卷积层的;在获得相同大小感受野的条件下,使用3个卷积层的参数量和计算量是使用一个卷积层的。
表2-1 不同配置卷积层对比
此外,由于每个卷积层后面都配合使用ReLU 激活函数,堆叠多个卷积层的另一个好处是可以获得更多的非线性变换,网络深度更深。因此,网络可以学习更复杂的特征表示。
VGGNet的其他关键点如下:
● 实验证明了增加网络深度可以获得更高的性能。
● 在VGGNet中,卷积层不改变空间维度,而每经过一次汇合层,空间维度减半,这样可以保证特征维度不会随着网络深度增加而急剧变小。总体上说,从网络的输入到输出,空间维度逐渐减小,而通道数逐渐增大。
● 由于VGGNet 最后使用了多层全连接层,导致模型参数量非常大,参数量主要集中在fc6,整个网络参数冗余度比较高。
● 合适的网络初始化和使用BN层对训练深层网络很重要。在(Simonyan & Zisserman,2015)中无法直接训练深层VGG网络,因此只能先训练浅层网络,并使用浅层网络对深层网络进行初始化,再训练深层网络。在BN出现之后,伴随其他技术,使得直接训练深层VGG网络变得可能。
● VGGNet有很好的泛化(Generalization)性能,使其很适合迁移学习(Transfer Learning),其在ImageNet上的预训练模型可以用到多种其他任务中。