我是靠谱客的博主 沉静钢笔,最近开发中收集的这篇文章主要介绍CNN经典网络模型综述及发散思考(LeNet/ AlexNet/VGGNet/GoogLeNet/ResNet)一. 背景二. 经典网络模型三、总结四、参考内容,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

一. 背景

成功原因

设计目标

二. 经典网络模型

LeNet(1990 年)

网络特点

AlexNet(2012年)

网络特点

VGGNet(2014年)

网络特点

发散思考

GoogLeNet(2014年)

网络特点

inception v1结构

发散思考

辅助分类器

发散思考

ResNet(2015年)

网络特点

残差单元

发散思考

三、总结

四、参考内容


一. 背景

CNN的开山之作是LeCun提出的LeNet-5,而其真正的爆发阶段是2012年AlexNet取得ImageNet比赛的分类任务的冠军,并且分类准确率远远超过利用传统方法实现的分类结果。AlexNet之后,深度学习便一发不可收拾,分类准确率每年都被刷榜,下图展示了模型的变化情况,随着模型的变深,Top-5的错误率也越来越低,目前已经降低到了3.5%左右,同样的ImageNet数据集,人眼的辨识错误率大概为5.1%,也就是深度学习的识别能力已经超过了人类。

ImageNet分类Top-5误差

ImageNet项目仍然在继续改进,目前已经有包含21841类的1419722个图片。自从2010年,每年都会举行ImageNet图像识别竞赛,比赛会提供从ImageNet数据集中抽取的属于1000类的120万张图片。每个网络架构都是在这120万张图片上测试其在1000类上的准确度。

成功原因:

  • 海量的数据,李飞飞团队提供的大规模有标记的数据集ImageNet
  • 硬件的支持,GPU的使用,为复杂的计算提供了强大的支持
  • 算法的改进,网络结构加深、数据增强(数据扩充)、ReLU、Dropout等

设计目标:

准确度:如果你在搭建一个智能系统,最重要的当然是要尽可能地准确。公平地来说,准确度不仅取决于网路,也取决于训练样本数量。因此,CNN模型一般在一个标准数据集ImageNet上做对比。

计算量:大部分的CNN模型都需要很大的内存和计算量,特别是在训练过程。因此,计算量会成为一个重要的关注点。同样地,如果想部署在移动端,训练得到的最终模型大小也需要特别考虑。你可以想象到,为了得到更好的准确度你需要一个计算更密集的网络。因此,准确度和计算量需要折中。

除了上面两个因素,还有其他需要考虑的因素,如训练的容易度模型的泛化能力、迁移能力等。

二. 经典网络模型

LeNet(1990 年)

7 层的神经网络,包含 3 个卷积层,2 个池化层,1 个全连接层,1个输出层,其中所有卷积层的卷积核都为 5x5,步长=1,池化方法都为平均池化,激活函数为 Sigmoid。如图所示:

网络特点:

  • 首次提出卷积神经网络基本框架: 卷积层,池化层,全连接层;
  • 卷积层的权重共享,相较于全连接层使用更少参数,节省了计算量与内存空间;
  • 卷积层的局部连接,保证图像的空间相关性;
  • 使用空间均值下采样,减少特征数量;
  • 使用双曲线(tanh)或S型(sigmoid)形式的非线性激活函数。

AlexNet(2012年)

Alexnet模型为8层深度网络,由5个卷积层和3个全连接层构成,不计LRN层和池化层。AlexNet 跟 LeNet 结构类似,但使用了更多的卷积层和更大的参数空间来拟合大规模数据集ImageNet。它是浅层神经网络和深度神经网络的分界线,如图所示:

网络特点:

  • 使用CUDA加速深度卷积网络的训练,利用GPU强大的并行计算能力,处理神经网络训练时大量的矩阵运算;
  • 使用大数据训练,百万级ImageNet图像数据;
  • 使用ReLU作为激活函数,解决了SIgmoid在网络较深时的梯度消失问题,使收敛更快;
  • 在全连接层使用随机丢弃技术(dropout)选择性地忽略训练中的神经元,避免模型的过拟合;
  • 重叠最大池化(overlapping max pooling),池化的步长小于核尺寸,使输出之间会有重叠和覆盖,提升了特征的丰富性,避免平均池化的模糊化效果;
  • 使用了LRN局部响应归一化层,对局部神经元的活动创建竞争机制,使得响应较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力;
  • 进行数据增强,随机从256*256的原始图像中截取224*224大小的区域,相当于增强2048倍的数据量,减轻过拟合,提升泛化能力。  

