VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION

背景

在VGGNet提出之前,已经有证据表明更深的网络结构可以提升模型的性能,但当时的许多网络设计结构复杂,如AlexNet使用的大卷积核和重叠池化等,限制了网络深度的拓展。

贡献

VGGNet证明了通过简单地增加网络的深度可以显著提升性能。VGGNet通过引入16到19层深的网络结构,显著提升了图像分类任务的准确性。 VGGNet使用了统一的卷积核尺寸(3x3),这种设计使得网络结构非常规整。这种小卷积核的使用允许堆叠更多的卷积层而不会迅速增加参数数量,同时它们通过组合可以覆盖更大的感受野。 VGGNet展示了通过重复使用相同类型的层可以达到很好的参数效率。相比于使用大卷积核的网络结构,VGGNet通过多个小卷积核层的组合,能够以更少的参数量捕获更复杂的特征。 VGGNet证明了其网络学到的特征可以迁移到其他视觉任务上。由于VGGNet提取的特征表示强大而通用,它的预训练模型经常被用作其他计算机视觉任务的特征提取器,如物体检测和图像分割。 VGGNet采用了统一的池化策略(2x2最大池化),进一步增加了网络设计的一致性和简洁性。 证明了AlexNet的局部响应归一化(LRN)并不会提高ILSVRC数据集的性能,反而会导致额外的存储和计算时间。 VGGNet的设计影响了许多后来的网络架构。许多流行的网络(如ResNet、Inception系列)在设计时都参考了VGGNet深度网络的概念。

ConvNet配置

为了在公平的环境中衡量增加ConvNet深度带来的改进,所有的ConvNet层配置都是使用相同的原则设计的。

整体结构

VGGNet的输入是固定大小的224x224 GRB图像,唯一所做的预处理是每个像素减去在训练集上计算的平均RGB值。卷积层采用3x3的卷积核(是捕获左/右,上/下,中心概念的最小尺寸),步长为1,并增加了1像素的padding使得输入的空间分辨率在卷积后被保留。还使用了1x1的卷积用来进行输入通道的线性变换。最大池化层的核为2x2,步长为2。最后使用全连接层进行分类。所有激活函数都使用ReLU。不使用LRN,因为LRN不会提高ILSVRC数据集的性能,反而会增加存储器消耗和计算时间。

模型配置

共设计了六种不同深度的网络,都遵循通用设计,仅在深度上有所不同。模型的宽度(通道数)很小,尽管网络深度很深,但总的参数值并不比有更大卷积核且更浅的网络多。

网络结构分析

使用两个连续的3x3的卷积层,感受野为5x5,使用三个连续的3x3的卷积层,感受野为7x7。但是使用若干连续的3x3卷积核,可以结合多个ReLU层,使得决策函数更具鉴别力。而且使用多个连续的3x3卷积核,相较于大核可以减少参数量。

1x1 是一种增加决策函数的非线性而不影响卷积的感受野的方法。尽管网络中的1x1卷积本质上是在相同维度的空间上的线性投影(输入和输出通道的数量相同),但ReLU函数引入了额外的非线性。

ILSVRC-2014分类任务中表现最好的GoogLeNet,也使用了深层的卷积结构和小卷积核(1x1,3x3,5x5),但GoogleNet的网络拓扑结构更加复杂,并且在第一层中更积极地降低了特征图的分辨率,以减少计算量。本文模型在但网络分类精度上优于GoogleNet。

分类框架

训练

训练过程遵循AlexNet,使用mini-batch梯度下降,batchsize设置为256,动量设置为0.9,权重衰减设置为0.0005,前两个全连接层使用dropout正则化(dropout ratio为0.5)。初始学习率为0.01,当验证集精度停止提高时降低10倍。在370k次迭代(74epochs)后停止学习。

A网络使用随机初始化,而其他的网络中与A网络相同的层直接使用A的预训练参数进行初始化,多出来的层使用随机初始化。

得益于更大的深度和更小的卷积核带来的隐式正则化和特定层次的预初始化,虽然VGGNet有更大的深度,但他的收敛速度要优于AlexNet。

为了获得固定大小的224× 224 输入图像,从重新缩放的训练图像中随机裁剪(每次SGD迭代每个图像裁剪一次)。为了进一步增加训练集,使用随机水平翻转和随机RGB颜色偏移进行数据增强。

