DenseNet 论文笔记

DenseNet:Densely Connected Convolutional Networks

摘要

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

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

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

1. 简介

图1

  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 来聚合信息,这样,每一层都能把前面所有层的 特征图谱当作输入。
图2
有3个Dense块的DenseNet
表1
ImageNet上使用的DenseNet架构—–k表示特征图谱的个数

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

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

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

4. 实验

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

5. 讨论

特征重用
图5
图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.

猜你喜欢

转载自blog.csdn.net/u014061630/article/details/80790986
今日推荐