DenseNet论文拜读:Densely Connected Convolutional Networks

原文链接:https://arxiv.org/pdf/1608.06993.pdf

0 摘要

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

1 介绍

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

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

在本文中,我们提出了一种架构,它将这种见解提炼为一种简单的连接模式:为了确保网络中各层之间的信息流达到最大,我们将所有层(具有匹配的功能图大小)直接连接在一起。为了保持前馈特性,每一层都从前面的所有层获得额外的输入,并将自己的特性映射传递给后面的所有层。Figure 1概要地说明了这种布局。至关重要的是,与ResNets不同的是,我们从来不会在特征被传递到一个层之前通过求和来合并它们;相反,我们通过连接它们来组合特性。因此,第 l t h l^{th} lth层有 l l l输入,由之前所有卷积块的特征映射组成。它自己的特性映射被传递到所有的 L − l L-l Ll 后续层。这在 L L L层网络中引入了 L ( L + 1 ) 2 \frac {L(L+1)}2 2L(L+1)个连接,而不像传统架构中只引入 L L L。由于其密集的连通性模式,我们将我们的方法称为密集卷积网络(DenseNet)。

这种密集连接模式的一个可能与直觉相反的效果是,它比传统的卷积网络需要更少的参数,因为不需要重新学习冗余的特征映射。传统的前馈结构可以看作是具有状态的算法,它在层与层之间传递。每个层从它的前一层读取状态并写入到后一层。它改变了状态,但也传递了需要保留的信息。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更简单、更高效。

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

3 DenseNets

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

ResNets. 传统卷积前馈网络连接第 l t h l^{th} lth的输出层的输入 ( l + 1 ) t h (l+1)^{th} (l+1)th层[16],这产生了以下层过渡: x l = H l ( x l − 1 ) x_l = H _l(x_{l-1}) xl=Hl(xl1)。ResNets[11]通过一个身份函数绕过非线性转换来增加一个跳跃连接:
x l = H l ( x l − 1 ) + x l − 1 (1) x_l=H_l(x_{l-1})+x_{l-1}\tag{1} xl=Hl(xl1)+xl1(1)
ResNets的一个优点是梯度可以直接通过身份函数从较晚的层流向较早的层。但是,身份函数和 H l H_l Hl 的输出通过求和的方式结合在一起,可能会阻碍网络中的信息流。

Dense connectivity. 为了进一步改进层之间的信息流,我们提出了一种不同的连接模式:我们将任何层直接连接到所有后续层。Figure 1概要地说明了生成的DenseNet的布局。因此,第 l t h l^{th} lth层接收前面所有层的特征图 x 0 , . . . . . , x l − 1 x_0,.....,x_{l-1} x0,.....,xl1,如输入:
x l = H l ( [ x 0 , x 1 , . . . . . . , x l − 1 ] ) (2) x_l=H_l([x_0,x_1,......,x_{l-1}])\tag{2} xl=Hl([x0,x1,......,xl1])(2)
[ x 0 , x 1 , . . . . . . , x l − 1 ] [x_0,x_1,......,x_{l-1}] [x0,x1,......,xl1]是指在第 0 , . . . , l − 1 0,...,l-1 0,...,l1层中产生的特征映射的连接。由于其密集的连通性,我们将这种网络架构称为Dense Convolutional Network (DenseNet)。为了便于实现,我们将式(2)中的多个 H l ( ⋅ ) H_l(·) Hl()输入串联成一个张量。

Composite function. 在[12]的驱动下,我们将 H l ( ⋅ ) H_l(·) Hl()定义为三个连续操作的复合函数:批量归一化(BN)[14],然后是一个整流线性单元(ReLU)[6]和一个3×3卷积(Conv)。

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

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

