VGG-大规模图像识别的深度卷积网络 Very Deep Convolutional Networks for Large-Scale Image Recognition

来源:互联网 发布:unity3d c 工具类脚本 编辑:程序博客网 时间:2024/05/17 21:41

VGG-大规模图像识别的深度卷积网络

Very Deep Convolutional Networks for Large-Scale Image Recognition

Taylor Guo,2017年5月03日 星期三

摘要

本文讨论大规模图像识别中,卷积神经网络的深度对识别精度的影响。我们的主要贡献就是对增加卷积神经网络的深度进行了彻底的评估,网络架构使用了一个非常小的3×3卷积滤波器,在先前配置的网络基础上,将网络深度增加到16-19个权重层,表现出非常大的改进。这些发现基于在ImageNet Challenge 2014竞赛上使用的方案。我们在图像定位和分类中分别得到了第一名和第二名。我们的表示方法在其他数据集上泛化能力非常好,目前在技术进展上结果非常好。我们公开了2种性能最好的模型,可以在计算机视觉领域使用深度视觉表示。

1 简介

卷积神经网络在大规模图像和视频识别上获得了巨大的成功,由于大规模公开图像库,比如ImageNet,和高性能计算系统,比如GPU或大规模分布式集群,使这些应用成为可能。ILSVRC在深度视觉识别架构中扮演了非常重要的角色,作为几代大规模图像分类系统的试验台,从高维度浅层特征编码到深度卷积神经网络应用。

卷积神经网络日益成为计算机视觉中的重要组成部分,有大量试验不断增强原有的架构,获得更高的精度。比如,ILSVRC-2013中性能最好的方案在第一层卷积层中使用了更小的接受窗口和更小的步长。另外一方面的改进是可以在整幅图像和多个尺度上训练和测试网络。本文关注卷积神经网络架构设计的另一个重要方面:网络深度。然后,再确定网络的其他参数,通过增加卷积层,稳步地增加网络的深度,这样就比较可行,主要是由于所有层上都使用了非常小的3×3卷积滤波器。

最后,我们提出了更加精确的卷积神经网络架构,不仅在ILSVRC的分类和定位任务上,取得了更新的精度,而且还可以应用到其他图像识别数据集上,甚至当它们作为一个相对简单流程的一部分时,也获得非常优异的性能(比如,未经调优的线性支持向量机的深度特征分类)。我们发布了两个性能最好的模型供大家进一步做研究时使用。

本文组织如下。第2章,卷积神经网络的配置。第3章,图像分类训练的细节和评估。第4章,ILSVRC 分类任务上不同配置的对比。第5章,总结本文。附录A描述评估了参加ILSVRC-2014的物体定位系统,附录B深度特征在其他数据集上的泛化能力。附录C是修改记录。

2 卷积神经网络的配置

为了在一个公平的环境中评估增加卷积神经网络深度带来的改进,VGG卷积神经网络的配置与之前AlexNet的设计采用相同的法则。本章2.1节先描述VGG卷积神经网络配置的分布,接着,2.2节详细说明评估中所使用的配置,然后2.3节讨论比较我们的设计与之前工作的设计。

2.1 架构

训练过程中,卷积神经网络的输入图像是固定大小224×224的RGB图像。唯一要做的预处理是在训练集图像的每个像素上减去平均RGB值。图像被传入一堆卷积层,我们使用的滤波器的感受野非常小:3×3(这是最小的尺寸,处理左右、上下和中心像素)。在其中一个配置中,我们还使用了1×1的卷积滤波器,可以看作是输入通道的线性变换(接着是非线性修正)。卷积步长固定为1个像素;卷积层输入空间填充是卷积后保留下来的分辨率,比如3×3卷积层填充的是1个像素。

5个最大池化层进行图像大小池化,在卷积层之后(不是所有的卷积层后面都跟着最大池化层)。最大池化层的混合窗口是一个2×2像素的窗口,步长为2。

卷积网络层(不同架构深度不同)后面跟着3个全连接层:前两个每个都有4096个通道,第三个是1000路的ILSVRC分类器,所以包含了1000个通道(每个是一个类)。最后一层是柔性最大转换层。全连接层的配置在我们的所有网络中都一样。

所有隐藏层都配有非线性矫正(修正线性单元)。我们所有的网络(除了其中一个外)都没有包含局部反馈归一化规范:第4章中会介绍,这样的归一化并不会增加ISLVRC数据集上的性能,但会增加内存消耗和计算时间。如果需要使用,LRN层的参数可以参考AlexNet。

