笔者所写博文皆为自己浏览学习之后的心得或笔记,想与读者共同学习进步,欢迎指导交流。若内容有不当或侵权,请联系笔者修改或删除。致谢!

今天看到一篇来自公众号讲解深度卷积神经网络结构的文章,获益匪浅,结合之前的笔记,自己做一个总结便于查询,笔者主要是提出各个网络的创新点等,具体的概念博文中不作解释,有更多更好详细的讲解。即本文旨在了解网络结构的变化演进。

先贴连接:深度卷积神经网络演化历史及结构改进脉络-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等。此外,对网络结构其他部分常用的方法要理解透彻,例如优化器的各种优化方法,激活函数损失函数的选择等,读者可以自己详读开篇的文章。

深度卷积神经网络结构演变相关推荐

  1. 深度卷积神经网络结构,基于深度卷积神经网络

    深度学习与神经网络有什么区别 深度学习与神经网络关系2017-01-10最近开始学习深度学习,基本上都是zouxy09博主的文章,写的蛮好,很全面,也会根据自己的思路,做下删减,细化. 五.Deep ...

  2. 基于深度卷积神经网络,深度卷积神经网络结构

    1.卷积神经网络算法是什么? 一维构筑.二维构筑.全卷积构筑. 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Fe ...

  3. 深度学习之卷积神经网络(2)卷积神经网络结构

    深度学习之卷积神经网络(2)卷积神经网络结构 1. 单通道输入和单卷积核 2. 多通道输入和单卷积核 3. 多通道输入.多卷积核 4. 步长 5. 填充  卷积神经网络通过充分利用局部相关性和权值共享 ...

  4. 机器学习——深度学习之卷积神经网络(CNN)——AlexNet卷积神经网络结构

    目录 一.AlexNet卷积神经网络结构模型 1.数据库ImageNet 2.AlexNet第一层卷积层 二.AlexNet卷积神经网络的改进 1.非线性变化函数的改变--ReLU 2.最大池化(Ma ...

  5. 机器学习——深度学习之卷积神经网络(CNN)——LeNet卷积神经网络结构

    目录 一.卷积神经网络 1.卷积神经的作用 2.LeNet 1)数据库准备--minst 2)模型· 二.关于卷积神经网络结构的一些术语定义 1.特征图(Feature map) 2.height(长 ...

  6. 深度学习 | MATLAB实现CNN卷积神经网络结构及参数概述

    深度学习 | MATLAB实现CNN卷积神经网络结构及参数概述 目录 深度学习 | MATLAB实现CNN卷积神经网络结构及参数概述 基本介绍 模型描述 训练过程 计算函数 参考资料 基本介绍 卷积神 ...

  7. 【卷积神经网络结构专题】经典网络结构之VGG(附代码实现)

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]本文是卷积神经网络结构系列专题第三篇文章,前面我们先后介绍了LeNet和A ...

  8. 【卷积神经网络结构专题】一文详解AlexNet(附代码实现)

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]本文是卷积神经网络结构系列专题第二篇文章,前面我们已经介绍了第一个真正意义 ...

  9. 【卷积神经网络结构专题】一文详解LeNet(附代码实现)

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 近期,公众号将推出卷积神经网络结构系列专题文章,将深入浅出的为大家介绍从1998年 ...

  10. 卷积神经网络结构可视化工具PlotNeuralNet

    卷积神经网络结构可视化 简介 本文介绍的工具是针对卷积神经网络示意图可视化的,不包括算图.(示意图一般出现在论文中)常见的卷积神经网络示意图绘制工具不少,常用的主要有NN SVG.ConvNetDra ...

最新文章

  1. jmeter connection reset解决方法
  2. zemax验证高斯公式_ZEMAX 实验讲义
  3. 华为屏下前置摄像头专利曝光:消灭刘海
  4. 【Elasticsearch】Elasticsearch通过reroute api 重新分配分片
  5. In fact, at this stage, neither the 65W
  6. 在Sql Server 2008上安装SDE 9.3
  7. 字符串,列表,元组,字典基本函数
  8. c语言数据结构和数据类型_C语言中的数据类型
  9. leetcode第1282题
  10. ubuntu更改网卡设置等出现输入default keyring密码的解决方法
  11. cobalt strick 4.0 系列教程(4)---监听器和基础设施管理
  12. 启动日志中出现The APR based Apache Tomcat Native library which allows optimal performance in production env
  13. split().reverse().join()放一起 好记很多
  14. 使用table标签制作常用的html表格
  15. c 语言中是什么作用是什么意思,在C语言中%C是什么意思
  16. 一、SM1P可编程步进电机控制器简介
  17. 2009年国际电力行业十大新闻
  18. 计算机桌面上字太宽怎么办,电脑屏幕字体怎么变大_电脑字体变大如何调-win7之家...
  19. python删除元素del 可以删除部分元素吗_可以使用del删除集合中的部分元素。
  20. 椭球面投影面积计算(使用GeographicLib库)

热门文章

  1. 杀毒软件哪个好?2011年12月(第六次)VB100认证结果出炉
  2. 惠普暗影2 pro ubuntu16.04安装nvidia显卡驱动
  3. live555 RTSP服务器与客户端通信源码分析
  4. C#中使用SHFileOperation调用Windows的复制文件对话框
  5. python写诗代码_我们分析了超过50万首诗歌,教你用代码写诗(附代码)
  6. win7关闭UAC的方法
  7. 4. 木马病毒和免杀技术,另一种免杀思路
  8. 数据库名、实例名、数据库域名、全局数据库名、服务名 ,
  9. qq轻聊版打开后显示服务器返回数据错误,电脑qq登录报错误报告如何处理_qq打开显示错误报告的解决方法...
  10. oracle打cve补丁,Oracle多个产品高危漏洞补丁安全预警