Bottleneck layers. 尽管每个层只产生 k k k个输出特性映射,但它通常有更多的输入。在[37,11]中已经注意到,可以在每个 3 x 3 个卷积之前引入一个 1 x 1 个卷积作为瓶颈层,以减少输入特征映射的数量,从而提高计算效率。我们发现这种设计对DenseNet特别有效,我们参考我们的网络有这样一个瓶颈层,即,到BN-ReLU-Conv(1x1)-BN-ReLU-Conv(3x3)在 H l H_l Hl 的版本,即DenseNet-B。在我们的实验中,我们让每个 1x1 个卷积产生 4 k 4k 4k 的特征图。

Compression. 为了进一步提高模型的紧凑性,我们可以减少过渡层的特征映射的数量。如果致密块包含 m m m特征图谱,我们下面的过渡层生成 ⌊ θ m ⌋ \lfloorθm\rfloor θm输出特征图谱,当 0 < θ ≤ 1 0<\theta\le1 0<θ1被称为压缩因子。当 θ = 1 θ= 1 θ=1,跨过渡层特征图的数量保持不变。我们称 θ < 1 θ < 1 θ<1的DenseNet 为 DenseNet-C,b并且我们设置 θ = 0.5 θ= 0.5 θ=0.5实验。当瓶颈和过渡层同时都使用 θ < 1 θ < 1 θ<1 ,我们将我们的模型称为DenseNet-BC。

Implementation Details. 在除ImageNet外的所有数据集上,我们实验中使用的DenseNet有三个密集的块,每个块具有相同数量的层。在进入第一个稠密块之前,对输入图像进行与16(或两倍于DenseNet-BC的生长速度)输出通道的卷积。对于内核大小为 3 x 3 的卷积层,输入的每一边都用一个像素进行零填充,以保持特征图的大小不变。我们使用 1 x 1卷积和 2 x 2 平均池作为两个相邻密集块之间的过渡层。在最后一个密集块的末尾,执行一个全局平均池,然后附加一个softmax分类器。三个密集区块的地物图大小分别为 32 x 32、16 x 16、和 8 x 8。我们用配置为 { L = 40 , k = 12 } , { L = 100 , k = 12 } \{L=40,k=12\},\{L=100,k=12\} {L=40,k=12},{L=100,k=12} { L = 100 , k = 24 } \{L=100,k=24\} {L=100,k=24}的基本DenseNet结构进行了实验;。对于DenseNetBC,配置的网络 { L = 100 , k = 12 } , { L = 250 , k = 24 } \{L=100,k=12\},\{L=250,k=24\} {L=100,k=12},{L=250,k=24} { L = 190 , k = 40 } \{L=190,k=40\} {L=190,k=40}

在我们的ImageNet实验中,我们使用了一个 DenseNet-BC 结构,在 224 x 224 输入图像上有4个密集块。初始卷积层包括 2 k 2k 2k 个大小为 7 x 7 的卷积,步幅为 2;所有其他层的特征图的数量也跟随 k k k 的设置。我们在ImageNet上使用的网络配置 Table1 所示。

4 实验

我们在几个基准数据集上实证地证明了DenseNet的有效性,并与最先进的体系结构进行了比较,特别是与ResNet及其变体进行了比较。

4.1 数据集

CIFAR. 两个CIFAR数据集[15]由 32×32 像素的彩色自然图像组成。CIFAR-10 (C10)由来自10的图像和来自CIFAR-100 (C100)的图像组成100类。培训和测试集包含50,000和单独的10000张图片,我们扣留5000张训练图片作为验证集。我们采用标准的数据扩充方案(镜像/移位),该方案广泛应用于这两个数据集[11、13、17、22、28、20、32、34]。我们在数据集名称的末尾用一个 “+” 标记来表示这个数据扩充方案(例如,C10+)。对于预处理,我们使用通道均值和标准差对数据进行归一化处理。在最后一次运行中,我们使用了所有50,000张训练图像,并在训练结束时报告最后的测试错误。