测试

密集评估(Dense Evaluation):在VGGNet的测试阶段,首先将网络转化为全卷积网络。这是通过将原本的全连接层转换成卷积层来实现的,其中第一个全连接层变为7×7的卷积层,后两个全连接层变为1×1的卷积层。这种转换使得网络能够接受任意尺寸的输入图像,并在整个图像上密集地应用卷积操作。最终,网络输出一个类别分数图,其尺寸取决于输入图像的调整后尺寸Q。每个类别的得分是通过对这个分数图进行空间平均来获得的。

多裁剪评估(Multi-Crop Evaluation):VGGNet还使用了多裁剪评估方法,即在测试时对输入图像进行多次不同区域的裁剪,并对每个裁剪的图像分别应用网络。这种方法通常包括对图像的四个角落和中心区域进行裁剪,有时还包括它们的水平翻转版本。每个裁剪得到的预测结果最后被合并,以提高分类的准确性。

测试集增强:为了进一步提高准确率,测试时还包括了水平翻转图像的增强。原始图像和其水平翻转版本的softmax后验概率被平均,以得到图像的最终分类得分。

实施细节

在多个GPU上执行训练和评估。多GPU训练利用数据并行性,并且通过将每批训练图像分成多个GPU批次来执行,在每个GPU上并行处理。在计算GPU批次梯度之后,将它们平均以获得整个批次的梯度。梯度计算在GPU之间是同步的,因此结果与在单个GPU上训练时完全相同。

实验

单尺度评估

在固定的训练和测试图像尺寸S=Q和变化的训练图像尺寸S\in [S_{min},S_{max}],Q=0.5(S_{min}+S_{max}),在不同深度的模型A-E上的测试结果如下:

通过尺寸变化的训练集增强有助于捕获多尺度的图像统计。

多尺度评估

评估测试时尺寸变化的影响,对于固定的训练尺寸S,测试尺寸采用Q\in \{S-32,S,S+32\},对于变化的训练尺寸S\in[S_{min},S_{max}],测试尺寸采用Q = \{S_{min},0.5(S_{min} + S_{max}),S_{max}\}。实验结果如下:

测试时的尺寸变化能够取得更好的性能。

多裁剪评估

比较了密集评估与多裁剪评估,并使用平均softmax输出来将两种方式结合:

使用多种作物的性能略好于密集评估,这两种方法确实是互补的,它们的组合优于它们中的每一种。

多模型融合

通过对多个不同ConvNet模型的softmax类后验概率进行平均,来组合这些模型的输出。由于不同模型之间的互补性,这种做法可以改进性能。作者将表现最佳的两个模型(D和E)进行组合,得到了top-5错误率6.8%的效果。

与最新方法的对比

显著优于上一代模型,在单网络性能上取得了最优的效果。

总结

VGGNet对计算机视觉领域的贡献主要体现在其引入的更深层次的网络结构和统一的卷积层设计。VGGNet是最早证明通过增加网络深度可以显著提升性能的模型之一。它采用了多层统一大小(3x3)的卷积核,这种设计不仅简化了网络结构,还展示了小卷积核堆叠的有效性。VGGNet的这一设计哲学对后续更深层次网络的开发产生了重要影响,例如在ResNet等网络中就能看到其影响的踪迹。

VGGNet在其设计中也有所改进和创新。与之前的网络如AlexNet相比,VGGNet通过使用小卷积核减少了单层的参数数量,同时增加了网络的深度,提高了模型的表达能力和特征提取的精细度。此外,VGGNet还展示了其特征提取能力的强大以及这些特征在不同视觉任务上的可迁移性,为使用预训练模型作为特征提取器的做法奠定了基础。

随着深度学习技术的发展,VGGNet的某些特点被后续的技术所取代。例如,VGGNet模型参数众多,导致了高昂的存储和计算成本。后续的网络设计趋向于采用更高效的架构,减少模型的参数数量。同时,VGGNet没有使用批量归一化,这是后续网络中常用的一种技术,可以加快训练速度并提高性能。尽管如此,VGGNet在深度学习和计算机视觉领域的影响是不可忽视的,它的一些核心设计理念至今仍被广泛采用和发展。

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: