当前位置:   article > 正文

论文笔记:Densely Connected Convolutional Networks(DenseNet模型详解)_huang g, liu z, van der maaten l, et al. densely c

huang g, liu z, van der maaten l, et al. densely connected convolutional net

CVPR 2017上,清华大学的Zhuang Liu、康奈尔大学的Gao Huang和Kilian Q.Weinberger,以及Facebook研究员Laurens van der Maaten 所作论文Densely Connected Convolutional Networks当选 ,与苹果的首篇公开论文Learning From Simulated and Unsupervised Images through Adversarial Training共同获得了2017 CVPR 最佳论文。下面我们就来看看DenseNet是何方神圣吧。


摘要

最近的研究表明,当靠近输入的层和靠近输出的层之间的连接越短,卷积神经网络就可以做得更深,精度更高且可以更加有效的训练。本文根据这一结论,提出了一种稠密卷积神经网络(Dense Convolutional Network,DenseNet),这种结构将每一层与之前所有层相连接。传统的L层卷积神经网络有L个连接——位于每一层和其后一层之间—,而我们的神经网络有个直接链接。对于每一层,其输入的特征是之前所有的层,而它自己的特征图作为之后所有层的输入。DenseNet有以下几个引人注目的优点:缓解梯度消失问题,加强特征传播,鼓励特征复用,极大的减少了参数量。我们在四个极具竞争力的物体识别标准图像库(CIFAR-10,CIFAR-100, SVHN, and ImageNet)对我们所提出的结构进行测试。结果表面DenseNet在大多数的测试图像库中都获得了最好的效果,然而它只需要很少的计算两来达到很高的性能。代码参见https://github.com/liuzhuang13/DenseNet

DenseNet与ResNet对比

作者主要受ResNet和Highway NetWorks的启发,通过与之后的某一层进行直接连接来传递信息,下面我们直观的从结构来看ResNet和DenseNet的差异。 
假设一个单张的图片输入一个有L层的卷积网络,每层的激励函数为,可以是BN、ReLU、Pooling、Conv等操作的集合。假设为第l层的输出。


mark 
最原始的前馈卷积神经网络,将第l层的输出作为第l+1层的输入,所以第l层的输出为:。


mark 
ResNet除了本层与下一层的连接之外,还增加了一个skip-connection,即将l层和l-1层的输出共同作为l+1层的输入,即,第l层的激活值不仅仅影响l+1层,而且还影响l+2层。所以第l层的输出为:。


mark 
DenseNet则是让l层的输入直接影响到之后的所有层,它的输出为:。并且由于每一层都包含之前所有层的输出信息,因此其只需要很少的特征图就够了,这也是为什么DneseNet的参数量较其他模型大大减少的原因。


DenseNet结构详解

DenseNet的整体结构包含稠密块(Dense Block)和过渡层(transition layers),可以简单来可以看作是Dense Block-transition layers-Dense Block-transition layers··· 
如下图: 
mark 
要将结构分为Dense Block和transition layers的原因是,transition layer中包含的Poling层会改变特征图的大小,而Dense Block内部必须保证特征图的大小一致,否则这种层之间的连接方式就不可行了。 
下面就来看看Dense Block内部结构吧。 
mark 
上图是一个包含五层,层宽度(Growth rate)为k=4的Dense Block,层与层之间的激励函数(即)为BN-ReLU-Conv(3x3)的结构。这个Growth rate实际上就是每一层特征图的数量,这样第l层就有个特征图了。 
为了进一步减少参数辆,作者又作了以下改进: 
* 将该为BN-ReLU-Conv(1x1)-BN-ReLU-Conv(3x3)的结构,记为DenseNet-B 
* 为了进一步减少参数量,在DenseNet-B的基础上,对过渡层的特征图进行压缩,产生个特征图,其中,为压缩因子。

下面放上一张DenseNet与现有模型实验对比图: 
duibi 
前面是深度和参数量,后面是在各图像库中测试的错误率,蓝色表明结果最优。可以看到相比于其他模型DenseNet有更少的参数且出错率更低。

缺点

