DenseNet

原文链接:https://arxiv.org/abs/1608.06993

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

创新点:DenseNet作为2017CVPR最佳论文,其在ResNet基础上,提出了更优秀的shortcut方式,Dense Connection 不仅能使得feature更加强健,还能带来更快的收敛速度。并且DenseNet具有比ResNet更少的参数,在测试时具有更快的速度

1、简介

在传统的ResNet中,layer与layer之间具有L个connection,DenseNet在ResNet的shorter connection的基础上,在每个Layer之间均加入shorter connection,共包含 L(L+1)2 L ( L + 1 ) 2 个连接。如下图1所示。
不同于ResNet,DenseNet采用concatenation的方式进行特征图的叠加,而ResNet采用相加的方式进行叠加。
DenseNet 特征重用,使得denseNet更容易去训练,具有更高的效率。
DenseNet_第1张图片

图1,5layers dense block

DenseNet需要更少的参数,
作者指出,最近对ResNet的研究表明,ResNet的很多层在训练的过程中贡献较小,甚至可以随机的丢弃一些层,并且ResNet的参数量较大,说明ResNet其实寻找一定的冗余性,基于此,作者提出设计DenseNet,DenseNet网络中的每一层都直接与其前面层相连,实现特征的重复利用;同时把网络的每一层设计得特别窄,即只学习非常少的特征图,达到降低冗余性的目的。

  • DenseNet改善了图像信息以及梯度在网络中的传递,使得训练更加容易。
  • Dense Connection具有正则化效果,可以降低小训练集上的过拟合。

2、DenseNet

Dense Connectivity

Resnet: xl=Hl(xl1)+xl1 x l = H l ( x l − 1 ) + x l − 1
DenseNet: xl=Hl([x0,x1,...,xl1]) x l = H l ( [ x 0 , x 1 , . . . , x l − 1 ] )

composite function

BN-ReLU-Conv(3*3)

pooling layers

当特征图大小发生变化时候,便无法进行特征图的concatenation操作,因此DenseNet采用block结构,block结构之间设计为BN-Conv(1*1)-Average Pooling(2*2),可利用Conv(1*1)进行模型压缩。
结构如下图所示:

这里写图片描述

Growth rate
由于DenseNet采用的是concatenation的连接方式,如果每层产生k个feature maps,则将会产生 k(l1)+k0 k ∗ ( l − 1 ) + k 0 个特征图,为了防止网络变得很宽,k需要被限制为一个较小的数,作者将k称作growth rate。

bottleneck layers
同样为了降低网络的宽度,DenseNet同样利用1*1卷积进行降维,Dense Block被设计为:
DenseNet-B结构:BN-ReLU-Conv(1*1)-BN-ReLU-Conv(3*3)

Compression
在block之间,可以利用卷积进行模型维度压缩,在本文实验中,作者设置压缩比例为0.5。

模型详细描述如下:
DenseNet_第2张图片

4.实验

作者首先在CIFAR SVHN ImageNet进行分类实验。

CIFAR 与 SVHN
实验结果如下图所示:

  • 实验表明,在Accuracy中,DenseNet表现非常好,DenseNet-BC(L=190 and k=40)在多个数据集中均具有最好的表现,并且通过实验可以发现,随着DenseNet模型容量的增加,模型的精度有提升。
  • 通过实验可以看出,DenseNet的参数数量较少,说明DenseNet模型参数具有更高的有效性。
  • DenseNet不容易过拟合

DenseNet_第3张图片

ImageNet

如下图为ResNet与DenseNet在ImageNet上的实验对比图,作者采用近乎相同的参数配置进行实验,从实验结果如下,左图是在不同的parameters下的实验结果,右图为不同flops下实验的结果。对比可见,DenseNet的优越性。

DenseNet_第4张图片

还有一个自然而然的问题就是,这么多的密集连接,是不是全部都是必要的,有没有可能去掉一些也不会影响网络的性能?论文里面有一个热力图(heatmap),直观上刻画了各个连接的强度。从图中可以观察到网络中比较靠后的层确实也会用到非常浅层的特征。

DenseNet_第5张图片

你可能感兴趣的:(深度学习)