DenseNet:Densely Connected Convolutional Networks(密集连接卷积网络)翻译

Densely Connected Convolutional Networks

密集连接卷积网络

摘要

最近的研究表明,如果卷积网络在接近输入层和接近输出层的层之间包含更短的连接,那么它在本质上可以更深入、更准确、更有效地进行训练。在本文中,我们接受了这一观察,并介绍了稠密卷积网络(DenseNet),它以前馈的方式将每一层与每一层连接起来。传统的卷积网络有L层,而我们的网络有L(L+1)/2个直接连接。对于每个层,前面所有层的功能映射都用作输入,而它自己的功能映射用作所有后续层的输入。densenet有几个引人注目的优点:它们缓解了消失梯度问题,增强了特征传播,鼓励了特征重用,并大大减少了参数的数量。我们在四个高度竞争的对象识别基准任务(CIFAR-10、CIFAR-100、SVHN和ImageNet)上评估我们提出的体系结构。densenet在大多数方面都比最先进的技术有了显著的改进,同时需要更少的计算来实现更高的性能。

1 简介

卷积神经网络(CNNs)已经成为视觉对象识别的主流机器学习方法。虽然它们最初是在20多年前[18]引入的,但计算机硬件和网络结构的改进直到最近才使训练真正深入的CNNs成为可能。最初的LeNet5[19]由5层组成,VGG有19层[29],直到去年Highway Networks [34]和残差网络[11]才突破了100层屏障。

随着CNNs变得越来越深入,一个新的研究问题出现了:当有关输入或梯度的信息通过许多层时,它可能会消失,并在到达网络的末端(或开始)时被“洗掉”。许多最近的出版物都提到了这个或相关的问题。重传[11]和公路网[34]的旁路信号,从一层通过身份连接到下一层。随机深度[13]通过在训练过程中随机丢弃层来缩短ResNets,以允许更好的信息和梯度流动。FractalNets[17]将多个具有不同卷积块数的并行层序列重复组合,以获得较大的名义深度,同时保持了网络中的许多短路径。尽管这些不同的方法在网络拓扑结构和训练过程中有所不同,但它们都具有一个关键的特征:它们创建了从早期层到后期层的短路径。

在本文中,我们提出了一种架构,它将这种洞察力提炼为一种简单的连接模式:为了确保网络中各层之间的最大信息量,我们将所有层(具有匹配的特征图大小)直接连接在一起。为了保持前馈特性,每一层都从前面的所有层获得额外的输入,并将自己的特性映射传递给后面的所有层。图1概要地说明了这种布局。至关重要的是,与ResNets不同的是,我们从来不会在特征被传递到一个层之前通过求和来合并它们;相反,我们通过连接它们来组合特性。因此,第 ℓ t h {\ell ^{th}} th层有 ℓ \ell 个输入,由之前所有卷积块的特征映射组成。它自己的特征图被传递到所有$L - \ell $续层。这将在L层网络中引入L(L + 1)/2连接,而不像传统架构中只引入L层。由于其密集的连通性模式,我们将我们的方法称为密集卷积网络(DenseNet)。在这里插入图片描述
Figure 1: A 5-layer dense block with a growth rate of k = 4. Each layer takes all preceding feature-maps as input.

这种密集连接模式的一个可能与直觉相反的效果是,它比传统的卷积网络需要更少的参数,因为不需要重新学习冗余的特征映射。传统的前馈结构可以看作是具有状态的算法,它在层与层之间传递。每个层从它的前一层读取状态并写入到后一层。它改变了状态,但也传递了需要保留的信息。ResNets[11]通过添加标识转换显式地保存了该信息。最近ResNets[13]的变化表明,许多层的贡献非常小,实际上可以在训练中被随机丢弃。这使得ResNets的状态类似于(展开的)循环神经网络[21],但是ResNets的参数数量要大很多,因为每一层都有自己的权值。我们提出的DenseNet体系结构明确区分了添加到网络中的信息和保留的信息。DenseNet层非常窄(例如,每层12个过滤器),只向网络的“集合知识”中添加一小部分特征映射,并保持其余的特征映射不变,最后的分类器根据网络中的所有特征映射做出决策。