DneseNet在训练时十分消耗内存,这是由于算法实现不优带来的。当前的深度学习框架对 DenseNet 的密集连接没有很好的支持,所以只能借助于反复的拼接(Concatenation)操作,将之前层的输出与当前层的输出拼接在一起,然后传给下一层。对于大多数框架(如Torch和TensorFlow),每次拼接操作都会开辟新的内存来保存拼接后的特征。这样就导致一个 L 层的网络,要消耗相当于 L(L+1)/2 层网络的内存(第 l 层的输出在内存里被存了 (L-l+1) 份)。为此作者又写了一个技术报告(Memory-Efficient Implementation of DenseNets)专门针对这一问题,介绍如何提升对内存的使用率,同时提供的Torch, PyTorch, MxNet 以及 Caffe 的实现,代码参见:

Torch implementation:https://github.com/liuzhuang13/DenseNet/tree/master/models 
PyTorch implementation:https://github.com/gpleiss/efficient_densenet_pytorch 
MxNet implementation:https://github.com/taineleau/efficient_densenet_mxnet 
Caffe implementation:https://github.com/Tongcheng/DN_CaffeScript


论文只是粗略的看了,如果还有内容会继续补充。


参考资料: 
1. CVPR 2017最佳论文作者解读:DenseNet 的“what”、“why”和“how”|CVPR 2017 
2. Huang G, Liu Z, Weinberger K Q, et al. Densely connected convolutional networks[J]. arXiv preprint arXiv:1608.06993, 2016. 
3. 如何评价Densely Connected Convolutional Networks?

  • 插入代码
  •      

DenseNet算法详解

  • u014380165
  • u014380165
  • 2017-07-15 08:24:15
  • 23202
论文:Densely Connected Convolutional Networks 论文链接:https://arxiv.org/pdf/1608.06993.pdf 代码的github链接:...

DenseNet模型

  • u012938704
  • u012938704
  • 2016-12-05 18:55:27
  • 28975
《Densely Connected Convolutional Networks》阅读笔记 代码地址:https://github.com/liuzhuang13/DenseNet 首先看一张图...

JAVA?:使用 - CSDN博客

Java基础复习第一天 1.计算机的五大组成部分:运算器,控制器,存储器,输入设备,输出设备2.DOS命令使用 打开DOS控制台的方式 win7:Window+R输入cmd win8/10:搜索cm...
  • 2018-4-12

Java中&、|、&&、||详解 - CSDN博客

1、 Java中&叫做按位与,&&叫做短路与,它们的区别是: & 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧是int时,要先把运算符...
  • 2018-3-26

DenseNet 简介

  • Bryan__
  • Bryan__
  • 2017-08-17 19:00:11
  • 4809
1.首先对深度学习做一个简单的回顾 2.介绍DenseNet 1.1 DNN回顾 如下图所示是一个基本DNN结构,通过forward传播和backword传播来训练一个模型 包含input层,...

Java之道 - CSDN博客

Java之道 Love live, Love  java! 我的消息 我的博客 我的学院 我的下载 我的收藏 消息 只看原创 按照时间检索: 搜索条件: 点击返回全部 置顶 《 Java...
  • 2018-4-24

java基本概念 - CSDN博客

1.  Java 语言的优点? 简单、高效  Java 语言与 C++ 类似,如果用户了解 C++ 和面向对象的概念,就可以很快编写出  Java 程序;此外, Java 又不同于诸如 C++ 语言...
  • 2018-3-23

DenseNet:更接近于真实神经网络的跨层连接

  • linolzhang
  • linolzhang
  • 2017-08-16 22:11:08
  • 3090
一. 提出背景       论文:Densely Connected Convolutional Networks 【点击下载】       Caffe代码:【Github】       受 High...

深度学习总结(lecture 10)DenseNet

  • malele4th
  • malele4th
  • 2018-03-03 11:18:53
  • 122
lecture 10:DenseNet 目录 lecture 10:DenseNet 目录 1、DenseNet网络结构 2、稠密连接、优点 3、DenseNet-BC 代码 4、一些...

Java历史简介 - CSDN博客

Java是一种计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。1991 年Sun公司的James Gosling等人开始开发名称为 Oak...
  • 2018-4-21