SVHN. 街景门牌号码(SVHN)数据集[24]包含 32×32 的彩色数字图像。训练集中有73,257张图像,测试集中有26,032张图像,和531,131张图片供额外训练使用。按照惯例[7,13,20,22,30],我们使用所有的训练数据,没有任何数据扩充,并且从训练集中分离出一个包含6,000张图像的验证集。我们选择了训练中验证误差最小的模型,并报告了测试误差。我们遵循[42]并将像素值除以255,所以它们在[0;1)范围内。

ImageNet. ILSVRC 2012分类数据集[2]包含120万张用于训练的图像,以及5万张用于验证的图像。来自1000个类。我们对训练图像采用与[8,11,12]相同的数据增强方案,并在测试时应用大小为224×224的单株或10株作物。在[11,12,13]之后,我们报告了验证集上的分类错误。

4.2 训练

所有网络均采用随机梯度下降法(SGD)进行训练。在CIFAR和SVHN上,我们分别使用批处理大小为64进行300个和40个epochs训练。初始学习率设置为0.1,除以10,取50%和75%的训练时间。在ImageNet上,我们使用一个批处理大小为256进行90个epochs训练。初始学习率设置为0.1,并且在30个epoch到60个epoch降低10次。注意,DenseNet的初始实现可能包含内存效率低下。为了减少GPUs上的内存消耗,请参阅我们关于DenseNets[26]的内存效率实现的技术报告。

随后[8],我们使用一个 1 0 − 4 10^{-4} 104的权重缩减和一个没有减弱的0.9的Nesterov动量。我们采用了[10]引入的权值初始化。对于三个没有数据扩充的数据集,即,C10, C100和SVHN,我们在每个卷积层(第一个层除外)之后添加一个dropout层[33],并将dropout rate设置为0.2。对于每个任务和模型设置,只评估一次测试错误。

4.3 CIFAR和SVHN的分类结果

我们用不同的深度( L L L)和增长率( k k k)来训练DenseNets。CIFAR和SVHN的主要结果如Table 2所示。为了突出总体趋势,我们用黑体标记所有超过现有最先进技术的结果,用蓝色标记总体最佳结果。

Accuracy. 最明显的趋势可能来自Table 2的底一行,它表示DenseNet-BC的 L = 190 L = 190 L=190 k = 40 k = 40 k=40在所有CIFAR数据集上都优于现有的最新技术。C10+的错误率为3.46%,C10+的错误率为17.18%
C100+明显低于宽ResNet架构[42]实现的错误率。我们最好的成绩C10和C100(不增加数据)甚至更令人鼓舞:两者都比使用drop-path正则化[17]的FractalNet低近30%。在SVHN上, L = 100 L = 100 L=100 k = 24 k = 24 k=24的DenseNet在dropout时也超过了目前宽ResNet的最佳结果。然而,250层的DenseNet-BC并没有进一步改进其更短版本的性能。这可以解释为SVHN是一个相对简单的任务,极深的模型可能会过度适合训练集。

Capacity. 在没有压缩或瓶颈层的情况下,DenseNets的总体趋势是随着 L L L k k k增加性能更好。我们把这主要归因于模型容量的相应增长。C10+和C100+这两个列最能说明这一点。在C10+上,随着参数数量从1.0M,超过7.0M增加到27.2 M,误差从5.24%下降到4.10%,最后下降到3.74%。在C100+上,我们观察到类似的趋势。这表明,DenseNets可以利用更大、更深层次模型增加的表征能力。这也表明它们不存在过度拟合或剩余网络[11]的优化困难。

Parameter Efficiency. Table 2的结果表明DenseNets比其他体系结构(特别是ResNets)更有效地利用了参数。在过渡层具有瓶颈结构和降维的DenseNetBC特别具有参数效率。例如,我们的250层模型只有15.3M的参数,但它始终优于其他模型,如FractalNet和宽ResNets,它们的参数超过30M。我们还强调了DenseNet-BC在 L = 100 L = 100 L=100 k = 12 k = 12 k=12时的性能与使用较少90%参数的1001层预激活ResNet的性能相当(例如,在C10+时的4.51%对4.62%的错误,在C100+时的22.27%对22.71%的错误)。Figure 4(右面板)显示了这两个网络在C10+上的训练损失和测试错误。1001 层深ResNet收敛到一个较低的训练损失值,但有类似的测试错误。下面我们将更详细地分析这种影响。

