这篇论文是CVPR 2017的最佳论文,即16年的resnet之后这篇文章提出了DenseNet这样一个全新的网络框架,丰富了自LeNet至今的CNN网络体系。本着学习的态度,我趁这个周末上午学习了DenseNet的框架,主要介绍DenseNet的结构特点以及他与ResNet之间的对比。

一、介绍

CNN网络已经是近几年来用于视觉物体检测的最主要的机器学习方法了。尽管它才被提出来二十年左右,但是高速发展的硬件以及逐渐被提出来的各种网络结构已经使得深度的网络学习成为一种可能。但是随着网络层数的增加不可避免的在训练的过程中就会出现梯度消失或者梯度爆炸这样的现象。一种有效的解决方法就是通过skip增加层之间的连接,比如R二十Net以及FractalNet上都是这样去操作的。

在这篇文章中作者提出了一种新的网络结构以及更加简单的连接方式,为了保证网络中层之间1信息流的最大化互换,我们干脆连接了所有层。为了保存前馈的自然,每一层都接受来自他之前所有层的输出作为输入,所以一个N层的网络,一共存在n*(n+1)/2个的连接,下面这样图简单介绍了一个五层的DenseNet实例。

DenseNet一个重要的优点是,在相同性能或者相同层数的情况下,他需要较少的参数。这是因为它与之前所有层都有着直接连接,所以一些前面已经学习出来的特征,他不需要重复学习。经过下面的这张表格实验对比可以看出,DenseNet系列的模型无论是在错误率以及模型的精简程度上都比在之前的模型有了较大的提高。

二、模型

假设一张图片X0进过一个卷积神经网络,这个网络由L个层,每个层都实现了一个非线性变换Hl,其中l代表第多少层。Hl可以是一个由batch size,pool,convolution,Relu等混合而成的方程,我们将第l层的输出表示为Xl。

1)ResNet残差网络

传统的前馈卷积网络将第l层的输出当做第l+1层的输入。残差网络加入了skip进行连接,对非线性方程的结果加入了一个偏置。残差网络的一个优点是梯度可以直接从偏置方程从后面那些层传递到前面那些层。然而identify层与前一层输出的连接是通过求和进行的,这个过程会阻碍信息流在网络里面的传递。

2)Dense connectivity 密集连接

为了数据在层之间更好的流通我们提出了一种不同的连接方案:我们引入了所有层与他之后的层里面进行直接连接这样的机制。上面图一展现了真个模型的分布。作为结果,第l层获得了它之前所有层的特征图。x 0 ,...,xl−1 作为输入:

其中X0到Xl-1代表前面第l层的输出。由于模型的密集性,我们将这个模型称为DenseNet(密集网络)。为了易于实现,我们将上述多输入连接为一个张量。

3)Composite function复合函数

2中所提及的hl是三种连续操作的混合:首先是batch-normalization,然后之后是一个Relu的过程,最后再加上一个3*3的卷积。

4)Pooling layers 池化层

当特征图的大小改变的时候,用于方程二中的连接操作就变得不可行。然而,卷积网络中的一个重要部分就是下采样层会改变特征图的大小。为了促进我们结构里的下采样过程我们将网络分为densely连接的dense block。如图2所示,我们将block之间的层叫做转换层,转换层执行卷积和池化操作。我们实验中用到的转换层包含了一个batch normalization,一个1*1的卷积层以及一个2*2的均值池化层。

5)Growth rate

如果每个Hl产生k个特征映射关系,他就相当于第l层由k0+k*(l-1)个输入,k0是输入层的通道数。Densenet与显存网络结构一个重要的不同在于densenet可以有十分狭窄的层,我们将超参数k定义为网络的生长速率。在第四节我们展示了一个小的生长率足够获得好的表现在我们测试的数据及上。对这个的一个解释是每一层都可以访问他所在模块之前层的表现因此拥有这个网络框架的集中地信息。我们可以将这些特征图看作为网络的整体状态。生长率决定了每一层对整体状态贡献了多少新信息。这里的全局状态,不同于传统网络需要一层一层复制所有的信息。

6)bottleneck layers瓶颈层

尽管每一层只有k个输出,但是他拥有更多的输入唯独。有文章中提出这样的观点,在每个3*3的卷积之前使用1*1的卷积作为bottleneck layer可以减少输入特征层的数量,并且因此提高计算的有效性。我们发现这个设计对于densenet特别有用,所以在我们的网络中采取了这样的bottleneck layer,具体的过程是这样的BN-ReLU-Cov(1*1)-BN-ReLU-Cov(3*3)作为densenetB。在我们的实验里,我们让1*1的卷基层产生4000个特征映射。

7)Compression 压缩

为了更好的提高模型的经凑性,我们可以在转换层减少feature-map的数量。如果一个denseblock包含了m和featuremap,我们让之后的转换层输出θm个特征映射,0<θ<1被视为压缩系数,我们将θ<1的网络称为densenet-c,我们的实验中这个值为0.5,当bottleneck和θ都被用上了,我们就把这个网络称为densenet-BC。

8)Implemention Details 实现细节

在除了imagenet的所有数据上,我们是严重采用的所有densenet都包含了三个denseblock,并且每个block拥有相同层数。在进入第一个denseblock之前,一个拥有16个输出通道的卷积层先被执行了。对于卷积核大小为3*3的卷基层,每边的输入都被0填补了为了使特征图的大小固定。我们在两个denseblock之间使用2*2的均值池化层加上1*1的卷积层作为转换层。在最后一个denseblock的最后,一个全局池化以及一个softmax 分类器被执行了。三个dense block里面的特征图大小分别是32*32,16*16,8*8.在关于imagenet的实验中,我们采用了四个denseblock模块,具体细节可以见下表。

