VGGNet论文解读/总结
Posted 耿鬼喝椰汁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VGGNet论文解读/总结相关的知识,希望对你有一定的参考价值。
系列文章目录
为此文章为深度学习在计算机视觉领域的图片分类经典论文VGGNet(VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION)论文总结。
此篇论文也是非常适合深度学习领域的小白观看的经典论文,本文为在学习论文期间的也算希望能帮助到大家,有不足地方还希望大家谅解,以后会给大家带来更高质量的学习论文笔记总结。 论文原文:1409.1556.pdf。 (arxiv.org)
此系别文章是非常适合深度学习领域的小白观看的经典论文。此系列文章如下:
AlexNet:AlexNet论文解读/总结_耿鬼喝椰汁的博客-CSDN博客
目录
二、CONVNET CONFIGURATIONS--卷积网络配置
3 CLASSIFICATION FRAMEWORK--分类框架
四、CLASSIFICATION EXPERIMENTS --实验分类
4.1 SINGLE SCALE EVALUATION--单尺寸评估
4.2 MULTI-SCALE EVALUATION--多尺寸评估
4.3 MULTI-CROP EVALUATION--多裁剪评估
前言
VGGNet是在AlexNet基础上对深度对网络性能的影响做了进一步的探索。网络深度层数对比:AlexNet有8层,而VGG有16~19层;AlexNet使用了11x11的卷积核,VGG使用了3x3卷积核。
ABSTRACT--摘要
在 Abstract 中,文章主要研究卷积深度对识别精度的影响,并且利用了3x3的卷积核来加深对网络的评估,表明通过将深度提升到16-19个权重层,证明了增加网络的深度能够在一定程度上影响网络最终的性能,使错误率大幅下降,同时拓展性又很强,迁移到其它图片数据上的泛化性也非常好。
将摘要总结成以下几条:
(1)这篇论文主要研究的是卷积神经网络深度对分类准确度的影响.
(2)我们整个网络都使用 3*3 的卷积核,成功将深度扩大了16-19层,并且得到了一个很好的效果。
(3)VGGNet 获得了2014年 ImageNet Challenge 的定位任务第一名和分类任务第二名。
(4)该模型的泛化能力很强,运用到其它数据集上也得到了很好的效果。
(5)表现最好的两个模型已经投入到未来的研究中。
一、INTRODUCTION--介绍
在 Introduction 节中,首先说明对卷积网络的成功是因为公开数据集和高性能计算,接着讨论了结构设计--深度,使用 3x3 卷积核并增加卷积层来增加网络的深度。
并介绍了论文结构: 1. Section 2--描述ConvNet(卷积网络)配置
2.Section 3--图像分类训练和评估
3. Section 4--在ILSVRC分类任务上对不同框架进行了对比
4. Section 5--论文总结
二、CONVNET CONFIGURATIONS--卷积网络配置
2.1 ARCHITECTURE--网络结构
网络结构小结:
1. 输入是一个224x224大小的RGB图片。
2.预处理比较简单,在三个通道上减去了各个通道的均值(均值是从训练集的所有数据中计算得到的。
3.将预处理过后的图片输入一堆卷积层中,大部分的卷积层感受野的大小都是3x3,在其中一个配置模型中还使用到了1x1大小的卷积核,所有的卷积核的步长限制为1,另外还包含了5个最大池化层(2x2大小,步长为2),只在部分的卷积层后面有。
(1. 大小为3x3的卷积核是捕捉左右,上下,中间信息的最小卷积核尺寸。
2. 1 x1大小的卷积核可以看做是对输入通道的线性变化。
3. 对于3x3大小的卷积核来说设置步长为1可以保证在卷积前后图像的尺寸不发生变化。
4. 大小为2x2,步长为2的最大池化层可以使图像的尺寸减半。)
4.在卷积层后面跟得是3个全连接层,前两层的大小是4096,后面都跟着一个ReLU层,第三层的大小是1000,最后面跟着一个softmax层。(这个全连接层的配置与 AlexNet 的全连接层的配置一致)
5.另外,在本文的基础配置中,并没有使用到 Alex中的LRN(Local Response Normalisation)技术,作者实验中发现LRN技术在ILSVRC中并没有什么用,并且还增加了内存的消耗和计算的时间。
2.2 CONFIGURATIONS--结构
如下图所示,每一列代表一种网络,所有网络的配置遵循sect.2.1中的通用设计,只有深度不同。(从含有11个权重层的网络--8个卷积层和三个全连接层 到 含有19个权重层的网络--16个卷积层和三个全连接层)。
卷积层的宽度(通道的数量)非常小,从第一层的64开始,然后每经过一个最大池化层,数量增加一倍,直到数量达到512。
在实验中,一共尝试了上面六种模型(每一列是一种模型),模型中都使用了是 3x3 的卷积核大小,在模型 C 中尝试了 1x1 的卷积核,模型的深度从左向右依次增加。为了简洁方便,表格中只展示了卷积操作和池化操作,没有显示激活函数(在每个卷积层和全连接层后都有激活函数)。而且我们发现每层的通道数很小,第一层的通道数只有64,之后每进行一次最大池化,通道数变为之前的2倍,直到增加到512为止。
(下面是16层的 VGGNet 的模型图)
图中符号表示:
conv3-64:卷积核的大小为 3*3,输出通道数为 64
conv1-256:卷积核大小为 1*1,输出通道数为 256
FC-4096:全连接层,输出神经元个数为 4096
FC-1000:全连接层,输出神经元个数为 1000
maxpool:采用最大池化
2.3 DISCUSSION--讨论
1.作者说VGG这个网络与之前的那些人的网络不同,他将 11x11 或 7x7 的卷积核变成了更小的 3x3 卷积核。
2.作者发现如果说2个 3x3 的卷积串联,那么将等。于1个 5x5 的卷积,同理3个 3x3 的卷积串联,那么将等于1个 7x7 的卷积。
3.提出为什么要用3个 3x3 的卷积替代1个 7x7 的卷积?
(1)3层比1层更具有判别性,使用更多的非线性变换,特征学习能力更强;
(2) 3x3 的卷积相比于 7x7 的卷积减少了参数。
3 CLASSIFICATION FRAMEWORK--分类框架
3.1 TRAINING--训练
1.在训练时,使用带动量的最小批梯度下降算法,批量大小设置为256,动量设置为0.9,训练时使用权重衰。减,在第一和第二个全连接层使用丢弃率为0.5的丢弃层,学习率设置为0.01,当验证精度停止提高时,学习率降低10倍。VGG相比于AlexNet训练收敛快的原因是拥有更深的网络和更小的卷积,还有一些层的预初始化。
2.不好的初始化会导致学习的失败,在表1中的配置A,网络较浅的可以采用随机初始化。当训练更深的网络结构时,使用模型A的权重来初始化前四层和最后三层全连接层的参数,其他中间层使用随机初始化。
3.输入图片时进行的数据增强(两种方法):
(法一): 选取一个固定的最短边S,相当于单一尺度训练,评估选取两个固定的S,分别为256和384。对于一个给定的神经网络配置,首先训练S=256。为了加速训练S=384的网络,会使用预训练的S=256网络的权重来初始化参数,然后使用更好的初始化学习速率。
(法二): 设置S为多尺度,每次训练图片,都通过从-确定的范围[Smin, Smax]通常值为Smin=256Smax=512,随机采样一个S,使用此S来缩放图片,因为图片中的物体有不同的尺寸,通过S多尺度,这样的情况就被考虑了进去。
3.2 TESTING--测试
训练时的全连接层在测试时依次变为1个 7x7 的卷积和2个 1x1 卷积。经过转换的网络就没有了全连接层,这样网络就可以接受任意尺寸的输入,而不是像之前之能输入固定大小的输入。
测试总结如下:
(1)用一张测试图片的不同大小进行测试,最后取这些结果的平均值作为该图片的结果,这样也会改善性能。
(2)在最后一个卷积层的最后我们需要做一个最大/平均池化,为了使得能够和全连接层连接上,所以需要将最后一个卷积层的输出进行规定。
(3)通过水平翻转图像增加扩充测试数据集,最后将原始图片和翻转后的图片的结果平均值作为该图片的最终结果。
(4)我们在评估网络时,把每张图片变为3个尺寸,从每个尺寸的图片中随即裁剪出50个不同的图片,然后一张图片就变成了150张图片.
3.3 IMPLEMENTATION DETAILS--实现细节
网络进行训练和评价以及训练和评估全尺寸多尺度图像都是使用一个系统上的多个 GPU 。多 GPU 训练利用数据并行性,将每批训练图像分割成若干 GPU 批次,在每个GPU上并行处理。计算完 GPU 批处理梯度后,取其平均值,得到整个批处理的梯度。梯度计算是同步的跨 GPU,因此结果和单一 GPU 训练是完全相同的。
网络在4个 NVIDIA Titan Black GPUs 训练单个网络花费了 2-3 周。
四、CLASSIFICATION EXPERIMENTS --实验分类
在本节中,介绍单尺寸评估(Single Scale Evaluation)、多尺寸评估(Multi-scale Evaluation)、多裁剪评估(Multi-cropEvaluation)、神经网络融合(ConvNet Fusion)和与其他SOTA模型比较(Comparison with The Stateof The Art)
实验所用数据集:1. 数据种类:1000类 2.训练集:130万张图片 3.验证集:5万张图片 4. 测试集:10万张图片。
4.1 SINGLE SCALE EVALUATION--单尺寸评估
在 Table 3中,展示为单尺寸测试的性能
实验结论:
(1):这里说相比于A和A-LRN,LRN层无性能增益。所以在之后的四个网络中就不在出现标准化了。
(2):着深度的增加误差减少,性能提升。
(3):在深度都为16层的情况下,后三层便用 1x1 卷积的C与使用 3x3 卷积的D性能要差。
(4) 当深度不同时,拥有 1x1 卷积的C性能比B好,说明增加非线性是有所帮助的。
(5)尺寸抖动比固定边有更好的结果,说明训练时靠尺寸都能会有所帮助。
4.2 MULTI-SCALE EVALUATION--多尺寸评估
在 Table 4中,展示为多尺寸测试的性能.
在测试时使用尺寸抖动会有更好的表现(与相同的模型在单尺寸相比),并且越深的模型表现越好,尺寸抖动比使用固定最小边S训练的模型更好。
4.3 MULTI-CROP EVALUATION--多裁剪评估
在Table5中,展示为网络评估技术比较从图可以看出,多裁剪评估(multi-cropevaluation)方法要好于密集评估(denseevaluation),如果将两者结合起来会有更好的效果。
4.4与4.5 在 Table 6中,展示为多重神经网络融合结果多模型融合是基于多个网络softmax输出的结果的平均。在Table7中,展示与其他SOTA模型比较。
五、 CONCLUSION--结论
最终结论再次强调深度有利于分类的准确性。
总结
论文创新点
(1)整个网络都采用 3x3 的卷积核,从而增加神经网络的深度。两个3x3卷积核的堆叠代替一个5x5卷积核,三个3x3卷积核代替一个7x7卷积核。这样一方面能够减少参数的数量,另一方面拥有更多的非线性变化。
(2)在卷积结构中引入1x1的卷积核,在不影响输入输出维度的情况下,引入非线性变换,增加网络的表达能力,降低计算量.
(3)通过预训练的方式来更好的初始化权重,加快训练的收敛速度
(4)采用 Multi-Scale 的方式训练和预测,可以扩充数据集,防止过拟合,提升预测准确率。
(5)深层网络更适合于大的数据集
论文启发点
(1)深度能够提高网络的分类准确率
(2)为了加快收敛速度,可以使用预训练的方式初始化权重
(3)在更深层的网络中,LRN方法并没有什么用,反而会导致内存和时间的消耗
(4)通过堆叠小卷积核可以减少网络参数,增加网络深度,提升网络性能
(5)在训练和测试使用 Multi-Scale 可以扩充数据集,防止过拟合
以上是关于VGGNet论文解读/总结的主要内容,如果未能解决你的问题,请参考以下文章
VGGnet论文总结(VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION)