Densely Connected Convolutional Networks(论文解读三)

目录

DenseNet:论文解读

1. Abstract 

2. Related work

2.1 通过级联来加深网络

2.2 通过 shortcut 连接来加深网络

2.3 通过加宽网络来使网络更深

2.4 提高特征重用

2.5 其他一些工作:

3. DenseNet

3.1 Composite functio                                               ​

3.2 Transition layer

3.3  Growth rate​  ​

4. Experiments  

4.1 实验结果

5. conclusion

参考文献:


DenseNet:论文解读

  • Title:Densely Connected Convolutional Networks
  • Data:2019/05/10
  • Abstract:DenseNet脱离了加深网络层数(ResNet)和加宽网络结构(Inception)来提升网络性能的定式思维,从特征的角度考虑,通过特征重用和旁路(Bypass)设置,既大幅度减少了网络的参数量,又在一定程度上缓解了gradient vanishing问题的产生.
  • Inclusion :CVPR2017 best paper

     

1. Abstract 

论文提出一种卷积神经网络模型,DenseNet

DenseNet在ResNet的基础上(ResNet介绍),进一步扩展网络连接,该层前面所有层的feature map都是这层的输入,该层的feature map是后面所有层的输入。网络结构如下:

                     

原本L层上有L个连接,

创新:

(1) 相比ResNet拥有更少的参数数量.

(2) 旁路加强了特征的重用.

(3) 网络更易于训练,并具有一定的正则效果.

(4) 缓解了gradient vanishing和model degradation的问题.

动机:随着CNN网络层数的不断增加,gradient vanishing和model degradation问题出现在了人们面前,BatchNormalization的广泛使用在一定程度上缓解了gradient vanishing的问题,而ResNet和Highway Networks通过构造恒等映射设置旁路,进一步减少了gradient vanishing和model degradation的产生。


2. Related work

2.1 通过级联来加深网络

80年代的 级联结构和 DenseNet 有点相似。但那时的主要目的是为了逐层训练多层感知器。最近,提出使用batch梯度下降训练全连接级联网络。虽然在小数据集上有效,但这个方法最大只适用于几百个参数的网络。通过skip-connection 在 CNN 中使用多级别特征已经被证明是有效的。提出的跨层连接(skip-connections)的理论框架和 DenseNet 类似。

2.2 通过 shortcut 连接来加深网络

Highway 网络是第一个将端到端的网络深度做到100层,使用带选通单元的旁路路径(gating mapping),ResNet 在 Highway 的基础上,将 gating mapping 改为 identity mapping。Stochastic depth ResNet 通过随机 dropout 掉一些 identity mapping 来强制学习,这表明,ResNet中有很多冗余层,DenseNet 就是受这个启发做的。

2.3 通过加宽网络来使网络更深

GoogLeNet 使用 Inception 模块加宽了网络,主要使用1*1卷积进行降维,在尺度上同时进行卷积在聚合。WRN 加宽了 ResNet,FractalNet 也加宽了网络。

但是ResNet和真正的宽模型还是不同的:Forward 时两者可以看做相同,但 backward 时有部分 gradient 路径无法联通。也就是说, ResNet 在回传 gradient 时,尚有提升的空间,这就是为什么 ResNeXt,Wide-ResNet 等文章能有提升的原因:因为 ResNet 并不是真正的宽模型。

以ResNet中一个Residual unit的gradient回传为例,示意图如下:

KaTeX parse error: No such environment: align at position 7: \begin{̲a̲l̲i̲g̲n̲}̲ y_2 &= y_1+f_2…

2.4 提高特征重用

相比通过加深、加宽网络来增强表示能力,DenseNet 关注特征重用。dense 架构容易训练,并且参数更少。特征图谱通过 concat 聚合可以增加后面层输入的变化,提高效率。DenseNet 与 ResNet 的主要区别就是:

1. DenseNet 关注 特征重用。

2. 使用 concate 来聚合 特征图谱。Inception 中也有用 concatenate 来聚合信息,但 DenseNet 更简单高效。

2.5 其他一些工作:

NIN 将微型 mlp 结构引入 conv 来提取更加复杂的特征,Deeply Supervised Network (DSN) 添加辅助 loss 来增强前层的梯度。Ladder Networks 在 自动编码器 中引入了横向连接,Deeply-Fused Nets (DFNs) 提高信息流。


3. DenseNet

既然 Residual Connection 能够让模型趋向于宽网络,那么为什么不直接来个狠得,这就是 Densenet论文核心思想:对每一层的前面所有层都加一个单独的 shortcut到该层,使得任意两层网络都可以直接“沟通”。即下图:

