Dense Convolutional Network(DenseNet)是CVPR2017的最佳论文。与ResNet的思想类似,DenseNet建立了前面层与后面层之间的dense connection. 此外,DenseNet通过特征在通道上的链接来实现特征重用(feature reuse)。这些改进点让DenseNet在参数量和计算量更少的情况下实现了比ResNet更出色的效果。

论文链接: Densely Connected Convolutional Networks

DenseNet网络结构

DenseNet网络结构图

上图为论文中给出的DenseNet网络结构图,共由五层的dense block组成,增长率k=4.

DenseNet网络结构的特点在于每一层网络都会与前面的所有层在channel维度上连接到一起,连接方式为concat(而非Resnet的对应相加方式),concat后的特征图作为下一层的输入部分。因此对于一个层数为L的网络,网络中共包括L(L+1)/2个连接。

通过cancat方式,DenseNet可以直接实现特征重用,让深层的网络也能够直接拿到之前几层网络的特征。这是DenseNet与ResNet的明显的区别之一。

Dense connectivity

为了进一步改善层与层之间的信息流,DenseNet提出了一种不同于ResNet的连接方式:引入了一种从任一层到后续所有层之间的直接连接。

第l层接收了之前所有层的特征图作为输入: $$ X_l = H_l([ X_0, X_1, …, X_{l-1} ]) $$ 其中[]方括号圈起的部分表示将0层至l-1层的特征图进行连接。正是由于这样的密集连接,作者将该网络命名为DenseNet.

Composite function

DenseNet中将 $$ H_l(·) $$ 定义为三个连续操作的复合函数,这三个操作分别是:BN,ReLU以及3x3的卷积层。

Pooling layers

为了便于进行下采样的操作,在DenseNet网络架构中作者将网络划分为多个密集连接的Dense Block.将这些dense blocks之间进行卷积和池化的层称为transition layers. 实验中使用的trasition layer由一个BN层和一个1x1的卷积层以及一个2x2的平均池化层组成。

DenseNet网络结构图

Growth rate k

k是一个超参数,叫做学习率。如果每个H函数生成k个特征图,那么第l层就有 $$ k_0 + k\times(l-1) $$ 输入特征图,其中k0是输入层的通道数量。

一个相对小的学习率对于模型取得SOTA的水平起到了很好的作用。可以将特征图看作网络的全局的状态,而每一层都将自己的k的特征图添加到这一全局状态里。增长率u耳钉了每一层为全局状态提供多少新信息量。一旦将这些信息加入全局状态后,就可以从在该层之后的网络的任何位置对其进行访问。与传统的网络架构不同的是, 这种特征无需在层与层之间进行复制。

Bottleneck layers

虽然学习率k通常取较小的数,即每层只提供k个特征图,但随着网络层数的增加,网络的参数量和计算量会变得很大。为此引入bottleneck layer,在每个3x3卷积之前引入1x1卷积作为“瓶颈”,进行将为操作,以减少输入特征图的数量。

下表是DenseNet的具体网络结构

DenseNet网络结构表

Feature Reuse

DenseNet让每一层网络都能接触所有在其之前的网络层。通过实验画出热力图可以发现如下规律:

  • 较早层提取的特征直接被同一个Dense Block深层使用。
  • 第2个和第3个dense block内的层始终为transition layer输出最小的权重,这表明transition layer输出了很多冗余特征。
  • 尽管实验结果显示最终的分类层使用了整个dense block的权重,但似乎集中在最终的特征图上。这说明网络后期可能会产生一些更高级的特征。

Experitments

网络实验结果1

网络实验结果2

Conclusion

通过在具有同等大小的特征图的任意层之间增加连接的方式,DenseNet可以很轻易地拓展到数百层,并且没有显示出优化困难。DenseNet会随着参数数量的增加而不断提高准确性,并且不会出现性能下降或者过拟合的迹象。DenseNet使用了更少的的参数量和更少的计算量实现了SOTA水平。相信如果对DenseNet进一步调整超参数和学习率,该网络可以达到更好的效果。

DenseNet相比于ResNet的改进之处:

  • 比ResNet拥有更少的参数数量
  • Bypass 加强了 feature reuse (特征重用)
  • 网络更易于训练,并具有一定的正则效果
  • 一定程度上缓解了梯度消失和网络退化问题