2.2 配置

表1:卷积神经网络的配置(每一列)。配置的深度从左A到右E依次增加,层数也更多(粗体字是增加的层)。卷积层参数,记为 conv<感受野大小>-<通道数量>。为了简便,ReLU修正线性单元激活函数没有显示。
表1

卷积神经网络的配置,如表1中的每一列所示。下面我们用每列的字母(A-E)来表示这个网络。所有的配置都遵循2.1节中的设计,只是在深度上有所不同:从11层权重层的网络A(8层卷积层,3层全连接层)到19层权重层的网络E(16层卷积层,3层全连接层)。卷积层的宽度比较小(通道的数量),从第一层的64开始,经过每层的最大池化层后,每层的通道以2的倍数增加到512。

表2:参数的数量(百万个)
表2

2.3 讨论

VGG卷积神经网络的配置与ILSVRC-2012和ILSVRC-2013竞赛中性能最好的网络非常不同。我们并没有在第一层卷积层使用比较大的感受野(比如,AlexNet的11×11,步长为4),或者卷积神经可视化和OverFeat中的7×7,步长为2。可以看到一个由2个3×3卷积层组成的卷积堆(在两个卷积层之间没有空间池化层)形成一个高效的5×5感受野;3个卷积层形成一个7×7感受野。那么,为什么使用一个由3×3卷积层组成的感受野,而不使用一个单一的7×7感受野呢?首先,我们整合了3个非线性修正层,而不是一个,可以使判定函数更加明显。第二,我们减少了参数的数量:假设一个由3×3卷积层组成的卷积堆有C个通道,这个堆一共有332C2=27C2个权重;一个单一的7×7卷积层有72C2=49C2个参数,多出81%。这可以从给7×7卷积滤波器增加归一化看出来,强行分解成3×3滤波器,在每两个之间加入非线性矫正。

整合1×1卷积层(表1中配置C)也是一种增加判定函数非线性的方法,而不会影响卷积层的感受野。在我们的网络中,1×1卷积实质上是一个对相同维度空间上的线性投影(输入和输出通道相同),引入修正函数处理非线性。可以注意到1×1卷积层,最近也应用在网中网中。

小尺寸卷积滤波器,之前Ciresan运用过,但他们的网络明显没有我们的深,也没有评估ILSVRC数据集。GoogLeNet和我们是独立开发的,但我们非常相似,他们使用了22层权重层的深度卷积神经网络,和非常小的卷积滤波(除了3×3之外,还使用了1×1和5×5卷积层)。他们的网络更复杂,特征地图空间分辨率缩减更激进,为了减少计算量。如4.5节所示,VGG模型在单一的网络分类精度上优于GoogLeNet。


理解VGG卷积神经网络的参考文献
CNN/ConvNet:
CS231n: Convolutional Neural Networks for Visual Recognition
CNN笔记:通俗理解卷积神经网络
卷积神经网络(CNN)新手指南
卷积神经网络新手指南之二
卷积神经网络CNN与深度学习常用框架的介绍与使用 (完整版)
牛津视觉几何组VGG-Net主页
VGG-16/19 Technical Paper / 本文的英文论文
VGG-ILSVRC-16网络架构
VGG ILSVRC 16 layers
VGG-ILSVRC-19网络架构
CNN model (VGG-19) / object recognition
VGG-19 with TensorFlow
使用TensorFlow实现VGG-19网络
Convolution neural nets, Part 2 / VGG和其他网络的介绍
Top100论文导读:深入理解卷积神经网络CNN(Part Ⅰ) / OverFeat
计算机视觉识别简史:从 AlexNet、ResNet 到 Mask RCNN
视频 => TF Girls 修炼指南 12:卷积神经网络
视频 => 台大 李宏毅深度学习(2017)(5)
李宏毅深度学习-主页
视频 => 台大 李宏毅机器学习(2016)
视频 => TensorFlow-and-DeepLearning-Tutorial
视频 => 复旦《数值分析》
Keras- 使用vgg16模型进行图片预测
Keras使用VGG16训练图片分类?
Keras中文文档
TensorFlow中文社区
DeepLearning-Challenges/Art_Generation/
卷积神经网络(CNN)
面向小数据集构建图像分类模型
格莱姆矩阵:
matrix
Gramian matrix
ReLU:
ReLu(Rectified Linear Units)激活函数总结
LRN:
ImageNet中的LRN(Local Response Normalization)
在Caffe中配置每一个层的结构

4 0
原创粉丝点击