VGGNet(2014年)

VGGNet可以看成是加深版的AlexNet,把网络分成了5段,每段都把多个尺寸为3×3的卷积核串联在一起,每段卷积接一个尺寸2×2的最大池化层,最后面接3个全连接层和一个softmax层,所有隐层的激活单元都采用ReLU函数。VGGNet-16的网络结构如下图所示:

网络特点:

  • 使用多个小卷积核构成的卷积层代替较大的卷积层,两个3x3卷积核的堆叠相对于5x5卷积核的视野,三个3x3卷积核的堆叠相当于7x7卷积核的视野。一方面减少参数,另一方面拥有更多的非线性变换,增加了CNN对特征的学习能力;
  • 首次使用1*1的卷积核,在不影响输入输出维度的情况下,引入更多非线性变换,降低计算量;​​​​​同时,还可以用它来整合各通道的信息,并输出指定通道数;
  • 训练时,先训练级别简单(层数较浅)的VGGNet的A级网络,然后使用A网络的权重来初始化后面的复杂模型,加快训练的收敛速度;
  • 采用Multi-Scale方法来做数据增强,增加训练的数据量,防止模型过拟合;
  • VGGNet不使用局部响应标准化(LRN),这种标准化并不能在ILSVRC数据集上提升性能,却导致更多的内存消耗和计算时间。

发散思考:

 《Pyramid Stereo Matching Network》(CVPR 2018)中也提到小卷积核的优势:

GoogLeNet(2014年)

GoogLeNet在2014年由Google团队提出, 斩获当年ImageNet(ILSVRC14)竞赛中Classification Task (分类任务) 第一名,VGG获得了第二名,为了向“LeNet”致敬,因此取名为“GoogLeNet”。

GoogLeNet做了更加大胆的网络结构尝试,虽然深度只有22层,但大小却比AlexNet和VGG小很多。GoogleNet参数为500万个,AlexNet参数个数是GoogleNet的12倍,VGGNet参数又是AlexNet的3倍,因此在内存或计算资源有限时,GoogleNet是比较好的选择,从模型结果来看,GoogLeNet的性能也更加优越。

网络特点:

  • 采用模块化的结构,方便增添和修改;
  • 引入Inception结构,在加深的基础上进行加宽,稀疏的网络结构,但能产生稠密的数据,既能改善神经网络表现,又能保证计算资源的使用效率,并且它通过不同窗口大小的卷积层和最大池化层来并行抽取信息,融合不同尺度的特征信息;
  • 使用1x1的卷积核减少通道数来减少计算量和参数,从而降低模型复杂度;
  • 该网络有3个输出层,其中的两个是辅助分类层,添加两个辅助分类器帮助训练,其实这种训练方式可以看作将几个不同深度的子网络合并到一块进行训练,由于网络的卷积核共享,因此计算的梯度可以累加,这样最终的梯度便不会很小甚至消失;
  • 采用全局平均池化层来代替全连接层,大大减少模型参数,除去两个辅助分类器,网络大小只有VGG的1/20,准确率提高0.6%,实际在最后还是加了一个全连接层,便于对输出进行灵活调整。

inception v1结构

  • 保持网络结构的稀疏性
  • 利用密集矩阵的高计算性能
  • 融合不同尺度的特征信息

发散思考:

这些论文中也沿用了inception 结构的思想:

《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》(PAMI 2015) 

 《Pyramid Stereo Matching Network》(CVPR 2018)

辅助分类器(Auxiliary Classifier)

  • 它确保了即便是隐藏单元和中间层也参与了特征计算,避免梯度消失
  • 训练模型时,辅助分类器的损失乘以权重加到整体损失上,再进行反向传播
  • 实际预测时,这两个辅助分类器会被去掉

发散思考:

这些论文中也沿用了Auxiliary Classifier结构的思想:

《Pyramid Stereo Matching Network》(CVPR 2018)

《Group-wise Correlation Stereo Network》(arXiv 2019)

《Attention Concatenation Volume for Accurate and Efficient Stereo Matching》(CVPR 2022)

ResNet(2015年)

