导航:首页 > 网络营销 > vgg系列网络有哪些

vgg系列网络有哪些

发布时间:2023-09-02 13:43:17

1. 经典深度神经网络架构解析 - 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 Mole,将 5x5 的卷积核改为两个 3x3 卷积层的叠加,这是一篇十分诚意的论文,值得反复阅读。

相比于 VGG Net,Inception 网络不再是基本的卷积神经网络的堆叠,取而代之的是对不同变体的 Inception Mole 进行叠加。尽管从结构上 Inception 网络更加复杂,但由于大量的使用了 1x1 的卷积核,使得参数量居然比 VGG 还要小。

在此我们除了盲目复杂化网络以外,一个不可避免的问题是:为什么 Inception 网络会有更有的表现?

一种说法是我们在构建网络的过程中很难知道如何选择合适的卷积核,而 Inception Mole 使得我们可以尝试多个不同的选择,让网络自己确定哪个方式更加合适。

另一种说法来自本系列的第 5 篇文章,keras 的作者 Francois Chollet 给出的解释是,在传统的卷积神经网络中,卷积核不仅需要在宽度和高度方向上建立特征识别能力,还要在深度(通道)方向上也构建这一能力。再一次地, 知识的表示形式决定了学习的难易程度 ,我们是否可以将这两个方向的特征识别分离开来,而简化这一任务?这就是 Inception 网路及后续在此基础上衍生出的 Xception 网络的核心思想。

2. 经典CNN网络结构-AlexNet、VGG、GoogleNet、ResNet)

AlexNet之所以能够成功,跟这个模型设计的特点有关,主要有:
使用了非线性激活函数:ReLU
防止过拟合的方法:Dropout,数据扩充(Data augmentation)
其他:多GPU实现,LRN归一化层的使用

GoogLeNet(从Inception v1到v4的演进)

2014年,GoogLeNet和VGG是当年ImageNet挑战赛(ILSVRC14)的双雄,GoogLeNet获得了第一名、VGG获得了第二名,这两类模型结构的共同特点是层次更深了。

VGG 继承了 LeNet 以及 AlexNet 的一些框架结构,而 GoogLeNet 则做了更加大胆的网络结构尝试,虽然深度只有22层,但大小却比 AlexNet VGG 小很多。

GoogleNet参数为500万个,AlexNet参数个数是GoogleNet的12倍,VGGNet参数又是AlexNet的3倍,因此在内存或计算资源有限时,GoogleNet是比较好的选择;从模型结果来看,GoogLeNet的性能却更加优越。

解决深度网络(过拟合, 参数过多, 梯度弥散)这些问题的方法当然就是在增加网络深度和宽度的同时减少参数,为了减少参数,自然就想到将全连接变成稀疏连接。但是在实现上,全连接变成稀疏连接后实际计算量并不会有质的提升,因为大部分硬件是针对密集矩阵计算优化的,稀疏矩阵虽然数据量少,但是计算所消耗的时间却很难减少。那么,有没有一种方法既能保持网络结构的稀疏性,又能利用密集矩阵的高计算性能。大量的文献表明可以将稀疏矩阵聚类为较为密集的子矩阵来提高计算性能, 如人类的大脑是可以看做是神经元的重复堆积,因此,GoogLeNet团队提出了Inception网络结构,就是构造一种“基础神经元”结构,来搭建一个稀疏性、高计算性能的网络结构。

原始输入图像为224x224x3,且都进行了零均值化的预处理操作(图像每个像素减去均值)。
输入为224x224的RGB图像,‘#3x3 rece’和‘#5x5 rece’表示3x3和5x5卷积之前1x1的卷积核的个数。
之所以卷积核大小采用1、3和5,主要是为了方便对齐。设定卷积步长stride=1之后,只要分别设定pad=0、1、2,那么卷积之后便可以得到相同维度的特征,然后这些特征就可以直接拼接在一起了。

3. 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 mapping视作卷积核为单位矩阵的 卷积。

  以上图为例,在 的情况下,将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,思路简单新颖,相信可以在上面做更多的工作来获得更好的性能。



4. 深度学习算法有哪些卷积神经网络

这个太多了,卷积是一种结构,凡是包含这种结构的深度网络都是卷积神经网络。比较知名的有:VGG、GoogleNet、Resnet等

5. caffe和vgg-16和googlenet的区别

