DenseNet——Densely Connected Convolutional Networks
1. 摘要
传统的 L 层神经网络只有 L 个连接,DenseNet 的结构则有 L(L+1)/2 个连接,每一层都和前面的所有层进行连接,所以称之为密集连接的网络。
针对每一层网络,其前面所有层的特征图被当作它的输入,这一层的输出则作为其后面所有层的输入。
DenseNet 有许多优点:消除了梯度消失问题、加强了特征传播、鼓励特征复用并且大大减少了参数的数量。
2. 介绍
随着卷积神经网络变得越来越深,一个新的问题出现了:输入信息或者梯度在很多层之间传递的过程中会渐渐消失并且被洗掉。很多最近的工作都在尝试解决这个问题,它们都有一个共同的特点:在前面的层和后面的层之间创建捷径,也就是跳跃连接。
在本文中,作者则将这种认识提炼成一种简单的连接模式:为了保证网络中层与层之间最大的信息流动,我们直接把特征图大小匹配的所有层直接相连。

如上图所示,每一层都获取其前面所有层的特征图作为输入,并且将自己的特征图作为随后所有层的输入。但是,不同于 ResNet,作者是将特征按照通道拼接在一起而不是通过相加的操作。
这种密集连接模式的一个反直觉效果可能是它需要比传统卷积网络更少的参数,因为不需要重新学习冗余特征映射。传统的网络结构可以看作是一个具有状态的算法,每一层都读取它前面层的状态并且向下一层写入一个新的状态。改变状态的同时也需要传递一些需要保留的信息。ResNet 通过相加的恒等映射来保留信息,但是一些研究表明很多层贡献非常小甚至可以被随机丢弃掉。但是,DenseNet 的结构明确区分了要添加到网络的信息和保留的信息,因此它的网络非常窄(例如,每层 12 个卷积核),只为网络的“集体知识”添加一小组特征图,并保持其余的特征图不变,而最终的分类器则根据网络中的所有特征图来决策。
除此之外,DenseNet 的一大优势是它改善了整个网络中信息和梯度的流动,使其易于训练。每一层网络都可以直接访问到原始的输入信号,以及来自于损失函数的梯度,这有助于更深的网络架构的训练。而且,密集的连接也具有正则化的效果,这减小了在较小数据集上任务的过拟合风险。
相较于之前的设计通过特别深或者特别宽的结构来获取表示能力,DenseNet 则通过特征复用来开发网络的潜力,从而产生了易于训练和高参数效率的压缩模型。将不同层学习到的特征图拼接在一起增加了后续层输入的变化并提高了效率。
3. 网络结构
- Dense connectivity
第 L 层网络接受其前面所有层网络的特征图作为输入,

为了便与实现,作者将多个输入直接拼接成一个张量。
- Composite function
H 则是一个包含连续三个操作的复合函数:BN,ReLU,以及一个 3×3 的卷积。
- Pooling layers
特征图大小不一致时我们就无法进行对它们进行拼接了,但是卷积神经网络中必要的下采样层一定会改变特征图大小。因此,作者将网络划分为几个密集连接块,块与块之间的层称之为过渡层,来进行卷积和池化。作者实验中的过渡层采用的是 BN、1×1 的卷积以及 2×2 的平均池化。

- Growth rate
在一个 Dense 块内,如果每一层网络产生 k 个特征图,那么经过 L-1 层网络后,输入的特征图就会增加 k*(L-1) 个,作者将超参数 k 称之为网络的增长率。DenseNet 与现有网络结构的一个不同就是它的网络层可以非常窄,作者发现一个相对比较小的增长率就足以取得最好的结果。
- Bottleneck layers
在 3×3 的卷积前面引入 1×1 的卷积可以减少特征图的数量,因此提升计算效率。作者将这种引入了瓶颈结构的模型称之为 DenseNet-B,它们的结构是这样的:BN-ReLU-Conv(1×1)-BN-ReLU-Conv(3×3),其中,1×1 的卷积输出 4*k 个特征图。
- Compression
为了进一步提升模型的紧凑性,在过渡层也可以对特征图数量进行减少。如果一个 Dense 块有 m 个特征图,我们让紧随其后的过渡层产生 am 个特征图。0<a<= 1,a=1 时,特征图适量保持不变。a<1 时的模型称之为 DenseNet-C。如果瓶颈层和过渡层的 a 都小于 1,这时的模型称之为 DenseNet-BC。
- Implementation Details

4. 实验结果
4.1. CIFAR and SVHN 分类

在没有压缩和瓶颈层的情况下,DenseNets 随着网络层数和增长率的增加表现逐渐变好,作者将此归结为网络容量增加的结果。
我们的 250 层模型只有 15.3M 个参数,但却比 FractalNet 和 Wide ResNets 这些拥有超过 30M 参数的模型表现要好。
4.2. ImageNet 分类

DenseNet 在更少的参数量下取得了比 ResNet 更好的效果,而且这是在超参数针对 ResNet 最优的情况下测试的,也就是说,DenseNet 仍然还有进步空间。
5. 讨论
- Model compactness

DenseNet-BC 要达到和 ResNet 一样的效果,只需要其三分之一的参数量即可。
- Implicit Deep Supervision
对 DenseNet 准确率提升的一种解释可能是各个层都通过跳跃连接接受到来自损失函数的额外监督,这可以理解为 DenseNet 执行了一种“深度监督”。
- Feature Reuse

