您的位置:首页 > 其它

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

2018-01-23 21:26 519 查看

Introduction

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

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

Model

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

1. ResNets

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

<
4000
span style="color:#000000;">                                           


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

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


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

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


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



图2有三个dense blocks的deepDenseNet

4. Growth rate
        如果每个Hℓ操作能产生k个feature-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
block有m个feature-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. 文章写得很简洁,方法也清晰易懂,但网上有人表明随着模型层数的增多,网络占用的内存还是太多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