好处:

  1. 从feature来考虑,每一层feature 被用到时,都可以被看作做了新的 normalization,从实验结果看到即便去掉BN, 深层 DenseNet也可以保证较好的收敛率。
  2. 从perceptual field来看,浅层和深层的field 可以更自由的组合,会使得模型的结果更加robust。
  3. 从 wide-network 来看, DenseNet 看以被看作一个真正的宽网络,在训练时会有比 ResNet 更稳定的梯度,收敛速度自然更好(paper的实验可以佐证)
     

假设输入为一个图片 X_{0} , 经过一个L层的神经网络, 其中第i层的非线性变换记为 H_{i} (*), H_{i} (*)可以是多种函数操作的累加如BN、ReLU、Pooling或Conv等. 第i层的特征输出记作 X_{i} .

DenseNet中每层的输入是前面的所有层,故任何两层之间都有连接。但在实际情况下,因为多层之间feature maps大小不同,不便于任何两层之间的组合,受到GoogleNet的启发,**论文提出了Dense Block,即在每个Block内,所有layer都保持dense connectivity,而在Block之间是没有dense connectivity,而是通过transition layer连接的。

3.1 Composite function

即单个Block内,层与层之间的非线性转换函数就是Composite function,,每个Composite function的结构如下:

                                               

3.2 Transition layer

不同层的feature map大小不同,考虑到池化层在CNN模型内的重要性,提出一个Transition layer用于连接Block与Block,每个Transition layer的结构如下:

                                                                    

3.3  Growth rate

如果一个输出k个feature maps,那么第L层有个feature maps输入。k0 是输入层的通道数。如果k 太多,即feature map太多,从而导致模型参数太多。这里我们定义Growth rate就是超参数k,用于控制feature maps的数量。

 


4. Experiments

所有的网络都是使用SGD训练的,具体的batch和learning rate设置如下:

 

4.1 实验结果

DenseNet在CIFAR和SVHV上的表现如下:

    不同层数DenseNet表现,以及对比了ResNet 和DenseNet,可以看出,相同性能 DenseNet 的参数更少,推理时的计算量也更小:  

                 

​    
 

相同性能下,DenseNet 的参数量是 ResNet 的三分之一;1001层的pre-activation ResNet(参数为10M)的性能和100层的 DenseNet (参数为0.8M)相当。说明 DenseNet 的参数利用效率更高。


5. conclusion

从上图中我们可以看出DenseNet的参数效率:左图包含了对多种DenseNet结构参数和最终性能的统计,我们可以看出当模型实现相同的test error时,原始的DenseNet往往要比DenseNet-BC拥有2-3倍的参数量.中间图为DenseNet-BC与ResNet的对比,在相同的模型精度下,DenseNet-BC只需要ResNet约三分之一的参数数量.右图为1001层超过10M参数量的ResNet与100层只有0.8M参数量的DenseNet-BC在训练时的对比,虽然他们在约相同的训练epoch时收敛,但DenseNet-BC却只需要ResNet不足十分之一的参数量.

Implicit Deep Supervision
解释DenseNet为何拥有如此高性能的另一个原因是网络中的每一层不仅接受了原始网络中来自loss的监督,同时由于存在多个bypass与shortcut,网络的监督是多样的.Deep supervision的优势同样在deeply-supervised nets (DSN)中也被证实.(DSN中每一个Hidden layer都有一个分类器,强迫其学习一些有区分度的特征).与DSN不同的是,DenseNet拥有单一的loss function, 模型构造和梯度计算更加简易.

 Feature Reuse
在设计初,DenseNet便被设计成让一层网络可以使用所有之前层网络feature map的网络结构,为了探索feature的复用情况,作者进行了相关实验.作者训练的L=40,K=12的DenseNet,对于任意Denseblock中的所有卷积层,计算之前某层feature map在该层权重的绝对值平均数.这一平均数表明了这一层对于之前某一层feature的利用率,下图为由该平均数绘制出的热力图:

从图中我们可以得出以下结论:

a) 一些较早层提取出的特征仍可能被较深层直接使用

b) 即使是Transition layer也会使用到之前Denseblock中所有层的特征

c) 第2-3个Denseblock中的层对之前Transition layer利用率很低,说明transition layer输出大量冗余特征.这也为DenseNet-BC提供了证据支持,既Compression的必要性.

d) 最后的分类层虽然使用了之前Denseblock中的多层信息,但更偏向于使用最后几个feature map的特征,说明在网络的最后几层,某些high-level的特征可能被产生.
 

参考文献:

[1] 论文解读DenseNet

[2] DenseNet详解

[3] DenseNet论文笔记

 

 

 

 

 

 

 

 

 

 

 


 

 

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值