好了,到这里关于denseNet就基本介绍结束了,有兴趣的朋友可以看一下下面提供的github源码地址

https://github.com/liuzhuang13/DenseNet.在训练的过程中,可能会需要用到比较大的内存占用,作者在文章中也给出了另外一篇优化实现的论文 Memory-efficient implementation of densenets,我没有看,有兴趣的朋友可以看看。

好啦,DenseNet我到这里就看完了,欢迎大家基于更多细节与我交流学习。

学术交流可以关注我的公众号,后台留言,粉丝不多,看到必回。卑微小钱在线祈求

DenseNet(Densely Connected Convolutional Networks)学习笔记相关推荐

  1. Densely Connected Convolutional Networks 学习笔记

    github链接:https://github.com/liuzhuang13/DenseNet MXNet版本代码(有ImageNet预训练模型):https:  //github.com/mira ...

  2. 【图像分类】(DenseNet)Densely Connected Convolutional Networks

    论文名称:Densely Connected Convolutional Networks 论文下载地址:https://arxiv.org/pdf/1608.06993.pdf 论文代码地址:htt ...

  3. DenseNet: Densely Connected Convolutional Networks

    Densely Connected Convolutional Networks Tags: Backbobe 作者: Gao Huang, Zhuang Liu 发表日期: 2018 引用量: 26 ...

  4. 【论文学习】Densely Connected Convolutional Networks 学习

    [fishing-pan:https://blog.csdn.net/u013921430 转载请注明出处]   众所周知,自从ResNet 的网络结构被提出后,一直引领着深度学习的潮流,后来提出的一 ...

  5. 经典论文阅读densenet(Densely Connected Convolutional Networks)

    最近的工作表明,如果卷积网络在靠近输入的层和靠近输出的层之间包含较短的连接,则它们可以更深入,更准确和有效地进行训练.具有L层的传统卷积网络具有L个连接-每个层及其后续层之间有一个连接.对于每个层,将 ...

  6. 论文笔记:Densely Connected Convolutional Networks(DenseNet模型详解)

    [ 转载自http://www.yyliu.cn/post/7cabb4ff.html ] CVPR 2017上,清华大学的Zhuang Liu.康奈尔大学的Gao Huang和Kilian Q.We ...

  7. DenseNet:Densely Connected Convolutional Networks

    DenseNet:Densely Connected Convolutional Networks Motivation 最近的工作表明,如果卷积网络在靠近输入的层和靠近输出的层之间包含较短的连接,则 ...

  8. 深度学习论文翻译解析Densely Connected Convolutional Networks

    在开始学习之前推荐大家可以多在FlyAI竞赛服务平台多参加训练和竞赛,以此来提升自己的能力.FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台.每周免费提供项目开源算法样例,支持 ...

  9. 论文笔记:Densely Connected Convolutional Networks (2017 CVPR)

    [引用格式]:G. Huang, Z. Liu, L. Van Der Maaten and K. Q. Weinberger, "Densely Connected Convolution ...

最新文章

  1. 浅谈几种区块链网络攻击以及防御方案之女巫攻击
  2. Qt Dll总结——链接库预备知识(转载)
  3. protobuf相关:反射、rmi
  4. 天梯赛 L1-027 出租 (20 分)
  5. 附录:MySQL忘记root密码
  6. uushare新增类似美味(del.icio.us)的书签服务
  7. 前端学习(2448):发布文章功能介绍
  8. 【完结】史上最萌最认真的机器学习/深度学习/模式识别入门指导手册(四)
  9. 如何优雅地用ARM开发板搭建服务器
  10. 安装VS之后,excel每次启动都会配置Visual Studio的解决办法
  11. 基于ARM嵌入式系统的PC/104总线设计
  12. 漂泊在汉语视界中的蒙古歌者
  13. Convolution1D与Convolution2D区别
  14. 西藏计算机一级,西藏计算机等级考试级别
  15. 基于Echarts实现可视化数据大屏智慧旅游综合服务平台系统
  16. 链表-1(链表理论基础、移除链表元素、设计链表翻转链表)
  17. 成熟的人不问过去,聪明的人不问现在,豁达的人不问未来~!
  18. 电力电子产品结构设计培训
  19. Effective C++ 条款10_不止于此
  20. 员工满意度模型定期检讨工作规范有哪些?

热门文章

  1. SAMBA远程访问AirDisk,不用经过官方服务器就可以远程访问
  2. CCIE认证通过率一般是多少?
  3. HTML5+CSS期末大作业:明星主页网站设计—— 鹿晗明星(7页)带留言带音乐表格 HTML+CSS+JavaScript 学生dreamweaver网页设计作业成品
  4. 知识图谱:知识表示方法的思维导图
  5. textarea 聚焦后边框_如何更改textarea的边框颜色:focus
  6. css 弹出窗口之后的笼罩层
  7. python 储存汉字_汉字存储字节
  8. 基于SpringBoot的ERP系统,自带进销存+财务+生产功能
  9. 非应届生,没有互联网的工作经验,想转行做产品经理,为了让简历能够通过筛选,需要注意哪些关键点?
  10. 浅谈如何fltk项目编译和实现显示中文