残差神经网络(ResNet)是由微软研究院的何恺明、张祥雨、任少卿、孙剑等人提出的, 斩获当年ImageNet竞赛中分类任务第一名, 目标检测第一名。 残差神经网络的主要贡献是发现了“退化现象(Degradation)”,并针对退化现象发明了 “短连接/快捷连接/直连边(Shortcut connection)”,极大的消除了深度过大的神经网络训练困难问题。神经网络的“深度”首次突破了100层、最大的神经网络甚至超过了1000层。

ResNet的前两层为输出通道数为64、步幅为2的7×7卷积层,后接步幅为2的3×3的最大池化层。 不同于GoogLeNet,ResNet在每个卷积层后增加了批量归一化层。接着, ResNet使用4个由残差块组成的模块,每个模块使用若干个同样输出通道数的残差块。 第一个模块的通道数同输入通道数一致。 由于之前已经使用了步幅为2的最大池化层,所以无须减小高和宽。 之后的每个模块在第一个残差块里将上一个模块的通道数翻倍,并将高和宽减半。ResNet的一个重要设计原则是:当feature map大小降低一半时,feature map的数量增加一倍,这保持了网络层的复杂度。最后,输入全局平均汇聚层,以及全连接层输出。通过配置不同的通道数和模块里的残差块数可以得到不同的ResNet模型,例如更深的含152层的ResNet-152。34层ResNet如下图所示:

网络特点:

  • 残差块,解决退化问题;
  • 超深的网络结构(突破1000层),网络的层数越多,意味着能够提取到不同level的特征越丰富,越深的网络提取的特征越抽象,越具有语义信息;
  • 重要设计原则是:当feature map大小降低一半时,feature map的数量增加一倍,这保持了网络层的复杂度;
  • 使用Batch Normalization,可以解决因深度导致梯度弥散或梯度爆炸的问题,因此可以训练到几十层的网络;
  • 结构简单,ResNet的主体结构跟GoogLeNet类似,但结构更简单,修改也更方便,因此ResNet迅速被广泛使用。

残差单元(残差块)

ResNet团队分别构建了带有“直连边(Shortcut Connection)”的ResNet残差块、以及降采样的ResNet残差块,区别是降采样残差块的直连边增加了一个1×1的卷积操作。对于直连边,当输入和输出维度一致时,可以直接将输入加到输出上,这相当于简单执行了同等映射,不会产生额外的参数,也不会增加计算复杂度。但是当维度不一致时,这就不能直接相加,通过添加1×1卷积调整通道数。这种残差学习结构可以通过前向神经网络+直连边实现, 而且整个网络依旧可以通过端到端的反向传播训练。结构如下图所示:

发散思考:

许多论文中也沿用了Shortcut Connection结构的思想。在神经网络中Shortcut Connection主要以两种基本方式使用:加法连接

加法(逐像素直接相加):

残差块用于特征抽取:

GCnet、PSMnet、GWCnet、ACVnet、raft等

连接(在通道维度进行连接):

构建代价体:

 《GA-Net Guided Aggregation Net for End-to-end Stereo Matching》(CVPR 2019)

《Correlate-and-Excite Real-Time Stereo Matching via Guided Cost Volume Excitation》 (arxXiv 2021)

3D聚合:

《Group-wise Correlation Stereo Network》(arXiv 2019)

 《Pyramid Stereo Matching Network》(CVPR 2018)

三、总结

  1. 进化之路一:网络结构加深,如:VGGnet
  2. 进化之路二:加强卷积功能,如:GoogleNet, ResNet
  3. 进化之路三:从分类到检测,如:检测模型YOLO、Faster RCNN,分割模型UNet
  4. 进化之路四:轻量网络模型,适合于移动端设备,如:MobileNet和ShuffleNet
  5. 进化之路五:新增功能模块,如:FCN,CNN+LSTM等

四、参考内容

卷积神经网络超详细介绍https://blog.csdn.net/jiaoyangwm/article/details/80011656?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-2-80011656-blog-84392845.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-2-80011656-blog-84392845.pc_relevant_aa&utm_relevant_index=4神经网络模型(Backbone)https://www.cnblogs.com/silence-cho/p/11620863.html

最后

以上就是沉静钢笔为你收集整理的CNN经典网络模型综述及发散思考(LeNet/ AlexNet/VGGNet/GoogLeNet/ResNet)一. 背景二. 经典网络模型三、总结四、参考内容的全部内容,希望文章能够帮你解决CNN经典网络模型综述及发散思考(LeNet/ AlexNet/VGGNet/GoogLeNet/ResNet)一. 背景二. 经典网络模型三、总结四、参考内容所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部