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 ...
随机推荐
- this 的使用方法 —— javascript中的this讲解!
从自己刚刚开始学习javascript到现在已经很久了,今天得益于新酱的细心讲解,总算是把this这个“雾中花”看清晰了. 在此首先感谢新酱的讲解 下面将this的一些基本使用和大家分享一下: 查看t ...
- AE-----界面介绍
AE-----界面介绍 一.大纲leiji 层级: 比如:高楼一层一层的盖起来的.千层蛋糕(一层一层的).地质(一层一层构造的) 图层的特征:有顺序.上面的一层总会覆盖掉下面的一层. AfterEff ...
- Elasticsearch + logstash + kibana 配置
Elasticsearch 配置 Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它: 分布式的实时文件存储,每个字段都被索引并可被搜索 分布式的实时分析搜索引擎 可以扩展 ...
- 20155314 2016-2017-2 《Java程序设计》第1周学习总结
20155314 2016-2017-2 <Java程序设计>第1周学习总结 学习目标 了解Java基础知识(已完成) 了解JVM.JRE与JDK,并下载.安装.测试JDK(已完成) 了解 ...
- TreeMap实现原理及源码分析之JDK8
转载 Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例 一.TreeMap 简单介绍 什么是Map? 在数组中我们通过数组下标来对数组内容进行索引的,而在Map中我们通过对象来对 ...
- Python自动化之traceback
import traceback try: 11/a except Exception: b = traceback.format_exc() traceback.format_exc()会存储详细的 ...
- Intellij IDEA的激活(2100年你值得拥有)
下载ide官网地址:https://download.jetbrains.com/idea/ideaIU-2018.2.7.exe 安装下一步下一步:进入安装bin目录 首先下载需要破解的jar包链接 ...
- 1549: Navigition Problem (几何计算+模拟 细节较多)
1549: Navigition Problem Submit Page Summary Time Limit: 1 Sec Memory Limit: 256 Mb Su ...
- [Phonegap+Sencha Touch] 移动开发29 安卓navigator.camera.getPicture得到图片的真实路径
原文地址:http://blog.csdn.net/lovelyelfpop/article/details/38313021 phonegap的拍照插件选择图库中的图片.代码例如以下: naviga ...
- 为Python加入默认模块搜索路径
为Python加入默认模块搜索路径 方法一:函数加入 1) import sys 2) 查看sys.path 3) 加入sys.path.append("c:\\") 方法二:改动 ...