CNN网络结构发展最全整理
来源:人工智能AI技术
本文约2500字,建议阅读9分钟
本文为你整理CNN网络结构发展史。
作者丨zzq
来源丨https://zhuanlan.zhihu.com/p/68411179
CNN基本部件介绍
1. 局部感受野
在图像中局部像素之间的联系较为紧密,而距离较远的像素联系相对较弱。因此,其实每个神经元没必要对图像全局进行感知,只需要感知局部信息,然后在更高层局部信息综合起来即可得到全局信息。卷积操作即是局部感受野的实现,并且卷积操作因为能够权值共享,所以也减少了参数量。
2. 池化
池化是将输入图像进行缩小,减少像素信息,只保留重要信息,主要是为了减少计算量。主要包括最大池化和均值池化。
3. 激活函数
激活函数是用来加入非线性。常见的激活函数有sigmod, tanh, relu,前两者常用在全连接层,relu常见于卷积层。
4. 全连接层
全连接层在整个卷积神经网络中起分类器的作用。在全连接层之前需要将之前的输出展平。
经典网络结构
1. LeNet5
由两个卷积层,两个池化层,两个全连接层组成。卷积核都是5×5,stride=1,池化层使用maxpooling。
2. AlexNet
模型共八层(不算input层),包含五个卷积层、三个全连接层。最后一层使用softmax做分类输出
AlexNet使用了ReLU做激活函数;防止过拟合使用dropout和数据增强;双GPU实现;使用LRN。
3. VGG
全部使用3×3卷积核的堆叠,来模拟更大的感受野,并且网络层数更深。VGG有五段卷积,每段卷积后接一层最大池化。卷积核数目逐渐增加。
总结:LRN作用不大;越深的网络效果越好;1×1的卷积也很有效但是没有3×3好。
4. GoogLeNet(inception v1)
从VGG中我们了解到,网络层数越深效果越好。但是随着模型越深参数越来越多,这就导致网络比较容易过拟合,需要提供更多的训练数据;另外,复杂的网络意味更多的计算量,更大的模型存储,需要更多的资源,且速度不够快。GoogLeNet就是从减少参数的角度来设计网络结构的。
GoogLeNet通过增加网络宽度的方式来增加网络复杂度,让网络可以自己去应该如何选择卷积核。这种设计减少了参数 ,同时提高了网络对多种尺度的适应性。使用了1×1卷积可以使网络在不增加参数的情况下增加网络复杂度。
Inception-v2
在v1的基础上加入batch normalization技术,在tensorflow中,使用BN在激活函数之前效果更好;将5×5卷积替换成两个连续的3×3卷积,使网络更深,参数更少。
Inception-v3
核心思想是将卷积核分解成更小的卷积,如将7×7分解成1×7和7×1两个卷积核,使网络参数减少,深度加深。
Inception-v4结构
引入了ResNet,使训练加速,性能提升。但是当滤波器的数目过大(>1000)时,训练很不稳定,可以加入activate scaling因子来缓解。
5. Xception
在Inception-v3的基础上提出,基本思想是通道分离式卷积,但是又有区别。模型参数稍微减少,但是精度更高。Xception先做1×1卷积再做3×3卷积,即先将通道合并,再进行空间卷积。depthwise正好相反,先进行空间3×3卷积,再进行通道1×1卷积。核心思想是遵循一个假设:卷积的时候要将通道的卷积与空间的卷积进行分离。而MobileNet-v1用的就是depthwise的顺序,并且加了BN和ReLU。Xception的参数量与Inception-v3相差不大,其增加了网络宽度,旨在提升网络准确率,而MobileNet-v1旨在减少网络参数,提高效率。
6. MobileNet系列
V1
使用depthwise separable convolutions;放弃pooling层,而使用stride=2的卷积。标准卷积的卷积核的通道数等于输入特征图的通道数;而depthwise卷积核通道数是1;还有两个参数可以控制,a控制输入输出通道数;p控制图像(特征图)分辨率。
V2
相比v1有三点不同:
引入了残差结构;
在dw之前先进行1×1卷积增加feature map通道数,与一般的residual block是不同的;
pointwise结束之后弃用ReLU,改为linear激活函数,来防止ReLU对特征的破坏。
这样做是因为dw层提取的特征受限于输入的通道数,若采用传统的residual block,先压缩那dw可提取的特征就更少了,因此一开始不压缩,反而先扩张。但是当采用扩张-卷积-压缩时,在压缩之后会碰到一个问题,ReLU会破坏特征,而特征本来就已经被压缩,再经过ReLU还会损失一部分特征,应该采用linear。
V3
互补搜索技术组合:由资源受限的NAS执行模块集搜索,NetAdapt执行局部搜索;网络结构改进:将最后一步的平均池化层前移并移除最后一个卷积层,引入h-swish激活函数,修改了开始的滤波器组。
V3综合了v1的深度可分离卷积,v2的具有线性瓶颈的反残差结构,SE结构的轻量级注意力模型。
7. EffNet
EffNet是对MobileNet-v1的改进,主要思想是:将MobileNet-1的dw层分解成两个3×1和1×3的dw层,这样 第一层之后就采用pooling,从而减少第二层的计算量。EffNet比MobileNet-v1和ShuffleNet-v1模型更小,进度更高。
8. EfficientNet
研究网络设计是在depth, width, resolution上进行扩展的方式,以及之间的相互关系。可以取得更高的效率和准确率。
9. ResNet
VGG证明更深的网络层数是提高精度的有效手段,但是更深的网络极易导致梯度弥散,从而导致网络无法收敛。经测试,20层以上会随着层数增加收敛效果越来越差。ResNet可以很好的解决梯度消失的问题(其实是缓解,并不能真正解决),ResNet增加了shortcut连边。
10. ResNeXt
基于ResNet和Inception的split+transform+concate结合。但效果却比ResNet、Inception、Inception-ResNet效果都要好。可以使用group convolution。一般来说增加网络表达能力的途径有三种:
增加网络深度,如从AlexNet到ResNet,但是实验结果表明由网络深度带来的提升越来越小;
增加网络模块的宽度,但是宽度的增加必然带来指数级的参数规模提升,也非主流CNN设计;
改善CNN网络结构设计,如Inception系列和ResNeXt等。且实验发现增加Cardinatity即一个block中所具有的相同分支的数目可以更好地提升模型表达能力。
11. DenseNet
DenseNet通过特征重用来大幅减少网络的参数量,又在一定程度上缓解了梯度消失问题。
12. SqueezeNet
提出了fire-module:squeeze层+expand层。Squeeze层就是1×1卷积,expand层用1×1和3×3分别卷积,然后concatenation。squeezeNet参数是alexnet的1/50,经过压缩之后是1/510,但是准确率和alexnet相当。
13. ShuffleNet系列
V1
通过分组卷积与1×1的逐点群卷积核来降低计算量,通过重组通道来丰富各个通道的信息。Xception 和 ResNeXt在小型网络模型中效率较低,因为大量的1×1卷积很耗资源,因此提出逐点群卷积来降低计算复杂度,但是使用逐点群卷积会有副作用,故在此基础上提出通道shuffle来帮助信息流通。虽然dw可以减少计算量和参数量,但是在低功耗设备上,与密集的操作相比,计算、存储访问的效率更差,故shufflenet上旨在bottleneck上使用深度卷积,尽可能减少开销。
V2
使神经网络更加高效的CNN网络结构设计准则:
输入通道数与输出通道数保持相等可以最小化内存访问成本;
分组卷积中使用过多的分组会增加内存访问成本;
网络结构太复杂(分支和基本单元过多)会降低网络的并行程度;
element-wise的操作消耗也不可忽略。
14. SENet
15. SKNet
版权申明:内容来源网络,版权归原创者所有。除非无法确认,都会标明作者及出处,如有侵权,烦请告知,我们会立即删除并致歉!
编辑:黄继彦
CNN网络结构发展最全整理相关推荐
- CNN网络结构发展演变:从LeNet到HRNet(一)
个人经验总结博客,写的不好的地方还请各路大神指正,不喜勿喷.网络结构图基本都是引用的,如有雷同,实在抱歉,可在下方评论中留言是否删除. 我们知道CNN网络结构一直在更新迭代,卷积可以理解为:" ...
- 收藏 | 一文遍览CNN网络结构的发展
来源:人工智能AI技术本文约2600字,建议阅读8分钟 本文介绍了十五种经典的CNN网络结构. CNN基本部件介绍 1. 局部感受野 在图像中局部像素之间的联系较为紧密,而距离较远的像素联系相对较弱. ...
- CNN网络结构进化概述
网络工程问题是深度学习中比较基础的问题,网络工程的难点在于,缺乏对深度神经网络的理论理解(即常说的黑盒模型),无法根据理论来设计网络结构,实际中更多的是不断的尝试,根据实验反馈出来的结果确定某一结构是 ...
- 基于CNN的Landsat 8全色与多光谱图像融合的泛锐化方法
基于CNN的Landsat 8全色与多光谱图像融合的泛锐化方法 摘要 为了解决影响传统方法的光谱和空间失真问题,提出了一种基于卷积神经网络结构的泛锐化方法,将低空间分辨率的多光谱图像进行升级,并与高空 ...
- 文字编辑软件的颠峰作品——Word发展历史全析
提到Word相信大家再熟悉不过了,这个经历了20多年发展的文字编辑软件,受到用户的高度肯定,目前发展到Word2010版本,而走过了这么多年的岁月,Word有了怎样的变化与革新,今天就让小编与大家一起 ...
- python excel库pip install_超全整理|Python 操作 Excel 库 xlwings 常用操作详解!
原标题:超全整理|Python 操作 Excel 库 xlwings 常用操作详解! 来源:早起Python 作者:陈熹.刘早起 大家好,我是早起. 在之前的文章中我们曾详细的讲解了如何使用openp ...
- 人民银行招聘考试计算机类真题,中国人民银行招聘计算机类笔试试题大全(多套试题包含答案,考友经验分享试题分析,最全整理资料).doc...
中国人民银行招聘计算机类笔试试题大全(多套试题包含答案,考友经验分享试题分析,最新最全整理资料) 简介:文档包含了多套中国人民银行计算机类笔试模拟题含答案,中国人民银行计算机类考试笔,2006年到20 ...
- 数据库mysql调优(最全整理)
一.存储过程 1. 存储过程优缺点 2. 数据库设计: 数据库三大范式 3. SQL优化定位操作 4. 慢查询 二.索引 三.SQL语句优化技巧 1 . SQL优化技巧 2 . MySQL数据引擎 m ...
- 王者之路!酷睿处理器发展历程全回顾
王者之路!酷睿处理器发展历程全回顾 泡泡网CPU频道4月3日 不知不觉,酷睿(Core)这个处理器品牌已经存在了8年之久,第一代i7处理器带给人们的那种震撼仍记忆犹新,转眼间第四代智能酷睿都已经箭在弦 ...
最新文章
- php 爬虫_Scrapy 爬虫完整案例-基础篇
- 我猜你不知道知乎这么个大系统是咋部署的!
- redis(17)--集群
- 学习 MySQL 高性能优化原理,这一篇就够了!
- 硬件:路由器的基础知识
- python数据可视化源码_Python数据分析:基于Plotly的动态可视化绘图 随书源码[101MB]...
- 如何在Node.js的httpServer中接收前端发送的arraybuffer数据
- 【2016年第4期】分布式协商:建立稳固分布式 大数据系统的基石
- wpf 怎样判断是否选中 checkbox_怎样判断自己的肌肤是否缺水?
- android 混淆方法名,android – 如何告诉Proguard混淆类名
- TensorFlow2.0:模型的保存与加载
- rwg52_h头文件注释
- Recorder︱图像语义分割(FCN、CRF、MRF)、论文延伸(Pixel Objectness、)
- build.xml:391: javac doesn‘t support the “nativeheaderdir“ attribute
- 树莓派3B的摄像头模块
- apabi无限借阅的研究
- 案例 | 基于JMP的机器学习,解决半导体良率问题
- 实现共享要修改哪些计算机策略,局域网共享组策略怎么设置
- 时间管理技巧(清理一波文件 感觉这个还是有用的 )
- 致我们的青春,一个敬礼。
热门文章
- 【c语言】蓝桥杯算法提高 7-1用宏求球的体积
- python银行开户_Python数据挖掘与Stata应用实证寒假工作坊
- 智能家庭本周锋闻:式微的三星和老气的SmartThings
- 本地MySQL数据库要访问远程MySQL数据库的表中的数据的实现
- 解决eclipse中egit中的cannot open git-upload-pack问题
- [BZOJ1106/POI2007]Tet立方体大作战
- 下载和安装Nginx之普通的HTTP和HTTPS服务器
- MIME::Base64::encode格式
- 计算机加入域后远程桌面无法登陆域账户
- matlab ia模块,MathWorks发布MATLAB和SimulinkR2020a版本,为工程师和科学家提供更多AI功能...