Overfitting. 更有效地使用参数的一个积极的副作用是,DenseNets倾向于不太倾向于过度拟合。我们注意到,在没有数据扩充的数据集上,DenseNet体系结构相对于以前工作的改进特别明显。在C10中,改进表明错误相对减少了29%,从7.33%减少到5.19%。在C100上,从28.20%到19.64%降低了约30%。在我们的实验中,我们观察到潜在的过拟合在一个单一的设置:在C10上,将 k = 12 k =12 k=12增加到 k = 24 k =24 k=24所产生的参数增长4倍,导致误差从5.77%小幅增加到5.83%。DenseNet-BC的瓶颈和压缩层似乎是对抗这种趋势的有效方法。

4.4 ImageNet的分类结果

我们在ImageNet分类任务中评估了不同深度和增长率的DenseNet-BC,并将其与最先进的ResNet体系结构进行了比较。为了确保两个架构之间的公平比较,我们通过采用[8]为ResNet提供的公开的Torch(https://github.com/facebook/fb.resnet.torch)实现,消除了数据预处理和优化设置方面的差异等所有其他因素。

我们只需将ResNet模型替换为DenseNet-BC网络,并保持所有实验设置与用于ResNet的设置完全相同。

我们在Table 3中报告了DenseNets在ImageNet上的single-crop和10-crop验证错误。Figure 3显示了DenseNets和DenseNets的single-crop top-1验证错误作为参数数量(左)和FLOPs(右)的函数。结果显示在图中DenseNets的性能与最先进的ResNets不相上下,同时需要更少的参数和计算来实现可比较的性能。例如,一个带有20M参数模型的DenseNet-201与带有超过40M参数的 101层ResNet 产生类似的验证错误。类似的趋势也可以从右侧面板中观察到,该面板将验证错误绘制为FLOPs次数的函数:需要与ResNet-50相同计算量的DenseNet与需要两倍计算量的ResNet-101的性能相当。

值得注意的是,我们的实验设置意味着我们使用优化过的超参数设置ResNets,但DenseNets没有。可以想象,更广泛的超参数搜索可能会进一步提高DenseNet在ImageNet上的性能。

5 讨论

从表面上看,DenseNets与ResNets非常相似: E q . ( 2 ) Eq.(2) Eq.(2) E q . ( 1 ) Eq.(1) Eq.(1)的区别只是在于对 H l ( ⋅ ) H_l (·) Hl()的输入是串联的而不是求和的。然而,这种看似很小的修改所带来的影响导致了两种网络架构的本质不同。

Model compactness. 作为输入连接的一个直接结果,DenseNet的任何层所学习的特征映射都可以被所有后续层访问。这鼓励了整个网络中的特性重用,并导致了更紧凑的模型。

Figure 4中左边的两个图显示了一个实验的结果,该实验的目的是比较DenseNets的所有变体的参数效率(左)和一个可比较的ResNet体系结构(中)。我们在C10+上训练多个不同深度的小网络,并绘制它们的测试精度作为网络参数的函数。与其他流行的网络架构,如AlexNet[16]或VGG-net[29]相比,预激活的ResNets使用更少的参数,而通常实现更好的结果[12]。因此,我们将DenseNet ( k = 12 k = 12 k=12)与此体系结构进行比较。DenseNet的训练设置与前一节相同。

由图可知,DenseNet- BC始终是DenseNet最具参数效率的变量。为了达到同样的精度,DenseNet-BC只需要大约1/3的ResNets参数(中间的plot)。这个结果与我们在Figure 3中展示的ImageNet上的结果一致。Figure 4中的右图显示,只有0.8M可训练参数的DenseNet-BC能够达到与具有10.2M参数的1001层(预激活)ResNet[12]相当的精度。

Implicit Deep Supervision. 稠密卷积网络精度提高的一种解释可能是,单个层通过较短的连接从损失函数获得额外的监督。人们可以把DenseNets解释为一种“深度监督”。深度监管的好处已经在深度监管网络(DSN;在每个隐藏层上都附加了分类器,强制中间层学习有区别的特征。

DenseNets以一种隐式的方式执行类似的深度监视:网络顶部的单个分类器通过最多两层或三层的转换层向所有层提供直接监视。然而,DenseNets的损失函数和梯度基本上没有那么复杂,因为所有层之间共享相同的损失函数。

Stochastic vs. deterministic connection. 稠密卷积网络与随机深度正则化残差网络[13]之间存在着有趣的联系。在随机深度中,残差网络中的层被随机丢弃,从而在周围层之间建立起直接的联系。由于池化层从未被丢弃,因此网络的连接模式与DenseNet类似:如果所有中间层都被随机丢弃,那么相同池化层之间的任何两层直接连接的概率都很小。虽然这两种方法最终有很大的不同,但DenseNet对随机深度的解释可能为这种正则化器的成功提供一些见解。

Feature Reuse. 通过设计,Densenet允许各个层从它前面的所有层访问特性映射(尽管有时通过过渡层)。我们进行了一个实验来调查一个训练有素的网络是否利用了这个机会。我们首先在C10+上训练一个DenseNet, L = 40 和 k = 12 L = 40 和 k = 12 L=40k=12。对于块内的每个卷积层 l l l,我们计算分配给与 s s s 层连接的平均(绝对)权重。Figure 5显示了所有三个密集块的热图。平均绝对权重代替了卷积层对前一层的依赖。位置上的红点( l , s l,s l,s)表示该 l l l 层平均较强地使用了之前生成的 s s s 层的特征映射。从图中可以观察到几个现象:

  1. 所有层都将它们的权重分散到同一块中的多个输入上。这表明,由非常早期的层提取的特征,实际上,是由整个相同密集块的深层直接使用的。
  2. 过渡层的权值也将它们的权值分散到前面密集块内的所有层上,这表示从DenseNet的第一个层到最后一个层的信息流通过几个间接的方向。
  3. 第二个和第三个密集块内的层一致地将最小的权重分配给过渡层(三角形的顶行)的输出,这表明过渡层输出了许多冗余特性(平均低权重)。这与DenseNet-BC的强大结果相一致,这些输出正是在这里被压缩的。
  4. 虽然最后的分类层(如最右边所示)也使用了整个密集块的权重,但似乎集中在最终的特征图上,这表明在网络的后期可能会产生一些更高级的特征。

6 结论

我们提出了一种新的卷积网络架构,我们称之为密集卷积网络(DenseNet)。它引入了具有相同功能映射大小的任意两个层之间的直接连接。我们证明了DenseNets可以自然地扩展到数百个层,而没有表现出优化的困难。在我们的实验中,随着参数数量的增加,DenseNets的精度会不断提高,不会出现任何性能下降或过拟合的迹象。在多种设置下,它在几个高度竞争的数据集中实现了最先进的结果。此外,DenseNets需要更少的参数和更少的计算来实现最先进的性能。由于我们在研究中采用了针对残差网络优化的超参数设置,因此我们认为,通过更详细地调整超参数和学习速率调度,可以进一步提高DenseNets的精度。

同时遵循一个简单的连接规则,DenseNets自然地集成了身份映射、深度监控和多样化深度的特性。它们允许特性在整个网络中重用,因此可以学习更紧凑的模型,根据我们的实验,也可以学习更精确的模型。由于其紧凑的内部表示和减少的特征冗余,DenseNets可能是很好的基于卷积特征的各种计算机视觉任务的特征提取器,如[4,5]。我们计划在未来的工作中与DenseNets一起研究这种特征转移。

Acknowledgements.

References

Reference:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ZPILOTE

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

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

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

打赏作者

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

抵扣说明:

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

余额充值