三者都属于深度学习领域的术语。
caffe是目前在图像领域应用最为广泛的深度学习平台,许多国内外的大牛都使用caffe做为实验平台,主要原因个人认为有两个,一是caffe发展较早,随着时间的积累积聚了大量的深度学习研究成果,例如能够直接运行的代码和使用预先训练好的模型,可以很方便的进行实验;二是后人如果想与之前的方法进行比较,就需要保持除方法外的其它因素一致,如所使用的数据以及实验使用的平台。
vgg-16是一种深度卷积神经网络模型,16表示其深度,是alexnet后比较有代表性的深度模型之一,在图像分类等任务中取得了不错的效果
googlenet是google设计的一种深度卷积神经网络模型,第一版深度可至22层,这一网络采纳了稀疏学习的思想,通过稀疏网络的参数来加大网络规模。
类似caffe的平台还有tensorflow, theano, torch, paddle等等
类似vgg-16和googlenet这样的网络结构更是多种多样,比较有代表性的就是alexnet, resnet

6. Lecture 9 卷积神经网络架构

首先回顾一下在数字识别领域有巨大成功的LeNet-5,该网络结构为 [CONV-POOL-CONV-POOL-FC-FC]。卷积层使用5x5的卷积核,步长为1;池化层使用2x2的区域,步长为2;后面是全连接层。如下图所示:

而2012年的 AlexNet 是第一个在ImageNet大赛上夺冠的大型CNN网络,它的结构和LeNet-5很相似,只是层数变多了——[CONV1-MAX POOL1-NORM1-CONV2-MAX POOL2-NORM2-CONV3-CONV4-CONV5-Max POOL3-FC6-FC7-FC8],共有5个卷积层、3个池化层、2个归一化层和三个全连接层。如下图所示:

之所以分成上下两个部分,是因为当时的GPU容量太小,只能用两个来完成。还有一些细节是:

AlexNet夺得ImageNet大赛2012的冠军时,将正确率几乎提高了10%,2013年的冠军是ZFNet,和AlexNet使用相同的网络架构,只是对超参数进一步调优:

这样将错误率从16.4%降低到11.7%

14年的冠亚军GoogLeNet和VGG分别有22层和19层,下面来分别介绍。

VGG 相对于AlexNet使用更小的卷积核,层数也更深。VGG有16层和19层两种。卷积核只使用3x3,步长为1,pad为1;池化区域2x2,步长为2。

那么为什么使用3x3的小卷积核呢?

下面看一下VGG-16的参数和内存使用情况:

VGG网络的一些细节是:

下面来看一下分类的第一名,GoogLeNet。

先说明 GoogLeNet 的一些细节:

“Inception”模块 是一种设计的比较好的局域网拓扑结构,然后将这些模块堆叠在一起。

这种拓扑结构对来自前一层的输入,并行应用多种不同的滤波操作,比如1x1卷积、3x3卷积、5x5卷积和3x3池化。然后将所有滤波器的输出在深度上串联在一起。如下图所示:

但是这种结构的一个问题是计算复杂度大大增加。比如考虑下面的网络设置

输入为28x28x256,而串联后的输出为28x28x672。(假设每个滤波操作都通过零填充保持输入尺寸)并且运算花费也非常高:

由于池化操作会保持原输入的深度,所以网络的输出一定会增加深度。解决办法是在进行卷积操作前添加一个“瓶颈层”,该层使用1x1卷积,目的是保留原输入空间尺寸的同时,减小深度,只要卷积核的数量小于原输入的深度即可。

使用这种结构,同样的网络参数设置下,的确会减少计算量:

最终得到的输出为28x28x480。此时总运算量为:

Inception mole堆叠成垂直结构,这里方便描述,将模型水平放置:

所以含参数的层总计3+18+1 = 22层。此外,橙色部分的层不计入总层数,这两块的结构都是:AveragePool 5x5+3(V) - Conv 1x1+1(S) - FC - FC - SoftmaxActivation - Output。“该相对较浅的网络在此分类任务上的强大表现表明,网络中间层产生的特征应该是非常有区别性的。 通过添加连接到这些中间层的辅助分类器,我们期望在分类器的较低阶段中鼓励区分,增加回传的梯度信号,并提供额外的正则化。 这些辅助分类器采用较小的卷积核,置于第三和第六个Inception mole的输出之上。 在训练期间,它们的损失会加到折扣权重的网络总损失中(辅助分类的损失加权为0.3)。 在预测时,这些辅助网络被丢弃。”——引自原论文

从2015年开始,网络的层数爆发式的增长,15-17年的冠军都是有152层,开始了“深度革命”!

