欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CVPR2017最佳论文 Densely Connected Convolutional Networks (DenseNets)阅读笔记

程序员文章站 2024-03-15 11:00:23
...

CVPR2017最佳论文 Densely Connected Convolutional Networks (DenseNets)阅读笔记

原文:Densely Connected Convolutional Networks
作者:Gao Huang, Zhuang Liu, Kilian Q. Weinberger, Laurens van der Maaten
下载地址:https://arxiv.org/abs/1608.06993

1 简介

  • 近几年的深度学习模型中,CNN一直是绝对主导地位。Resnet、GoogLeNet、VGG等优秀的网络都是基于CNN搭建的。然而,深层的CNN一直以来都存在一个问题:数据在多层传播后很可能会逐渐消失。Resnet通过“skip connection”结构一定程度上在促进了数据在层间的流通,但接近输出的网络层还是没有充分获得网络前面的特征图。
  • 作者提出的DenseNets,在前向传播基础上,网络每一层都能接受到它前面所有层的特征图,并且数据聚合采用的是拼接而非Resnet中的相加。网络模型如下图所示:
    CVPR2017最佳论文 Densely Connected Convolutional Networks (DenseNets)阅读笔记
  • 这种连接方式有一个很大的优点。前向传播时,深层网络能获得浅层的信息,而反向传播时,浅层网络能获得深层的梯度信息。这样最大程度地促进了数据在网络间的流动。
  • 另外,这种结构存在着大量的特征复用。因此只需要很少的参数,就可以达到state-of-the-art的效果。主要是体现在特征图的通道数上,相比VGG、ResNet的几百个通道,DenseNet可能只需要12、24个左右。

2 模型搭建

  • 关键词:
    • Dense Block:作者将许多个卷积网络分成3~4个部分,这些部分叫做dense block,概念有些像残差网络的残差块。每个block中,都执行密集连接,block的输出再通过池化降低特征图尺寸。
      CVPR2017最佳论文 Densely Connected Convolutional Networks (DenseNets)阅读笔记
    • Growth rate:由于网络采用拼接(Concatenate)的操作,通道数会逐层增加。作者在设计网络时固定了每个卷积层的输出通道数,因此每层增加的通道数一样的,Growth rate指的就是网络每层增加的通道数。用k表示。
    • Bottleneck:该网络是为了解决输入特征图层数太多的问题。它先进行BN、ReLU,再用一个1*1的卷积把输入通道变成相对小的一个固定值(作者设置为4k),之后再通过BN-ReLU-Conv3*3输出。也就是说,上图block每个黑点都是BN-ReLU-Conv1*1-BN-ReLU-Conv3*3的结构,其中Conv1*1的输出通道为4k,Conv3*3的输出通道为k。有该结构的网络叫做DenseNet-B
    • Compreession:在两个Dense block中出现,为了压缩通道数。假设一个Dense block的输出是m,设置一个压缩值θ,用conv1*1将dense block的输出压缩成θm个通道。一般来说θ设置成0.5。Compresion在上图中被表示为block之间的那个“convolution”(前面一样还有BN-RELU)。如果使用了bottleneck和compression,网络就称作DenseNet-BC

用于CIFAR、SVHN

  • CIFAR10,CIFAR100、SVHN这三个数据集中,图像的大小只有32*32。作者只用3个Dense block,输出尺寸分别为32*32,16*16,8*8,另外没有bottleneck。作者设置了两种网络,分别为40层和100层,对应的growth rate分别为12和24。另外作者还是用了bottleneck来尝试,配置为:{L=100,k=12},{L=250,k=24},{L=190,k=40}
    CVPR2017最佳论文 Densely Connected Convolutional Networks (DenseNets)阅读笔记

用于Imagenet

  • 大致和上面相同,作者使用4个dense block,让图像最终尺寸变成经典的7*7。最开始的卷积尺寸为7*7,步长为2,将3通道的图像转换成2k通道的特征图。具体配置如下图。
    CVPR2017最佳论文 Densely Connected Convolutional Networks (DenseNets)阅读笔记

3 实验

  • 比较值得注意的就是下面的实验结果了。这是一个错误率-计算量的函数图。可以发现,在达成相同准确率的情况下,DenseNet所需的参数和浮点操作数远小于ResNet。这也是DenseNet的强大之处。
    CVPR2017最佳论文 Densely Connected Convolutional Networks (DenseNets)阅读笔记