除了更好的参数效率外,DenseNets的一大优点是改进了整个网络的信息流和梯度,这使得它们更容易训练。每一层都可以直接访问从损耗函数到原始输入信号的梯度,从而实现一个隐式的深度监控[20]。这有助于训练更深层次的网络体系结构。此外,我们还观察到密集连接具有正则化效果,可以减少训练集较小的任务的过拟合。

我们在四个高度竞争的基准数据集(CIFAR-10、CIFAR-100、SVHN和ImageNet)上评估DenseNets。与现有算法相比,我们的模型需要的参数要少得多,而且精度相当。此外,在大多数基准测试任务上,我们的性能都明显优于当前最先进的测试结果。

2 相关工作

对网络结构的探索从一开始就是神经网络研究的一部分。最近神经网络的重新流行也使这一研究领域重新活跃起来。现代网络中不断增加的层数放大了架构之间的差异,激发了对不同连接模式的探索和对以往研究思想的重新审视。

类似于我们提出的密集网络布局的级联结构已经在20世纪80年代的神经网络文献中进行了研究。他们的开创性工作集中在以逐层方式训练的全连接多层感知器上。最近,提出了用批量梯度下降训练完全连接的级联网络[40]。尽管这种方法对小型数据集有效,但它只适用于具有几百个参数的网络。在[9,23,31,41]中,通过跳跃连接利用CNNs的多级特征被发现对各种视觉任务是有效的。与我们的工作相平行,[1]为具有类似于我们的跨层连接的网络导出了一个纯理论框架。

Highway Networks [34]是第一批提供了一种有效的方法来训练超过100层的端到端网络的架构之一。利用带有门控单元的分流路径,可以毫无困难地优化数百层的Highway Networks。分流路径被认为是简化这些非常深的网络训练的关键因素。这一点得到了ResNets[11]的进一步支持,其中使用纯标识映射作为分流路径。ResNets在许多具有挑战性的图像识别、定位和检测任务(如ImageNet和COCO对象检测[11])上取得了令人印象深刻的、破纪录的性能。最近,随机深度被认为是一种成功的方法——完全训练一个1202层的ResNet[13]。随机深度通过在训练过程中随机丢层来改进深度残差网络的训练。这表明并不是所有的层都是需要的,并强调在深层(残余)网络中有大量的冗余。我们的发言人在某种程度上是受了那个观察结果的启发。预激活的ResNets也有助于训练最先进的> 1000层[12]网络。

一种使网络更深入的正交方法(例如,在跳过连接的帮助下)是增加网络宽度。GoogLeNet[36,37]使用了一个“Inception模块”,它将不同大小的过滤器生成的特性映射连接起来。在[38]中,提出了一种具有广泛广义残差块的ResNets变体。事实上,只要增加每层ResNets的过滤器数量,只要深度足够[42],就可以改善其性能。FractalNets还使用广泛的网络结构[17]在多个数据集上获得了具有竞争力的结果。

densenet并没有从极深或极广的体系结构中汲取代表性的力量,而是通过特性重用来开发网络的潜力,从而生成易于训练且具有高度参数效率的精简模型。将不同层学习到的特征图串联起来,增加了后续层输入的变化,提高了效率。这是DenseNets和ResNets之间的一个主要区别。与Inception网络相比[36,37],Inception网络也连接来自不同层的特征,densenet更简单、更高效。
在这里插入图片描述
Figure 2: A deep DenseNet with three dense blocks. The layers between two adjacent blocks are referred to as transition layers and change feature-map sizes via convolution and pooling.

还有其他值得注意的网络架构创新,它们产生了具有竞争力的结果。Network in Network (NIN)[22]结构将微型多层感知器加入到卷积层的滤波器中,以提取更复杂的特征。在深度监督网络(DSN)[20]中,内层由辅助分类器直接监督,可以增强较早层接收到的梯度。梯形网络[27,25]将横向连接引入到自动编码器中,在半监督学习任务中产生了令人印象深刻的准确性。在[39]中,提出了通过结合不同基础网络的中间层来改善信息流的深度融合网(DFNs)。通过增加具有最小化重建损失的路径的网络,还可以改进图像分类模型[43]。

