深度学习文章阅读5----Densely Connected Convolutional Networks

Introduction

        如果输入输出间有更短的链接,CNN会变得更deeper、accurate和efficient。本文提出DenseNet(Dense Convolutional Network),它以前馈的方式将每一层连接到其他的所有层,也就是说,对于某一层,它前面所有层的特征映射都被作为它的输入,而它自己的特征映射被作为所有后续层的输入。

        DenseNet的优点:缓解消失梯度问题,加强特征传播,鼓励特征重用,大幅度减少参数数量。


Model

        假定CNN的输入为单张图片x0,网络有L层,每层有非线性变化H(·),这里指的第l层,H(·)可以为BNReLU,下采样或是卷积的组合。

1. ResNets

        ResNet网络的第l层的输入较传统网络而言,多了skip-connection,表示如式(1)

                                           

        但ResNet以求和的方式组合了identity function 和theoutput of Hℓ,这可能阻碍了网络中的information flow,由此引出了DenseNet。

2. Dense connectivity

Dense connectivity引入任一层到其后续所有层的直接连接,如图1所示。

                               

1一个5层的dense blockgrowth rate k=4,每一层都将前面层的feature-maps作为输入

        第l层接收先前所有层的feature-maps,其输入定义如(2)所示,这里[x0, x1, . . . , xℓ-1]0l-1feature-maps的级联,H(·)可定义为复合操作,可包括BNReLU3*3的卷积。

                                       

3. pooling layers

        如果feature-maps的大小发生变化,公式(2)就不可用,由此引入下采样,并将网络划分为多个密集连接的密集块,如图2所示。Dense blocks之间的层为transition layers,来完成卷积和下采样操作,本实验中transition layers由一batch normalization layer1×1 convolutional layer2×2 average pooling layer 组成。


2有三个dense blocksdeepDenseNet

4. Growth rate

        如果每个H操作能产生kfeature-maps,那个第l层有k0+ k × (ℓ - 1)个输入feature-maps,此处k0是指输入层的通道数。将k定义为网络的growth rate,文中对growth rate的解释是:growth rate regulates how much new information each layercontributes to the global state

5. Bottleneck layers

        可以在3*3的卷积操作之前引入1*1的卷积,来减少输入的feature-maps的数量,由此我们得到了DenseNet-B,其中的H由:BN-ReLU-Conv(1×1)-BN-ReLU-Conv(3×3)构成。

6. Compression

         我们在transitionlayers中进一步减少feature-maps的参数,如果一个dense blockmfeature-maps,则紧随其后transition layer将产生θm output feature-maps,其中0 <θ ≤1θ被称为压缩因子。将θ <1时的网络定义为DenseNet-C,实验中我们设定θ = 0.5,将同时含有Bottleneck layersθ <1的网络定义为DenseNet-BC


Experiment

1.数据集

        1)CIFAR10和CIFAR100:分别含有10和100个类别,训练集和测试集上分别有50000和10000张图片,并从训练集中抽出5000张图片作为验证集。

        2)SVHN: 32*32 colored digit images,训练集中73257张图,测试集中26032张图,另外还有531131张图作为additional training,我们从训练集中抽取6000张图片作为验证集。

        3)ImageNet:训练集中1.2million张图片,验证集中50000张图片,共1000个类别。

2. 实验

        这里主要测试了深度L和growth rate k,部分结果见表1,详细结果主要见原文。

表1 error rate on CIFAR and SVHN



Conclusion

 1.本文提出的DenseNets 和ResNets很像,只是将每层的输入,由公式(1)修改为公式(2),但这样seemingly small modification导致两个网络架构大不相同。

 2. 文章写得很简洁,方法也清晰易懂,但网上有人表明随着模型层数的增多,网络占用的内存还是太多。
















猜你喜欢

转载自blog.csdn.net/karen17/article/details/79144751