DenseNet:Densely Connected Convolutional Networks

摘要

DenseNet 沿着 shortcut 连接的思想,将每一层与除该层外的所有层连接起来。每一层都将前面所有层的特征图谱作为输入(使用 concatenate 来聚合信息)。DenseNet 特点:消除了梯度消失问题,增强了特征传播,鼓励特征重用,大大减少了参数量。

DenseNet 代码:https://github.com/liuzhuang13/DenseNet

TensorFlow版的DenseNet:https://github.com/taki0112/Densenet-Tensorflow

1. 简介

DenseNet 论文笔记

  1. 想法和 ResNet 等类似,但 DenseNet 使用 concatenate 来聚合不同级别的特征(ResNet 使用的是 sum)。

  2. DenseNet 需要更少的参数。

  3. DenseNet 的另一个特点是 提高了整个网络的信息和梯度流动,这使得网络很容易训练。作者认为dense connection 有正则效果。

2. 相关工作

通过级联来加深网络:

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

通过 shortcut 连接来加深网络:

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

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

  1. GoogLeNet 使用 Inception 模块加宽了网络
  2. WRN 加宽了 ResNet
  3. FractalNet 也加宽了网络

提高特征重用:

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

其他一些工作:

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

3. DenseNet

ResNet
ResNet 通过 sum 来聚合信息,这有可能阻碍信息传递。

DenseNet
DenseNet 通过 concatenate 来聚合信息,这样,每一层都能把前面所有层的 特征图谱当作输入。
DenseNet 论文笔记
有3个Dense块的DenseNet
DenseNet 论文笔记
ImageNet上使用的DenseNet架构—–k表示特征图谱的个数

在DenseNet的 dense 块中使用了瓶颈结构,各组 dense 块之间为一个 transition 层(使用 conv 和 pool 进行feature map大小变换)。

为了进一步使模型紧致一点,作者在 transition 层设置一个系数 θ 来控制 feature map 的数量

实施细节
除 ImageNet 数据集之外的模型都使用 3 个 dense 块,且各个 dense 块内的层数一样。

4. 实验

DenseNet 论文笔记
通过表2可以看出DenseNet确实很好
DenseNet 论文笔记
图3对比了ResNet 和DenseNet,可以看出,相同性能 DenseNet 的参数更少,推理时的计算量也更小。
DenseNet 论文笔记
相同性能下,DenseNet 的参数量是 ResNet 的三分之一;1001层的pre-activation ResNet(参数为10M)的性能和100层的 DenseNet (参数为0.8M)相当。说明 DenseNet 的参数利用效率更高。

5. 讨论

特征重用
DenseNet 论文笔记
图5显示了每个 dense 块内的特征重用。

参考文献:

C. Cortes, X. Gonzalvo, V. Kuznetsov, M. Mohri, and S. Yang. Adanet: Adaptive structural learning of artificial neural networks. arXiv preprint arXiv:1607.01097, 2016.

B. M. Wilamowski and H. Yu. Neural network learning without backpropagation. IEEE Transactions on Neural Networks, 21(11):1793–1803, 2010.

相关文章:

  • 2021-07-25
  • 2022-01-09
  • 2021-09-26
  • 2021-06-21
  • 2021-09-16
  • 2022-12-23
  • 2021-06-11
  • 2021-10-24
猜你喜欢
  • 2021-05-23
  • 2021-07-21
  • 2022-02-07
  • 2021-07-07
  • 2021-04-10
  • 2021-08-03
  • 2021-09-08
相关资源
相似解决方案