3. DenseNets

考虑通过卷积网络传递的单个图像 x 0 {x_0} x0。网络由L层组成,每层实现一个非线性变换 H ℓ ( ∙ ) {H_\ell }\left( \bullet \right) H(),其中 ℓ \ell 对层进行索引。 H ℓ ( ∙ ) {H_\ell }\left( \bullet \right) H()可以是批量归一化(BN)[14]、整流线性单元(ReLU)[6]、池化[19]或卷积(Conv)等操作的复合函数。我们将第 ℓ t h {\ell ^{th}} th层的输出表示为 x ℓ {x_\ell } x

ResNets 传统的卷积前馈网络将第 ℓ t h {\ell ^{th}} th层的输出作为输入连接到第 ( ℓ + 1 ) t h {(\ell + 1)^{th}} (+1)th层[16],从而产生如下层转换: x ℓ = H ℓ ( x ℓ − 1 ) {x_\ell } = {H_\ell }\left( {{x_{\ell - 1}}} \right) x=H(x1)。ResNets[11]增加了一个跳跃连接,通过一个恒等函数绕过非线性转换:
x ℓ = H ℓ ( x ℓ − 1 ) + x ℓ − 1 ( 1 ) {x_\ell } = {H_\ell }\left( {{x_{\ell - 1}}} \right) + {x_{\ell - 1}} (1) x=H(x1)+x1(1)

ResNets的一个优点是梯度可以直接通过恒等函数从较晚的层流向较早的层。但是, H ℓ {H_\ell } H的恒等函数和输出被求和组合,可能会阻碍网络中的信息流。

密集连接 为了进一步改进层之间的信息流,我们提出了一种不同的连接模式:我们将任何层直接连接到所有后续层。图1概要地说明了生成的DenseNet的布局。因此,第二层接收前面所有层的特征映射,% x 0 , x 1 , … , x ℓ − 1 {x_0},{x_1}, \ldots ,{x_{\ell - 1}} x0,x1,,x1,作为输入:
x ℓ = H ℓ ( [ x 0 , x 1 , … , x ℓ − 1 ] ) ( 2 ) {x_\ell } = {H_\ell }\left( {\left[ {{x_0},{x_1}, \ldots ,{x_{\ell - 1}}} \right]} \right) (2) x=H([x0,x1,,x1])(2)

其中 [ x 0 , x 1 , … , x ℓ − 1 ] \left[ {{x_0},{x_1}, \ldots ,{x_{\ell - 1}}} \right] [x0,x1,,x1]指的是在第0,…, ℓ + 1 \ell + 1 +1层。由于其密集的连通性,我们将这种网络架构称为密集卷积网络(DenseNet)。为了便于实现,我们将式(2)中的多个 H ℓ ( ∙ ) {H_\ell }\left( \bullet \right) H()输入串联成一个张量。

复合函数 在[12]的驱动下,我们将 H ℓ ( ∙ ) {H_\ell }\left( \bullet \right) H()定义为三个连续操作的复合函数:批量归一化(BN)[14],然后是一个整流线性单元(ReLU)[6]和一个3×3卷积(Conv)。

池化层 当特征映射的大小发生变化时,Eq.(2)中使用的连接操作是不可行的。然而,卷积网络的一个重要部分是向下采样层,它可以改变特征图的大小。为了便于在我们的架构中进行向下采样,我们将网络划分为多个紧密连接的密集块;参见图2。我们将块之间的层称为过渡层,它执行卷积和池化。我们实验中使用的过渡层包括一个批处理的归一化层和一个1×1的卷积层,以及一个2×2的平均池化层。