ResNet 是一种非常深的网络,使用了残差连接。细节是:

表现这么好的ResNet仅仅是因为深吗?答案是否定的,研究表明一个56层的卷积层堆叠网络训练误差和测试误差都比一个20层的网络要大,并且不是过拟合的原因,而是更深的网络优化更难。但是一个更深的模型至少能和一个较浅的模型表现一样好,如果想把一个较浅的层变成较深的层,可以用下面的方式来构建:将原来比较浅的层拷贝到较深的层中,然后添加一些等于本身的映射层。现在较深的模型可以更好的学习。

ResNet通过使用多个有参层来学习输入与输入输出之间的 残差映射( resial mapping ) ,而非像一般CNN网络(如AlexNet/VGG等)那样使用有参层来直接学习输入输出之间的 底层映射( underlying mapping)

若将输入设为X,将某一有参网络层映射设为H,那么以X为输入的该层的输出将为H(X)。通常的CNN网络会直接通过训练学习出参数函数H的表达式,从而直接得到 X 到 H(X) 的映射。而 残差学习 则是致力于使用多个有参网络层来学习输入到输入、输出间的残差(H(X) - X)的映射,即学习 X -> (H(X) - X) ,然后加上X的 自身映射(identity mapping) 。也就是说网络的输出仍然是 H(X) - X + X = H(X),只是学习的只是 (H(X) - X),X部分直接是本身映射。

残差学习单元通过本身映射的引入在输入、输出之间建立了一条直接的关联通道,从而使得强大的有参层集中精力学习输入、输出之间的残差。一般我们用 来表示残差映射,那么残差学习单元的输出即为: 。当输入、输出通道数相同时,自然可以直接使用 X 进行相加。而当它们之间的通道数目不同时,我们就需要考虑建立一种有效的自身映射函数从而可以使得处理后的输入 X 与输出 Y 的通道数目相同即 。

当X与Y通道数目不同时,有两种自身映射方式。一种是简单地将X相对Y缺失的通道直接补零从而使其能够相对齐,另一种则是通过使用1x1的卷积来表示 Ws 映射从而使得最终输入与输出的通道一致。

实验表明使用一般意义上的有参层来直接学习残差比直接学习输入、输出间映射要容易得多(收敛速度更快),也有效得多(可通过使用更多的层来达到更高的分类精度)。比如在极端情况下,如果自身映射是最优的,那么将残差设为零比通过使用一堆非线性层进行自身映射更容易。

完整的网络结构如下:

对于ResNet-50+的网络,为提高计算效率,使用类似GoogLeNet的“瓶颈层”。像Inception模块那样通过使用1x1卷积来巧妙地缩减或扩张特征图维度从而使得3x3 卷积的卷积核数目不受上一层输入的影响,它的输出也不会影响到下一层。不过它纯是为了节省计算时间进而缩小整个模型训练所需的时间而设计的,对最终的模型精度并无影响。

ResNet的实际训练如下:

实际的训练效果为可以堆叠很多的层而不使准确率下降:152在ImageNet上, 1202层在CIFAR上。现在和预想中的一致,网络越深,训练准确率越高。横扫了2015年所有的奖项,第一次超过人类的识别率。

下面左图通过Top1准确率来比较各种网络的准确性;右图是不同网络的运算复杂度,横轴为计算量,圆圈大小表示内存占用。其中 Inception-v4是 Resnet + Inception。

图中可以看出:

还可以比较前向传播时间和功率消耗:

阅读全文

与vgg系列网络有哪些相关的资料

热点内容
扫一扫连接网络去哪里扫 浏览:173
网络证据有哪些规定 浏览:196
长城汽车连接不上网络 浏览:973
光纤网络怎么连接网络 浏览:187
可以上传网络相册的软件 浏览:356
为什么手机网络连接显示叹号 浏览:217
苹果12移动网络限速怎么办 浏览:882
教学视频网络安全 浏览:439
合肥网络车有多少量辆 浏览:867
路由器装太多会影响网络吗 浏览:775
打牌机没有无线网络怎么回事 浏览:423
查快递为什么一直显示网络异常 浏览:143
纪念币网络和流量哪个快 浏览:792
联通网络用不了怎么办 浏览:175
网络安全工程师考证要多少钱 浏览:593
怎么能暂时中断联通电视网络 浏览:870
iphone怎么看支持网络 浏览:190
移动网络电视机顶盒业务选择 浏览:279
苹果网络速度提升10倍 浏览:123
崂山区移动网络维修客服电话 浏览:495

友情链接