其中,(l, s) 位置的颜色代表 l 层利用 s 层的特征图的程度,越接近红色,说明利用越强。可以发现:
- 所有层都将权重分布在同一 Dense 块内的许多输入上,这表明由非常早的层提取的特征实际上可以直接被深层使用。
- 过渡层也将权重分布在前面 Dense 块内的所有层上,这表明在 DenseNet 中信息大都可以直接从第一层流到最后一层。
- 第二三个 Dense 块对上一个过渡层的输入分配了最少的权重,说明过渡层有大量冗余特征,这也就是 DenseNet-BC 中采取压缩的好处。
- 分类层的权重更集中于最后一层的特征,说明这里可能有更多高层次的特征。
获取更多精彩,请关注「seniusen」!

DenseNet——Densely Connected Convolutional Networks的更多相关文章
- Deep Learning 33:读论文“Densely Connected Convolutional Networks”-------DenseNet 简单理解
一.读前说明 1.论文"Densely Connected Convolutional Networks"是现在为止效果最好的CNN架构,比Resnet还好,有必要学习一下它为什么 ...
- Densely Connected Convolutional Networks 论文阅读
毕设终于告一段落,传统方法的视觉做得我整个人都很奔溃,终于结束,可以看些搁置很久的一些论文了,嘤嘤嘤 Densely Connected Convolutional Networks 其实很早就出来了 ...
- 深度学习论文翻译解析(十五):Densely Connected Convolutional Networks
论文标题:Densely Connected Convolutional Networks 论文作者:Gao Huang Zhuang Liu Laurens van der Maaten Kili ...
- 【Network Architecture】Densely Connected Convolutional Networks 论文解析
目录 0. Paper link 1. Overview 2. DenseNet Architecture 2.1 Analogy to ResNet 2.2 Composite function 2 ...
- Paper | Densely Connected Convolutional Networks
目录 黄高老师190919在北航的报告听后感 故事背景 网络结构 Dense block DenseNet 过渡层 成长率 瓶颈层 细节 实验 发表在2017 CVPR. 摘要 Recent work ...
- Densely Connected Convolutional Networks(緊密相連卷積網絡)
- Dense blocks where each layer is connected to every other layer in feedforward fashion(緊密塊是指每一個層與每 ...
- 【文献阅读】Densely Connected Convolutional Networks-best paper-CVPR-2017
Densely Connected Convolutional Networks,CVPR-2017-best paper之一(共两篇,另外一篇是apple关于GAN的paper),早在去年八月 De ...
- (转)ResNet, AlexNet, VGG, Inception: Understanding various architectures of Convolutional Networks
ResNet, AlexNet, VGG, Inception: Understanding various architectures of Convolutional Networks by KO ...
- VGGNet论文翻译-Very Deep Convolutional Networks for Large-Scale Image Recognition
Very Deep Convolutional Networks for Large-Scale Image Recognition Karen Simonyan[‡] & Andrew Zi ...
随机推荐
- Hadoop学习之路(十一)HDFS的读写详解
HDFS的写操作 <HDFS权威指南>图解HDFS写过程 详细文字说明(术语) 1.使用 HDFS 提供的客户端 Client,向远程的 namenode 发起 RPC 请求 2.name ...
- Day3 分支结构和循环结构
流程控制分类 顺序语句:从上到下按顺序依次执行 分支语句:根据条件不同,执行不同语句 循环语句:重复执行某些动作 单分支条件判断语句 条件语句 只是单独的判断条件是否成立 if选择结构是根据条件判断之 ...
- linux下10款markdown软件
原文:https://linux.cn/article-7623-1.html 在这篇文章中,我们会点评一些可以在 Linux 上安装使用的最好的 Markdown 编辑器. 你可以在 Linux 平 ...
- 20165302 ch02 课下作业
20165302 ch02 课下作业 作业内容 补充完成课上测试(不能只有截图,要有分析,问题解决过程,新学到的知识点) 完成教材 p97 2.96 2.97,要有完备的测试 发一篇相关内容的博客, ...
- 手动安装sublime插件babel-sublime
(一)手动安装babel 在开发reactjs开发使用sublime时,想要代码高亮显示,需要安装babel-sublime插件,在Preferences中的Package Control菜单搜索In ...
- Oracle(二)SELECT语句执行顺序
转载自:小强斋太-Study Notes,原文链接 从join on和where执行顺序认识T-SQL查询处理执行顺序 目录 一.样例 二.SELECT语句的处理过程 1. FROM阶段 2. WHE ...
- vue组件懒加载(Load On Demand)
在Web应用程序中,系统的瓶颈常在于系统的响应速度.如果系统响应速度过慢,用户就会出现埋怨情绪,系统的价值也因此会大打折扣.因此,提高系统响应速度,是非常重要的. 懒加载(Load On Demand ...
- mysql/mariadb学习记录——创建删除数据库、表的基本命令
查看已有的数据库: mysql> show databases; +--------------------+ | Database | +--------------------+ | inf ...
- Mac设置信认任意来源应用
升级了Mac 10.13.4 后应用软件各种不适配,最近更新了一个应用版本,在去安全设置里面 信任应用的时候,发现"任何来源"这个选项不见了!不见了!WTF! 接下来,我们就打开终 ...
- nginx负载均衡及配置
nginx负载均衡及配置 1 负载均衡概述 负载均衡由来是因为当一台服务器单位时间内的访问量很大时,此时服务器的压力也会很大,当超过自身承受能力时,服务器就会崩溃.为避免让服务器崩溃,用户拥有更好的体 ...