目录

  • 设计理念
  • DenseNet优势
  • DenseNet的网络基本结构图
  • Dense Block模块
  • 参考资料

论文:Densely Connected Convolutional Networks
论文链接:https://arxiv.org/pdf/1608.06993.pdf
代码的github链接:https://github.com/liuzhuang13/DenseNet
MXNet版本代码(有ImageNet预训练模型): https://github.com/miraclewkf/DenseNet

设计理念

相比ResNet,DenseNet提出了一个更激进的密集连接机制:即互相连接所有的层,具体来说就是每个层都会接受其前面所有层作为其额外的输入。图1为ResNet网络的短路连接机制(其中+代表的是元素级相加操作),作为对比,图2为DenseNet网络的密集连接机制(其中c代表的是channel级连接操作)。可以看到,ResNet是每个层与前面的某层(一般是2~3层)短路连接在一起,连接方式是通过元素级相加。而在DenseNet中,每个层都会与前面所有层在channel维度上连接(concat)在一起(这里各个层的特征图大小是相同的,后面会有说明),并作为下一层的输入。对于一个LLL层的网络,DenseNet共包含L(L+1)2\frac{L(L+1)}{2}2L(L+1)​个连接,相比ResNet,这是一种密集连接。而且DenseNet是直接concat来自不同层的特征图,这可以实现特征重用,提升效率,这一特点是DenseNet与ResNet最主要的区别。


如果用公式表示的话,传统的网络在lll层的输出为:
xl=Hl(xl−1)x_{l}=H_{l}(x_{l-1})xl​=Hl​(xl−1​)
而对于ResNet,增加了来自上一层输入的identity函数:
xl=Hl(xl−1)+xl−1x_{l}=H_{l}(x_{l-1})+x_{l-1}xl​=Hl​(xl−1​)+xl−1​
在DenseNet中,会连接前面所有层作为输入:
xl=Hl([x0,x1,...,xl−1])x_{l}=H_{l}([x_{0},x_{1},...,x_{l-1}])xl​=Hl​([x0​,x1​,...,xl−1​])
其中,上面的Hl(⋅)H_l(\cdot)Hl​(⋅)代表是非线性转化函数(non-linear transformation),它是一个组合操作,其可能包括一系列的BN(Batch Normalization),ReLU,Pooling及Conv操作。注意这里lll层与l−1l-1l−1层之间可能实际上包含多个卷积层。

DenseNet的前向过程如图3所示,可以更直观地理解其密集连接方式,比如h3h_3h3​ 的输入不仅包括来自h2h_2h2​ 的x2x_2x2​ ,还包括前面两层的x1x_1x1​ 和$x_2 ,它们是在channel维度上连接在一起的。

CNN网络一般要经过Pooling或者stride>1的Conv来降低特征图的大小,而DenseNet的密集连接方式需要特征图大小保持一致。为了解决这个问题,DenseNet网络中使用DenseBlock+Transition的结构,其中DenseBlock是包含很多层的模块,每个层的特征图大小相同,层与层之间采用密集连接方式。而Transition模块是连接两个相邻的DenseBlock,并且通过Pooling使特征图大小降低。图4给出了DenseNet的网路结构,它共包含4个DenseBlock,各个DenseBlock之间通过Transition连接在一起。

DenseNet优势

(1)解决了深层网络的梯度消失问题;
(2)加强了特征的传播 ;
(3)鼓励特征重用;
(4)减少了模型参数。

DenseNet的网络基本结构图

主要包含DenseBlock和transition layer两个组成模块。其中Dense Block为稠密连接的highway的模块,transition layer为相邻2个Dense Block中的那部分。

Dense Block模块

参考资料

DenseNet:比ResNet更优的CNN模型
DenseNet算法详解

