深度卷积神经网络结构演变
笔者所写博文皆为自己浏览学习之后的心得或笔记,想与读者共同学习进步,欢迎指导交流。若内容有不当或侵权,请联系笔者修改或删除。致谢!
今天看到一篇来自公众号讲解深度卷积神经网络结构的文章,获益匪浅,结合之前的笔记,自己做一个总结便于查询,笔者主要是提出各个网络的创新点等,具体的概念博文中不作解释,有更多更好详细的讲解。即本文旨在了解网络结构的变化演进。
先贴连接:深度卷积神经网络演化历史及结构改进脉络-40页长文全面解读
还有一篇讲Inception家族:一文概览Inception家族的「奋斗史」
首先放一张图:
上图表示的即为当前(…不清楚图源及作图时间,至少是在17年之后)流行的网络结构的综览图,其中横坐标表示一次前向计算需要的计算量,纵坐标表示准确率(一个共同指标),圆的大小表示所含参数的多少。因此根据图像可以看出,越往左上的圆越小的模型应当效果更好,但根据任务选择模型时仍应该多加考虑。
一、LeNet 1989
个人认为的深度卷积神经网络的始祖(虽然图上没有),1989年由LeCun大牛提出,被用于手写字符(数字)的识别,确立了卷积神经网络的基础结构,包括卷积层,池化层,激活函数(tanh函数),全连接层,损失函数采用了均方误差即欧式距离的均值,权重由随机数初始化,训练梯度采用了反向传播算法。
提出了权值共享和特征图像的概念,权值共享即一个卷积核对上层图像(特征图)进行卷积的权值参数不变,即以同样的参数处理整张图像;特征图像…字面意思,使用卷积核进行卷积后得到的图像称为特征图像。
注:LeNet是指由LeCun提出的在当时新颖的卷积神经网络的总称,并不只有一个,主要就是应用在数字识别,第一个广为流传的网络结构为LeNet-5
结构图:
二、AlexNet 2012
第一次使用ReLU激活函数,提出了Dropout,提出数据增强扩大训练集,提出了局部相应归一化LRN(现在基本不用),提出了重叠池化。
结构图:
三、ZFNet 2013
提出通过反卷积方法进行卷积网络可视化的方法,可以了解到图像“学”到了什么。以此改进,在AlexNet基础上取得了更好的成果。
四、VGGNet 2014
提出使用很小的卷积核来代替大的卷积核,大量使用3*3卷积,这样使得每层参数更少,在相同复杂度下能做到更深的网络;去掉了LRN,实验发现其作用不明显。
结构图:
从左至右每一列代表着深度增加的不同的模型,从上至下代表模型的深度,其中conv<滤波器大小>-<通道数>
五、GoogleNet 2014
即Inception-V1网络,致力于解决增大深度或宽度带来的计算问题,和参数过多带来的过拟合问题。提出了Inception模块;使用了1*1卷积核(作用:升维降维);尝试去除参数海量的全连接层,由平均池化代替。后两者借鉴了NIN(Network In Network的思想,感兴趣可以一观)
Inception模块图:
六、ResNet 2015
目的是为了解决退化问题(:随着网络层数的增多,与过拟合不同,在训练集和测试集上的准确率达到一定值都下降,梯度问题;另外一种解释是可以残差模块去除当前特征冗余的杂质,使得特征细化),提出了残差结构如下图。后来的分析表明残差网络并不是一个单一的超深网络,而是多个网络指数级的隐式集成,由此引入了多样性的概念。
残差结构:
接下来是一些基于GoogleNet-Inception-Like网络改进系列,包括ResNet
七、Inception - V2 2015
1.基于GoogleNet进行了改进,加入了BN层
2.局部用 3X3 卷积代替了 5X5 卷积(VGG的思想)
八、Inception - V3 2015
1.最重要的改进:卷积核的分解
对卷积进行非对称分解:7 X 7 → 1 X 7 + 7 X 1; 3 X 3 → 1 X 3 + 3 X 1
作用:既减少了参数,又增加了深度,加深了网络的非线性
2.对优化算法的改进
①改进了参数优化方法,即学习率的问题,AdaGrad → RMSProp
② 采用了Label Smoothing 策略,是一种正则化的方法(降低了过拟合程度)
模块结构图:
九、Inception - V4 2016
相较V3,变得更深
十、Xception
是针对Inception - V3的另一种改进,主要采用Depthwise Separable Convolition替换掉V3中的卷积操作:具体为在卷积操作时,将学习空间相关性核学习通道间相关性分离开。这样也会在基本不增加复杂度的前提下提高效果。
网络结构:
十一、Inception - Resnet V1/V2 2016
基于Inception-V3 和 Inception-V4及残差网络的思想的融合,提出了两个模型
Inception - Resnet V2的网络结构:
十二、NASNet 通过强化学习自动产生结构
略
十三、WRN (Wide Residual Network)2016
提出的原因:认为残差网络较深时,并不能保证能有效更新每个残差模块,基于此想法,作者想要将细深的网络变为宽浅(…还没仔细理解)
WRN模块:
十四、ResNext 2016
提出原因:对于网络的改进,传统的方法主要时增加深度或者增加宽度(通道数),但都会大大增加设计难度和复杂度
方法:同时基于思想,以及Inception的split-transform-merge思想,提出了该扩展性较强的网络。提到了一个名词cardinality(基数),个人理解即一个模块中同时并列多少个子网络(增加分支)。
结论:Cardinality越大越好,且在同样的复杂度下,比增加深度和宽度效果要好
十五、DenseNet
对小数据结果较好,特征图会传到网络后面的所有层。
结构图:
十六、MobileNet及ShuffleNet
用于嵌入式设备,牺牲较少的精度换取减少大量的计算。
总结:对卷积神经网络结构的改进主要在卷积层,而改进方法主要有有以下几种:卷积核小型化(参数减少),1x1卷积(升降维),Network In Network,Inception机制,卷积分解(Factorization),反卷积运算(实验可用以调参);最近一个平常的操作就是加入了注意力机制,包括通道注意力、空间注意力,感兴趣的小伙伴可以查一些资料如SE-Net等。此外,对网络结构其他部分常用的方法要理解透彻,例如优化器的各种优化方法,激活函数损失函数的选择等,读者可以自己详读开篇的文章。
深度卷积神经网络结构演变相关推荐
- 深度卷积神经网络结构,基于深度卷积神经网络
深度学习与神经网络有什么区别 深度学习与神经网络关系2017-01-10最近开始学习深度学习,基本上都是zouxy09博主的文章,写的蛮好,很全面,也会根据自己的思路,做下删减,细化. 五.Deep ...
- 基于深度卷积神经网络,深度卷积神经网络结构
1.卷积神经网络算法是什么? 一维构筑.二维构筑.全卷积构筑. 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Fe ...
- 深度学习之卷积神经网络(2)卷积神经网络结构
深度学习之卷积神经网络(2)卷积神经网络结构 1. 单通道输入和单卷积核 2. 多通道输入和单卷积核 3. 多通道输入.多卷积核 4. 步长 5. 填充 卷积神经网络通过充分利用局部相关性和权值共享 ...
- 机器学习——深度学习之卷积神经网络(CNN)——AlexNet卷积神经网络结构
目录 一.AlexNet卷积神经网络结构模型 1.数据库ImageNet 2.AlexNet第一层卷积层 二.AlexNet卷积神经网络的改进 1.非线性变化函数的改变--ReLU 2.最大池化(Ma ...
- 机器学习——深度学习之卷积神经网络(CNN)——LeNet卷积神经网络结构
目录 一.卷积神经网络 1.卷积神经的作用 2.LeNet 1)数据库准备--minst 2)模型· 二.关于卷积神经网络结构的一些术语定义 1.特征图(Feature map) 2.height(长 ...
- 深度学习 | MATLAB实现CNN卷积神经网络结构及参数概述
深度学习 | MATLAB实现CNN卷积神经网络结构及参数概述 目录 深度学习 | MATLAB实现CNN卷积神经网络结构及参数概述 基本介绍 模型描述 训练过程 计算函数 参考资料 基本介绍 卷积神 ...
- 【卷积神经网络结构专题】经典网络结构之VGG(附代码实现)
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]本文是卷积神经网络结构系列专题第三篇文章,前面我们先后介绍了LeNet和A ...
- 【卷积神经网络结构专题】一文详解AlexNet(附代码实现)
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]本文是卷积神经网络结构系列专题第二篇文章,前面我们已经介绍了第一个真正意义 ...
- 【卷积神经网络结构专题】一文详解LeNet(附代码实现)
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 近期,公众号将推出卷积神经网络结构系列专题文章,将深入浅出的为大家介绍从1998年 ...
- 卷积神经网络结构可视化工具PlotNeuralNet
卷积神经网络结构可视化 简介 本文介绍的工具是针对卷积神经网络示意图可视化的,不包括算图.(示意图一般出现在论文中)常见的卷积神经网络示意图绘制工具不少,常用的主要有NN SVG.ConvNetDra ...
最新文章
- jmeter connection reset解决方法
- zemax验证高斯公式_ZEMAX 实验讲义
- 华为屏下前置摄像头专利曝光:消灭刘海
- 【Elasticsearch】Elasticsearch通过reroute api 重新分配分片
- In fact, at this stage, neither the 65W
- 在Sql Server 2008上安装SDE 9.3
- 字符串,列表,元组,字典基本函数
- c语言数据结构和数据类型_C语言中的数据类型
- leetcode第1282题
- ubuntu更改网卡设置等出现输入default keyring密码的解决方法
- cobalt strick 4.0 系列教程(4)---监听器和基础设施管理
- 启动日志中出现The APR based Apache Tomcat Native library which allows optimal performance in production env
- split().reverse().join()放一起 好记很多
- 使用table标签制作常用的html表格
- c 语言中是什么作用是什么意思,在C语言中%C是什么意思
- 一、SM1P可编程步进电机控制器简介
- 2009年国际电力行业十大新闻
- 计算机桌面上字太宽怎么办,电脑屏幕字体怎么变大_电脑字体变大如何调-win7之家...
- python删除元素del 可以删除部分元素吗_可以使用del删除集合中的部分元素。
- 椭球面投影面积计算(使用GeographicLib库)
热门文章
- 杀毒软件哪个好?2011年12月(第六次)VB100认证结果出炉
- 惠普暗影2 pro ubuntu16.04安装nvidia显卡驱动
- live555 RTSP服务器与客户端通信源码分析
- C#中使用SHFileOperation调用Windows的复制文件对话框
- python写诗代码_我们分析了超过50万首诗歌,教你用代码写诗(附代码)
- win7关闭UAC的方法
- 4. 木马病毒和免杀技术,另一种免杀思路
- 数据库名、实例名、数据库域名、全局数据库名、服务名 ,
- qq轻聊版打开后显示服务器返回数据错误,电脑qq登录报错误报告如何处理_qq打开显示错误报告的解决方法...
- oracle打cve补丁,Oracle多个产品高危漏洞补丁安全预警