目录

一. 背景

成功原因

设计目标

二. 经典网络模型

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)相关推荐

  1. CNN经典网络模型:LeNet,Alexnet,VGGNet,GoogleNet,ReSNet

    关于卷积神经网络CNN,网络和文献中有非常多的资料,我在工作/研究中也用了好一段时间各种常见的model了,就想着简单整理一下,以备查阅之需.如果读者是初接触CNN,建议可以先看一看"Dee ...

  2. CNN的发展历史(LeNet,Alexnet,VGGNet,GoogleNet,ReSNet)

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 关于卷积神经网络CNN,网络和文献中有非常多的资料,我在工作/研究中也用了好一段时间各种常见的model了, ...

  3. 计算机视觉:基于眼疾分类数据集iChallenge-PM图像分类经典模型剖析(LeNet,AlexNet,VGG,GoogLeNet,ResNet)

    计算机视觉:图像分类经典模型 LeNet AlexNet VGG GoogLeNet ResNet 图像分类是根据图像的语义信息对不同类别图像进行区分,是计算机视觉的核心,是物体检测.图像分割.物体跟 ...

  4. caffe总结(五)经典神经网络模型(LeNet , AlexNet , VGG , GoogLeNet)简介

    caffe总结(五) 一.LeNet 二.AlexNet ReLU 数据扩充 重叠池化 局部归一化(Local Response Normalization,简称LRN) Dropout 三.VGG ...

  5. CNN经典网络模型详解LeNet(LeNet-1, LeNet-4, LeNet-5最详细, Boosted LeNet-4)发展和过程

    1.LeNet-5详细 2.回顾LeNet其他模型结构 3.补充 一.LeNet-5详细 LeNet-5是最受欢迎的LeNet-5,与LeNet-4相比只有细微差别,32x32的输入图像 – 6个28 ...

  6. LeNet-5——CNN经典网络模型详解(pytorch实现)

    一.LeNet-5 这个是n多年前就有的一个CNN的经典结构,主要是用于手写字体的识别,也是刚入门需要学习熟悉的一个网络. 原论文地址 输入:32*32的手写字体图片,这些手写字体包含0~9数字,也就 ...

  7. CNN经典网络模型(四):GoogLeNet简介及代码实现(PyTorch超详细注释版)

    目录 一.开发背景 二.网络结构 三.模型特点 四.代码实现 1. model.py 2. train.py 3. predict.py 4. spilit_data.py 五.参考内容 一.开发背景 ...

  8. CNN经典网络模型(二):AlexNet简介及代码实现(PyTorch超详细注释版)

    目录 一.开发背景 二.网络结构 三.模型特点 四.代码实现 1. model.py 2. train.py 3. predict.py 4. spilit_data.py 五.参考内容 一.开发背景 ...

  9. DenseNet——CNN经典网络模型详解(pytorch实现)

    一.概述 论文:Densely Connected Convolutional Networks 论文链接:https://arxiv.org/pdf/1608.06993.pdf 代码的github ...

最新文章

  1. 数据库防护技术对比分析
  2. 【C 语言】二级指针作为输入 ( 指针数组 | 复杂指针解读 )
  3. c# groupbox大小,C# 实现可拖动和调整大小的控件
  4. PPT 2016的加解密功能
  5. react-移动端项目
  6. 官方揭晓iQOO 9正反面宣传照:挖孔直屏+巨型三摄相机模组
  7. 台式计算机优点英语作文,跪求一篇英语作文 题目:论计算机的优缺点
  8. ElasticStack系列之九 master、data 和 client 节点
  9. 查找所选灯笼数(查找第二大)
  10. java excel 2007兼容包_Microsoft Office 2007兼容包
  11. windows上三款能打开超大文本的工具比较:Large Text File Viewer+PilotEdit+LogView
  12. 在ext4文件系统上恢复被误删除的文件
  13. ​杭州,苏州,成都哪个最宜居?
  14. html刮刮乐百分比,jQuery+html5实现彩票刮刮乐效果
  15. Hadsky_v6.4.2轻论坛短信插件
  16. wlan测试仪软件,MT8860C WLAN 测试仪
  17. 小程序连接低功耗蓝牙
  18. 计算机网络应用智能家居,计算机智能化网络应用研究
  19. 一生总会遇到那么一个人
  20. 【034】基于51单片机的HX711电子秤Proteus仿真设计

热门文章

  1. 完美主义?perfectionism
  2. Android 中常用 MimeType 及对应文件类型
  3. MUI+H5开发移动APP/网易邮箱大师项目实战/Android、IOS跨平台应用开发-王翠英-专题视频课程...
  4. java的接口可以继承接口吗?
  5. 说反话 stringstream
  6. 解决了货源整合的核心问题,货拉拉却要因小失大?
  7. windows内核开发学习笔记四十四:注册表存储结构-储巢
  8. 如何实现android手机扫描条码到数据库查询信息并打印
  9. 什么牌子的运动蓝牙耳机好?降噪好的运动蓝牙耳机
  10. iOS 结构体和类的区别