VGG网络架构模型论文(VGG网络模型)
本篇文章给大家谈谈VGG网络架构模型论文,以及VGG网络模型对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
经典深度神经网络架构解析 - VGG,ResNet,Inception
深度神经网络对于问题的抽象建立在我们可以通过合适的神经网络架构构造一个通用的函数逼近,使得我们可以从输入样本空间映射到目标样本空间。这一听起来简单的任务在实际构建过程中需要耗费大量的计算和时间以完成模型试验和迭代。而由于迁移学习的可行性,使得我们可以借助已有的在特定分类任务中表现出色的架构来完成类似甚至看起来完全不相关的任务。在学习的过程中,阅读了一些这些经典的网络架构的相关论文,在此做一个记录。
VGG Net 与之前的经典网络结构相比最突出的特征是大量的使用 3x3 (部分架构中还***用了 1x1 )的小卷积核,并且***用 same padding 来维持卷积前后的 w 和 h,Feature map 的缩放完全交给 2x2 的 max pooling 层来完成,此后基本上所有的卷积神经网络的卷积核都***用 3x3 的尺寸。也正因为***用这个简单的、小的卷积核结构,才使得 VGG 成为同时代网络中最经典的深度神经网络。
在深度神经网络中***用小卷积核的原因:小卷积核通过多层叠加后可以在输入层取得与大卷积核同等规模的感受野,且由于网络层次的增加会同步增加网络的容量 model capacity 和复杂度 model complexity,进一步地,通过叠加多个层次的卷积核还可以减少模型的参数:例如对于通道数为 C 的输入和输出来说,***用 7x7 的卷积核需要的参数是 7x7xCxC = 49C 2 个,而通过叠加 3 层 3x3 的卷积核所需要的参数数量为 3 x [3x3xCxC] = 27C 2 个。
在 VGG 的架构中,作者***用 1x1 卷积的主要目的在于增加网络中的非线性,***用与原有输入特征相同通道数量的 1x1 的卷积结构,执行卷积前后不改变特征的表达的数量,但根据作者的经验在同等架构下带有 1x1 结构的网络表现不如 3x3 的网络,因此在后续广为沿用的 VGG 架构都是单纯的 3x3 网络。
一个值得注意的细节是,为了使得网络具有缩放不变性,作者在训练时先将全部图片缩放至 384x384 的尺寸,在此基础上随机裁剪 224x224 的图片区域作为网络的输入,最后再用经过在指定范围内进行尺寸缩放的图片进行微调。
另一个细节是作者在测试时***用了很多比较高明的技巧如 Ensemble 和 multi-crop 等方法使得测试的结果得到了一定的提升,不过这些提升一般只在竞赛中有意义,在真实的生产环境中应用很少。
ResNet 的提出是基于这样一个发现:直觉上深度神经网络应该的性能应该优于架构类似但相对层数更少的网络,但在实际情况中,随着网络层次的加深,梯度消失 Vanishing gradient 的影响愈加明显,网络的训练变得异常困难。这个现象在作者看来反应出了通过非线性激活的神经网络来构建近似恒等映射是困难的,那么我们可以反其道而行之,我们希望神经网络学习这个特定映射和恒等映射之间的差值,此时,由于给定了一个参考基准,使得整个学习的过程更加的容易,这个想法实在是精妙!
在此基础上 ResNet 网络的构建都是基于上图中基本单元构成的。
Inception 这个系列目前共有 5 篇文章,包括:
其中第一篇是对 Inception 架构的一个简单介绍,第二篇则是在改进 Inception 网络的过程中发现了 Batch Normalization 这一被后续广泛使用的提高网络稳健性的方法,第三篇 Rethinking the Inception Architecture for Computer Vision 这一篇相比前两篇论文信息量更大,作者给了很多构建深度卷积神经网络的建议,并且在这一篇中进一步改进了下图中第一版的 Inception Module,将 5x5 的卷积核改为两个 3x3 卷积层的叠加,这是一篇十分诚意的论文,值得反复阅读。
相比于 VGG Net,Inception 网络不再是基本的卷积神经网络的堆叠,取而代之的是对不同变体的 Inception Module 进行叠加。尽管从结构上 Inception 网络更加复杂,但由于大量的使用了 1x1 的卷积核,使得参数量居然比 VGG 还要小。
在此我们除了盲目复杂化网络以外,一个不可避免的问题是:为什么 Inception 网络会有更有的表现?
一种说法是我们在构建网络的过程中很难知道如何选择合适的卷积核,而 Inception Module 使得我们可以尝试多个不同的选择,让网络自己确定哪个方式更加合适。
另一种说法来自本系列的第 5 篇文章,keras 的作者 Francois Chollet 给出的解释是,在传统的卷积神经网络中,卷积核不仅需要在宽度和高度方向上建立特征识别能力,还要在深度(通道)方向上也构建这一能力。再一次地, 知识的表示形式决定了学习的难易程度 ,我们是否可以将这两个方向的特征识别分离开来,而简化这一任务?这就是 Inception 网路及后续在此基础上衍生出的 Xception 网络的核心思想。
VGG Net 论文细读
论文地址:《 Very Deep Convolutional Networks for Large-Scale Image Recognition 》
思维导图:
LSVRC:大规模图像识别挑战赛
ImageNet Large Scale Visual Recognition Challenge 是李飞飞等人于2010年创办的图像识别挑战赛,自2010起连续举办8年,极大地推动计算机视觉发展。比赛项目涵盖:图像分类(Classification)、目标定位(Object localization)、目标检测(Object detection)、***目标检测(Object detection from video)、场景分类(Scene classification)、场景解析(Scene parsing)。
VGG Net由牛津大学的视觉几何组( V isual G eometry G roup)参加2014年ILSVRC提出的网络模型,它主要的贡献是展示了卷积神经网络的深度(depth)是算法优良性能的关键部分。
研究了“卷积网络的深度”在大规模的图像识别环境下对准确性的影响(即神经网络的深度与其性能之间的关系)。
使用一个非常小的卷积核 对网络深度进行评估,评估发现将网络深度加至16层-19层,性能有了显著提升。
在ImageNet Challenge 2014竞赛中,定位赛道获得第一名,分类赛道获得第二名。
论文提出了多种规模的网络架构(不同规模深度不尽相同),下图为其中性能表现良好的网络架构之一:VGG16结构图。
所有卷积操作之后跟有3个全连接层(FC层):
所有的ConvNet配置如图所示,VGG结构全部都***用较小的卷积核(3x3,部分1x1):
两个3×3的卷积层串联相当于1个5×5的卷积层(二者具有等效感受野5x5),3个串联的3×3卷积层串联的效果相当于一个7×7的卷积层;
下图展示了为什么“两个3x3卷积层”与“单个5x5卷积层”具有等效的5x5的感受野。
2个3x3卷积层拥有比1个5x5卷积层更多的非线性变换(前者可以使用两次ReLU激活函数,而后者只有一次),使得卷积神经网络对特征的学习能力更强。
不影响输入输出的维度情况下(即图片宽高尺寸不变),降低了大量运算,同时改变了维度(通道数);
卷积之后再紧跟ReLU进行非线性处理,提高决策函数的非线性。
详见:
数据增强,有利于预防过拟合。
测试阶段与训练阶段主要有两点不同:
VGGNet网络特点:
RepVGG:VGG,永远的神! | 2021新文
论文: RepVGG: Making VGG-style ConvNets Great Again
目前,卷积网络的研究主要集中在结构的设计。复杂的结构尽管能带来更高的准确率,但也会带来推理速度的减慢。影响推理速度的因素有很多,计算量FLOPs往往不能准确地代表模型的实际速度,计算量较低的模型不一定计算更快。因此,VGG和ResNet依然在很多应用中得到重用。
基于上述背景,论文提出了VGG风格的单分支网络结构RepVGG,能够比结构复杂的多分支网络更优秀,主要包含以下特点:
当然,想要直接训练简单的单分支网络来达到与多分支网络一样的精度是很难的。由于多分支网络中的各个分支在训练时的权重变化不定,所以多分支网络可看作是大量简单网络的合集,而且其能够避免训练时的梯度弥散问题。虽然如此,但多分支网络会损害速度,所以论文打算训练时***用多分支网络,而推理时仍然使用单分支网络,通过新颖的结构性重参数化(structural re-parameterization)将多分支网络的权值转移到简单网络中。
由于多分支的存在,使得多分支网络相当于一个包含大量小网络的集合,但其推理速度会有较大影响,所以论文仅在训练时使用多分支进行训练,训练完成后将其权值转移到简单网络中。为了够包含大量更简单的模型,论文在 卷积的基础上添加ResNet-like的identity分支和 分支构成building block,然后堆叠成训练模型。***设多分支网络包含 个building block,则其可以表达 种简单网络结构。
在开始描述最重要的权值转换之前,先进行以下定义:
***设 、 以及 ,则有:
若输入输出维度不相同,则去掉identity分支,即只包含前面两项。 代表是推理时的BN函数,一般而言,对于 ,有:
权值转换的核心是将BN和其前面的卷积层转换成单个包含偏置向量的卷积层。***设 为从 转换得到的核权值和偏置,则有:
转换后的卷积操作与原本的卷积+BN操作是等价的,即:
上述的转换也可应用于identity分支,将identity m***ing视作卷积核为单位矩阵的 卷积。
以上图为例,在 的情况下,将3个分支分别转换后得到1个 卷积和两个 卷积,最终的卷积偏置由3个卷积的偏置直接相加,而最终的卷积核则是将两个 卷积核加到 卷积核中心。需要注意的是,为了达到转换的目的,训练时的 卷积分支和 卷积分支需要有相同的步长,而 卷积的填充要比 卷积的小一个像素。
RepVGG是VGG风格的网络,主要依赖 卷积,但没有使用最大池化,而是使用步长为2的 卷积作为替换。RepVGG共包含5个阶段,每个阶段的首个卷积的步长为2。对于分类任务,使用最大池化和全连接层作为head,而其它任务则使用对应的head。
每个阶段的层数的设计如上表所示,除首尾两个阶段使用单层外,每个阶段的层数逐渐增加。而每个阶段的宽度则通过缩放因子 和 进行调整,通常 ,保证最后一个阶段能够提取更丰富的特征。为了避免第一阶段***用过大的卷积,进行了 的设置。
为了进一步压缩参数,论文直接在特定的层加入分组卷积,从而达到速度和准确率之间的trade-off,比如RepVGG-A的3rd, 5th, 7th, ..., 21st层以及RepVGG-B的23rd, 25th和27th层。需要注意,这里没有对连续的层使用分组卷积,主要为了保证通道间的信息交流。
SOTA分类在120epoch训练的性能对比。
200epoch带数据增强的分类性能对比。
对比多分支效果。
其它操作与结构重参数化的对比实验。
作为分割任务的主干网络的表现。
RepVGG将训练推理网络结构进行独立设计,在训练时使用高精度的多分支网络学习权值,在推理时使用低延迟的单分支网络,然后通过结构重参数化将多分支网络的权值转移到单分支网络。RepVGG性能达到了SOTA,思路简单新颖,相信可以在上面做更多的工作来获得更好的性能。
关于VGG网络架构模型论文和VGG网络模型的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。