DenseNet论文解读

DenseNet简介

DenseNet是CVPR2017的一篇oral paper,在获得更小的分类错误率的同时,网络模型的参数量也远小于之前的SOTA分类网络,如ResNetsHighway Networks等,并且由此获得了CVPR2017最佳论文奖。

DenseNet之前的ResNets(残差网络)的核心idea是建立前面层与后面层之间的跨层连接,而DenseNet与ResNets的区别在于DenseNet使用连结(concatenation)的连接方法,ResNets使用相加(summation)的连接方法。如下图左为ResNets--输出相加,右为DenseNet--在通道上连结:

 idea来源

从LeNet5到VGG19再到ResNets和Highway Networks,卷积神将网络变得越来越深,甚至ResNets和Highway Networks已经超过100层的壁垒。

卷积神经网络不断加深,随之也带来了梯度消失和梯度爆炸问题。于是:

1、ResNets和Highway Networks通过identity connections实现跨层连接。

2、随机深度(Stochastic depth)通过在训练过程中随机删除层来缩短ResNets,以允许更好的信息和梯度流动。

3、FractalNets重复组合多个具有不同卷积块数量的并行层序列,以获得较大的深度,同时在网络中保持许多short paths。

这些方法的特性就是,他们都在early layers和later layers之间建立了short paths。

那么能否方法这一点(建立更为极端的short paths),从而实现更大的信息与梯度的流动。

于是就有了这种密集的连接模式(dense connectivity pattern),并且为了保持前馈特性,每一层都从所有之前的层获得额外的输入,并将其自己的特征映射传递到所有后续的层。

验证idea并讨论作用机制

为了验证这一idea,开始在CIFAR-10, CIFAR-100, SVHN,和ImageNet上开始实验,在性能上都得到较好的结果。

首先为在CIFAR-10及其数据增强后的数据集, CIFAR-100及其数据增强后的数据集以及SVHN数据集上进行试验,一下均为error rate比较。

然后在Imagenet数据集的验证集上进行了crop-1和crop-10上的top-1和top-5的error rate比较。

 

Better parameter efficiency

虽然在各数据集上均取得优异的结果,但有一点counter-intuitive effect-----这种连接方式竟然比传统卷积网络需要更少的参数→→(原因)这种连接方式不需要重复学习冗余的feature-maps→→(原因)DenseNet架构明确地区分了添加到网络中的信息和被保存的信息。

易于训练

除了更好的参数效率外,DenseNets的一个大优点是改进了整个网络的信息流和梯度,这使得它们易于训练。

隐式的深度监督

每一层都可以直接从损失函数和原始输入信号中访问梯度,从而导致一个隐式的深度监督,这有助于训练更深层次的网络架构。

具备正则化效果

密集连接具有正则化效应,这减少了对具有较小训练集大小的任务的过拟合。

DenseNets

ResNets vs DenseNets(连接方式)

 由上图可看出,在ResNets中

x = H ( x ℓ- 1 ) + x ℓ- 1
而在DenseNets中
x = H ([ x 0 , x 1 , . . . , x ℓ- 1 ])

复合函数(非线性转换结构

H(·)是指三个连续操作的复合函数,即batch normalization (BN) ,紧接着是激活函数 rectifified linear unit (ReLU) 和一个 3 × 3 convolution (Conv)

池化层

当特征图的大小变化时,即x0, x1, . . . , xℓ-1的size不一致时,连结的操作就不可用。然而卷积网络的一个重要组成部分是改变特征映射大小的降采样层。

为了便于在架构中进行降采样,将网络划分为多个密集连接的密集块,块之间的层称为过渡层,包含卷积和池化操作,实验中使用的过渡层包括批处理归一化层和1×1卷积层和2×2平均池化层。

主要作用是改变特征图尺寸和通道,减少后续计算量。

 Growth rate(k-超参数

如果每个函数Hℓ产生k个特征图,那么第ℓ层有k0+k×(ℓ-1)个输入特征图,其中k0是输入层中的通道数。

Growth rate可以调节每一层对最终能够获取信息(collective knowledge)的贡献度。最终的collective knowledge可以从网络的任何地方访问,求不需要每层都复制。

Bottleneck layers

引入1×1卷积作为瓶颈层,以减少输入特征图的数量,从而提高计算效率。

从而得到新版本的复合函数Hℓ:BN-ReLU-Conv(1×1)-BN-ReLU-Conv(3×3)

Compression

为了进一步提高模型的紧致性,减少通过过渡层上的特征映射的数量,即在过渡层设置一个压缩因子,减少由上一个密集块生成并打算传递到下一个密集块中的特征映射数量。

如果一个密集的块包含m个特征映射,我们让下面的过渡层生成θm输出特征映射,其中0<θ≤1被称为压缩因子。当θ=1时,跨过渡层的特征映射的数量保持不变。

结果讨论(部分内容--对应原文第五部分discussion)

Implicit Deep Supervision

DenseNets取得好的效果的原因之一:单个层通过较短的连接从损失函数中得到额外的监督。

DenseNets取得好的效果的原因之一:DenseNets在执行一种深度监督:位于网络顶部的单个分类器通过最多两个或三个过渡层对所有层提供直接监督。

然而,由于所有层之间使用相同的损失函数,因此损失函数和梯度的复杂性大大降低。

----深度监督----

deeply-supervised nets (DSN)在每个隐藏层上都有分类器,强制中间层学习鉴别特征。

Feature Reuse.

 如上图代表具有40层,三个密集块以及Growth rate为12的DenseNets。

每一列像素点的数量表示连接数。

1.所有层都将其权重分散在同一块内的许多输入上。这表明,由非常早期的层提取的特征确实被贯穿同一密集块的深层直接使用。

2.过渡层的权重也将它们的权重分布到之前的密集块内的所有层上,表明信息从DenseNets的第一层流到最后一层。

3.第二和第三密集块内的层一致地为过渡层的输出分配最小的权重,这表明过渡层输出许多冗余特征(平均权重较低)。这与DenseNet-BC(既使用Bottleneck layers也使用Compression)的强大结果是一致的,其中这些输出恰好是被压缩的。

4.虽然最后的分类层,如图所示,也使用了整个密集块的权重,但似乎有集中于最终的特征图,这表明在网络后期可能产生了一些更高级的特征。

结论:

1、引入了任意两层之间的直接连接,且证明了DenseNets可轻易扩展到百层以上

2、随着参数数量的增加,DenseNets倾向于产生一致的精度提高,而没有任何性能下降或过拟合的迹象

3、DenseNets需要更少的参数和更少的计算即可实现最先进的性能

4、DenseNets自然地集成了身份映射、深度监督和多样化深度的属性

5、允许在整个网络中重用特征,因此可以学习更紧凑,得到更精确的模型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值