DenseNet:Densely Connected Convolutional Networks
摘要
DenseNet 沿着 shortcut 连接的思想,将每一层与除该层外的所有层连接起来。每一层都将前面所有层的特征图谱作为输入(使用 concatenate 来聚合信息)。DenseNet 特点:消除了梯度消失问题,增强了特征传播,鼓励特征重用,大大减少了参数量。
DenseNet 代码:https://github.com/liuzhuang13/DenseNet
TensorFlow版的DenseNet:https://github.com/taki0112/Densenet-Tensorflow
1. 简介
想法和 ResNet 等类似,但 DenseNet 使用 concatenate 来聚合不同级别的特征(ResNet 使用的是 sum)。
DenseNet 需要更少的参数。
DenseNet 的另一个特点是 提高了整个网络的信息和梯度流动,这使得网络很容易训练。作者认为dense connection 有正则效果。
2. 相关工作
通过级联来加深网络:
- 80年代的 级联结构和 DenseNet 有点相似。但那时的主要目的是为了逐层训练多层感知器。
- 最近,【40】提出使用 batch 梯度下降训练全连接 级联网络。虽然在小数据集上有效,但这个方法最大只适用于 几百个 参数的网络
- 通过 skip-connection 在 CNN 中使用多级别特征已经被证明是有效的。
- 【1】提出的跨层连接的理论框架和 DenseNet 类似。
通过 shortcut 连接来加深网络:
- Highway 网络是第一个将网络深度做到100+(使用的是 gating mapping)
- ResNet 在 Highway 的基础上,将 gating mapping 改为 identity mapping。
- Stochastic depth ResNet 通过随机 dropout 掉一些 identity mapping 来强制学习,这表明,ResNet中有很多冗余层,DenseNet 就是受这个启发做的。
通过加宽网络来使网络更深:
- GoogLeNet 使用 Inception 模块加宽了网络
- WRN 加宽了 ResNet
- FractalNet 也加宽了网络
提高特征重用:
- 相比通过加深、加宽网络来增强表示能力,DenseNet 关注 特征重用。dense 架构容易训练,并且参数更少。特征图谱通过 concat 聚合可以增加后面层输入的变化,提高效率。DenseNet 与 ResNet 的主要区别就是:1. DenseNet 关注 特征重用。2. 使用 concate 来聚合 特征图谱。
- Inception 中也有用 concatenate 来聚合信息,但 DenseNet 更简单高效。
其他一些工作:
- NIN 将微型 mlp 结构引入 conv 来提取更加复杂的特征
- Deeply Supervised Network (DSN) 添加辅助 loss 来增强前层的梯度。
- Ladder Networks 在 自动编码器 中引入了横向连接
- Deeply-Fused Nets (DFNs) 提高信息流
3. DenseNet
ResNet
ResNet 通过 sum 来聚合信息,这有可能阻碍信息传递。
DenseNet
DenseNet 通过 concatenate 来聚合信息,这样,每一层都能把前面所有层的 特征图谱当作输入。
有3个Dense块的DenseNet
ImageNet上使用的DenseNet架构—–k表示特征图谱的个数
在DenseNet的 dense 块中使用了瓶颈结构,各组 dense 块之间为一个 transition 层(使用 conv 和 pool 进行feature map大小变换)。
为了进一步使模型紧致一点,作者在 transition 层设置一个系数 来控制 feature map 的数量
实施细节
除 ImageNet 数据集之外的模型都使用 3 个 dense 块,且各个 dense 块内的层数一样。
4. 实验
通过表2可以看出DenseNet确实很好
图3对比了ResNet 和DenseNet,可以看出,相同性能 DenseNet 的参数更少,推理时的计算量也更小。
相同性能下,DenseNet 的参数量是 ResNet 的三分之一;1001层的pre-activation ResNet(参数为10M)的性能和100层的 DenseNet (参数为0.8M)相当。说明 DenseNet 的参数利用效率更高。
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.