[论文评析]Densely Connected Convolutional Networks,CVPR,2017

Densely Connected Convolutional Networks,

  • 文章信息
  • 背景与动机
  • DenseNet
    • Dense block
    • DenseNet
    • DenseNet的集中经典配置
  • 总结


文章信息

题目:Densely Connected Convolutional Networks,
发表:CVPR,2017
作者:Gao Huang, Zhuang Liu, Laurens van der Maaten, Kilian Q. Weinberger

这篇文章所提出的DenseNet模型被称为是最经典4种卷积架构之一。

背景与动机

卷积网络是是一类非常强大的网络结构,从最早的Google LNet, 到AlexNet,VGG, 再到ResNet, ResnetXt, 可以发现:
(1)网络的结构变得越来越深,
(2)这些网络架构基本上都是以前馈方式顺序级联的,仅相邻的层之间有连接,很少有跨层连接(即使是ResNet,也仅仅只是增加了Short cut path),

作者主要是从信息流动的角度出发,提出了一种的新型卷积网络模型 密集连接网络Densely -connetced neural network (DenseNet).

DenseNet

Dense block

下图直观的展示了一个5层的growth rate为4的Dense block的示意图, 其中不同颜色的框代表Feature map, H i H_{i} Hi表示一个由Convolution, Relu,Batch Normalization组成的符合操作,对应的输出为 x i x_{i} xi。 可以看到其与以往的卷积网络的最大不同点
以往的网络都是仅相邻的两个层之间有连接,而这里是任意两个Layer之间都以前馈的方式连接,换言之,每个layer的输出都作为后继所有layers的输入的一部分, 对于每个layer来说,之前所有layer的输出作为该layer的输入的一部分。
[论文评析]Densely Connected Convolutional Networks,CVPR,2017_第1张图片

DenseNet

下面展示了基于Dense block搭建的一个包含3个Dense block的DenseNet的示意图。

在这里插入图片描述
总结以下DenseNet的几个特点、优势:

(1) Dense connectity
对于传统的卷积网络,
x l = H l ( x l − 1 ) x_{l}=H_{l}(x_{l-1}) xl=Hl(xl1),
对于ResNet,
在这里插入图片描述
而对于DenseNet, 第l层的输入与之前的所有层的输出都有关,
在这里插入图片描述

另外有一点需要特别注意
在Resnet中,short cut path是直接把直接把输入叠加到卷积的输出上,这样一种生硬的方式可能会阻碍信息的流动,而在DenseNet中,是把之前所有层的输出聚合起来作为输入,这与Resnet有本质的区别。

(2) Composite function
Dense block中每一层都为一个由Convolution, Relu, Batch Normalization组成的复合操作,

(3)Pooling layers.
由于公式(2)中每个层的输入为之前所有层的输出的聚合,这意味着这些输出的尺寸必须保持一致,然而,众所周知, 卷积网络的一个基本的特点是:feature map的尺寸在不断变小而feature map的厚度在不断增加, 那么在DenseNet中如何考虑这个呢? 由此,作者引入了Transition layer的概念,Transition layer位于相邻的两个Dense block之间,由Batch Normalization, 1x1 convolution, 2x2的 Pooling layer组成,主要的目的是为了进行下采样,同时可能降维。

(4)Growth rate
对于给定的Dense block, 其中每个复合操作 H l H_{l} Hl的输出的feature map的数量相等记为k,假设输入的feature map的数量为 k 0 k_{0} k0,则该层输入feauture map的数量为 k 0 + k ( l − 1 ) k_{0}+k(l-1) k0+k(l1).
传统的卷积网络中feature map的数量都是随着网络深度的增加成倍甚至直输暴增的,而这里,通过控制参数k,可以得到很窄/瘦的网络。

(5)Bottleneck layers
尽管每个复合操作输出的feature map数量为k,然而因为每个层的输入由多个之前层的输出组成,最终输入的feature map的数量可能比较大,因此可以在3x3卷积之前再加一个1x1卷积,也就是所谓的Bottlenet layer, 这样一来可以进一步提高季孙效率。

(6)Compression.
假设一个Dense block的输出包含m个feature map, 经过Transition layer以后输出feature map的数量为 θ m \theta m θm,其中 θ \theta θ称之为压缩因子。

DenseNet的集中经典配置

[论文评析]Densely Connected Convolutional Networks,CVPR,2017_第2张图片

总结

作者从信息流的角度思考设计了这么一种网络,看起来也特别简单,挺有意思。最近也有一些工作通过尝试结合物理方面的知识来设计网络,这一块值得研究。

你可能感兴趣的:(前沿介绍,深度学习,人工智能)