undefined

densenet代码

  • 2018年04月14日 22:28
  • 156KB
  • 下载

我读DenseNet

  • xuanwu_yan
  • xuanwu_yan
  • 2017-07-12 23:54:25
  • 2365
背景之前听说过DenseNet,再次被提起是因为七月初上交大主办的SSIST 2017,Yann Lecun的一页PPT,将其地位放置到如此之高,查了一下是CVPR 2017的一篇Oral,于是下定决...

ResNet && DenseNet(原理篇)

  • Gavin__Zhou
  • Gavin__Zhou
  • 2016-12-03 16:29:45
  • 21056
这篇博客讲现在很流行的两种网络模型,ResNet和DenseNet,其实可以把DenseNet看做是ResNet的特例 文章地址: [1]Deep Residual Learning for Im...

CVPR2017 DenseNet, Refiner

  • sylar49
  • sylar49
  • 2017-07-23 15:22:46
  • 821
师兄给我安利了CVPR2017的两篇最佳论文,就瞄了两眼;发觉最佳论文真的是简单易懂,特别是DenseNet感觉看图就可以了= = 越发觉越厉害的东西表述起来越简单,,ԾㅂԾ,, 首先是Dense...

系统学习深度学习(二十)--ResNet,DenseNet,以及残差家族

转自:http://blog.csdn.net/cv_family_z/article/details/50328175CVPR2016 https://github.com/KaimingHe/de...
  • App_12062011
  • App_12062011
  • 2017-03-15 13:19:15
  • 11023

DenseNet学习笔记

  • yaoliangsjtu
  • yaoliangsjtu
  • 2017-09-05 10:59:38
  • 949
ResNet: 模型的深度加深,学习能力增强,因此更深的模型不应当产生比它更浅的模型更高的错误率。而这个“退化”问题产生的原因归结于优化难题,当模型变复杂时,SGD的优化变得更加困难,导致了模型...

DenseNet的使用

  • mdjxy63
  • mdjxy63
  • 2017-07-30 19:02:54
  • 1419
去年提出的DenseNet获得今年CVPR2017最佳论文 在github上已经发布了代码,在此贴一下链接:https://github.com/liuzhuang13/DenseNetCaffe ...

在跑DenseNet代码的时候遇到的问题

  • mdjxy63
  • mdjxy63
  • 2017-08-05 16:24:05
  • 2255
去年新出来一个DenseNet,据说效果很好,在下载好caffemodel+deploy.prototxt之后,运行predict.py出现了如下的错误 Question:https://git...

DenseNet

  • shuzfan
  • shuzfan
  • 2017-09-22 19:44:22
  • 1671
2017CVPR Best Paper: 《Densely Connected Convolutional Networks》Github项目主页: https://github.com/liuzhu...

DenseNet-2.0.zip 17年冠军模型

  • 2017年12月14日 17:26
  • 7.61MB
  • 下载

DenseNet详细解读

  • csdnldp
  • csdnldp
  • 2017-10-26 19:11:12
  • 300
这篇文章是Densely Connected Convolutional Networks的解读,在精简部分内容的同时补充了相关的概念。如有错误,敬请指正。...

极深网络(ResNet/DenseNet): Skip Connection为何有效及其它

Residual Network通过引入Skip Connection到CNN网络结构中,使得网络深度达到了千层的规模,并且其对于CNN的性能有明显的提升,但是为何这个新结构会发生作用?这个问题其实是...
  • malefactor
  • malefactor
  • 2017-03-28 16:06:39
  • 11540

DenseNet阅读总结PPT

  • 2018年01月02日 21:35
  • 420KB
  • 下载

CVPR 2017最佳论文解读:密集连接卷积网络DenseNet

CVPR 2017最佳论文解读:密集连接卷积网络
  • zchang81
  • zchang81
  • 2017-07-26 17:49:29
  • 3512
  • 个人资料
等级: 
1级,点击查看等级说明
访问量:  1331
积分:  18
排名:  222万+
  • 文章搜索
  • 文章分类
  • 文章存档
2017年9月  (1)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/162733
推荐阅读
  

闽ICP备14008679号