增长率 如果每个函数 H ℓ {H_\ell } H生成个 k k k特征图,那么第 ℓ t h {\ell ^{th}} th层有 k 0 + k × ( ℓ − 1 ) {k_0} + k \times (\ell - 1) k0+k×(1)个输入feature-maps,其中 k 0 {k_0} k0是输入层的通道数。DenseNet与现有网络架构之间的一个重要区别是,DenseNet可以具有非常窄的层,例如 k = 12 k{\rm{ = }}12 k=12。我们把超参数k称为网络的增长率。我们在第4节中展示了一个相对较小的增长率就足以在我们测试的数据集上获得最新的结果。对此的一种解释是,每个层都可以访问其块中的所有前面的特性映射,因此也可以访问网络的“集体知识”。可以将功能图视为网络的全局状态。每个层都将自己的 k k k个功能映射添加到这个状态。增长率决定了每一层向全球状态贡献多少新信息。全局状态一旦编写完成,就可以从网络中的任何地方访问它,并且与传统的网络架构不同,不需要在层与层之间复制它。

瓶颈层(Bottleneck****层) 尽管每个图层仅产生 k k k个输出特征图,但通常会有更多的输入。在[37,11]中已经指出,可以在每个3×3卷积之前引入1×1卷积作为瓶颈层,以减少输入特征图的数量,从而提高计算效率。我们发现此设计对DenseNet特别有效,我们将网络称为瓶颈层,即 H ℓ {H_\ell } H的BN-ReLU-Conv(1×1)-BN-ReLU-Conv(3×3)版本,作为DenseNet-B。在我们的实验中,我们让每个1×1卷积产生4k个特征图。

压缩 为了进一步提高模型的紧凑性,我们可以减少过渡层的特征图数量。如果一个密集块包含m个特征图,我们让下面的过渡层生成$\left\lfloor {\theta m} \right\rfloor $输出特征图,其中 0 < θ ≤ 1 0 < \theta \le 1 0<θ1称为压缩因子。当时 θ = 1 \theta {\rm{ = }}1 θ=1,跨过渡层的特征图数量保持不变。我们将 θ < 1 \theta < 1 θ<1的DenseNet称为DenseNet-C,并在实验中将 θ = 0 . 5 \theta {\rm{ = 0}}{\rm{.5}} θ=0.5。当同时使用的瓶颈和过 θ < 1 \theta < 1 θ<1渡层时,我们将模型称为DenseNet-BC。

实现细节 在除ImageNet之外的所有数据集上,我们实验中使用的DenseNet具有三个密集块,每个密集块具有相等的层数。在进入第一个密集块之前,对输入图像执行16个卷积(或DenseNet-BC增长率的两倍)的卷积。对于内核大小为3×3的卷积层,输入的每一侧都用一个像素补零,以保持特征图的大小固定。我们使用1×1卷积,然后使用2×2平均池作为两个连续密集块之间的过渡层。在最后一个密集块的末尾,执行全局平均池化,然后附加softmax分类器。三个密集块中的特征图大小分别为32×32、16×16和8×8。我们使用配置 { L = 40 , k = 12 } \left\{ {L = 40,k = 12} \right\} {L=40,k=12} { L = 100 , k = 12 } \left\{ {L = 100,k = 12} \right\} {L=100,k=12} { L = 100 , k = 24 } \left\{ {L = 100,k = 24} \right\} {L=100,k=24}的基本DenseNet结构进行实验。对于DenseNet-BC,评估配置为 { L = 100 , k = 12 } \left\{ {L = 100,k = 12} \right\} {L=100,k=12} { L = 250 , k = 24 } \left\{ {L = 250,k = 24} \right\} {L=250,k=24} { L = 190 , k = 40 } \left\{ {L = 190,k = 40} \right\} {L=190,k=40}的网络。

在我们的ImageNet实验中,我们使用了一个DenseNet-BC结构,在224×224输入图像上有4个密集块。初始卷积层包括2k个大小为7×7的卷积,步长为2;所有其他层的特征图的数量也跟随k的设置。我们在ImageNet上使用的网络配置如表1所示。
在这里插入图片描述
Table 1: DenseNet architectures for ImageNet. The growth rate for all the networks is k = 32. Note that each “conv” layer shown in the table corresponds the sequence BN-ReLU-Conv.

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gz7seven

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值