深度学习入门笔记之DenseNet网络相关推荐

  1. 深度学习入门笔记之ALexNet网络

    Alex提出的alexnet网络结构模型,在imagenet2012图像分类challenge上赢得了冠军.作者训练alexnet网络时大致将120万张图像的训练集循环了90次,在两个NVIDIA G ...

  2. 深度学习入门笔记之GoogLeNet网络

    目录 一.简介 二.Inception网络结构各版本的演化 1 Inception单元结构 2 Inception V1 3 Inception V2--卷积核替换 4 Inception V3--卷 ...

  3. 深度学习入门笔记之VggNet网络

    VGGNet是由牛津大学的视觉几何组(Visual Geometry Group)和谷歌旗下DeepMind团队的研究员共同研发提出的,获得了ILSVRC 2014( 2014年ImageNet图像分 ...

  4. 深度学习入门笔记(八):深层网络的原理

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

  5. 深度学习入门笔记系列(三)——感知器模型和 tensorboard 的使用方法

    本系列将分为 8 篇 .今天是第三篇 .主要讲讲感知器模型和 tensorboard 的基本使用方法 . 1. 感知器模型 因为小詹之前写过一篇感知器模型的介绍 ,这里就不赘述了 .有需要巩固的点击如 ...

  6. 深度学习入门笔记系列 ( 二 )——基于 tensorflow 的一些深度学习基础知识

    本系列将分为 8 篇 .今天是第二篇 .主要讲讲 TensorFlow 框架的特点和此系列笔记中涉及到的入门概念 . 1.Tensor .Flow .Session .Graphs TensorFlo ...

  7. 深度学习入门笔记(六):误差反向传播算法

    专栏--深度学习入门笔记 推荐文章 深度学习入门笔记(一):机器学习基础 深度学习入门笔记(二):神经网络基础 深度学习入门笔记(三):感知机 深度学习入门笔记(四):神经网络 深度学习入门笔记(五) ...

  8. 深度学习入门笔记(五):神经网络的学习

    专栏--深度学习入门笔记 推荐文章 深度学习入门笔记(一):机器学习基础 深度学习入门笔记(二):神经网络基础 深度学习入门笔记(三):感知机 深度学习入门笔记(四):神经网络 深度学习入门笔记(五) ...

  9. 深度学习入门笔记(四):神经网络

    专栏--深度学习入门笔记 推荐文章 深度学习入门笔记(一):机器学习基础 深度学习入门笔记(二):神经网络基础 深度学习入门笔记(三):感知机 深度学习入门笔记(四):神经网络 深度学习入门笔记(五) ...

最新文章

  1. 集成支付宝钱包支付iOS SDK的方法与经验
  2. 各类木材强度_层状磷酸锆/ 聚磷酸铵复合阻燃剂对木材的阻燃抑烟性能研究
  3. Oracle创建用户、表空间、导入导出、...命令
  4. 【BZOJ-2668】交换棋子 最小费用最大流
  5. mysql 5.0 5.1_mysql从5.0升级到5.1
  6. 贷款用途有什么限制?非法用途有什么后果?
  7. 我最喜欢的IntelliJ IDEA功能
  8. Struts2中s:iterator/s:iterator标签的使用:
  9. 微课|中学生可以这样学Python(例5.3):报数游戏
  10. 用bitbucket积累代码
  11. OpenCV-Python实战(18)——深度学习简介与入门示例
  12. ActiveX控件注册的几种方法
  13. Redis下载与安装(Linux版)
  14. java旅游网站毕业论文_旅游网站的设计与实现
  15. 计算机休眠唤醒原理,电脑休眠和睡眠区别以及怎么唤醒
  16. IMGUI_DX11显示自定义图片
  17. 我国会计计算机的发展历程,会计的发展历程是什么
  18. JixiPix Portrait Painter for mac(照片转油画工具)
  19. 不能不知道的分布式基础理论
  20. Android笔记总结

热门文章

  1. conceptdraw office(专业办公套件) v6.0.0附安装教程
  2. String中与获取相关的几个方法
  3. 商场三十六计——第32计 “空城计”
  4. 华为鸿蒙手机什么时候出售,南财快评:鸿蒙出世,现在明白任正非为什么会说“宁可卖5G,也不会卖终端”了...
  5. 最好的android智能手表,安卓智能手表推荐?十款好用的安卓智能手表排行榜
  6. echarts画出特殊形状的柱状图
  7. python换零钱_LeetCode-python 322.零钱兑换
  8. 硅谷一万清华人,为何打不过印度人
  9. 如何用好MindMapper中的便签
  10. 函数模板和普通函数区别