Densely connected convolutional networks(密集连接的卷积网络)

本文是 CVPR 2017 论文 Densely connected convolutional networks. 的翻译学习,因为作者本人水平有限,如有不准确的地方还望读者不吝赐教。

摘要

最近的工作表明,卷积网络如果在靠近输入的层和靠近输出的层之间包含较短的连接,就可以更深入,更准确,更有效地进行训练。我们认同这个观察结果,并引入密集卷积网络(DenseNet),该网络以前馈的方式将每一层连接到其他每一层。传统的具有L层的卷积神经网络 具有 L个连接,我们的网络则具有 L ( L + 1 2 \frac{L(L+1}{2} 2L(L+1 个直接的连接(每一层之间以及每一层和它的后续层都有连接)。对于每一个层,它之前层的所有 feature-map 被用作输入,它本身的feature-map 被用作它所有后续层的输入。DenseNets 具有几个令人着迷的优势:他们减轻了梯度消失问题,增强了特征传播,鼓励功能重用,并大大减小了参数数量。我们在四个高度竞争的对象识别基准测试任务上评估我们提出的体系结构(CIFAR-10,CIFAR-100, SVHN, and ImageNet)在大多数情况下,DenseNets都比现有技术有了重大改进,同时所需的计算更少,从而可以实现高性能。代码和预训练模型可在以下位置获得:https://github.com/liuzhuang13/DenseNet。
Densely connected convolutional networks(密集连接的卷积网络)_第1张图片
图片1:增长率为k = 4的5层密集块,每层都将所有先前的特征图作为输入。

介绍

卷积神经网络(CNN)已成为视觉对象识别的主要机器学习方法。尽管它们最初是在20多年前引入的[18],但计算机硬件和网络结构的改进才使 真正的深度卷积神经网络 的训练成为可能。最初的LeNet5 【19】由5层组成,VGG具有19 【29】,去年的 HighWay Network【34】 和 Residual Networks (ResNets) 【11】 突破了 100层的屏障。随着CNN越来越深入,出现了新的研究问题:当有关输入或梯度的信息经过许多层时,它可能会在到达网络末尾(或开始)时消失并“冲洗掉”。许多最近的出版物都解决了这个或相关的问题。ResNets【11】和Highway Networks【34】通过身份连接将信号从一层旁路到另一层。随机深度【13】通过在训练过程中随机丢弃各层来缩短ResNets,以提供更好的信息和梯度流。FractalNets 【17】重复地将几个并行层与不同数量的卷积块组合在一起,以获得较大的标称深度,同时在网络中保持许多短路径。尽管这些不同的方法在网络拓扑和训练过程方面有所不同,但是它们都具有一个关键特征:它们创建了从之前层到后面层的短路径。

在本文中,我们提出了一种架构,可以将这种见解提炼为简单的连接模式:为了确保最大程度的信息在网络中各层之间流动,我们将所有层(具有匹配的feature-map大小)彼此直接连接。为了保留前馈特性,每个层都从所有先前的图层获取附加输入,并将其自身的特征图传递给所有后续层。图1示意了这种布局。更重要的是,与ResNets相比,我们永远不会在将特征传递到图层之前通过求和来组合特征。相反,我们通过级联特征来组合它们。因此,第 L层具有L个输入,由所有前面的卷积块的feature-map组成。它自身的feature-map 被传递到所有后续层。这样一个L层的网络中就具有 L ( L + 1 ) 2 \frac{L(L+1)}{2} 2L(L+1) 个连接,而不是像传统的结构那样具有 L 个连接。由于其密集的连通性模式,我们将我们的方法称为密集卷积网络(DenseNet)。

一个可能违反直觉的效果是,这种密集的连接模式与传统的卷积网络相比,需要更少的参数,因为它不需要重新学习冗余的特征图。可以将传统的前馈体系结构视为具有状态的算法,该状态会逐层传递。每一层都从其上一层读取状态,并写入下一层。它会更改状态,但还会传递需要保留的信息。ResNets【11】通过附加身份转换使该信息保留变得明确。ResNets的最新变体【13】表明,许多层的贡献很小,实际上可以在训练过程中随机丢弃。他使ResNets的状态类似于(展开的)递归神经网络[21],但是ResNets的参数数量大得多,因为每一层都有自己的权重。我们提出的DenseNet体系结构明确区分了添加到网络的信息和保留的信息。DenseNet层非常狭窄(例如,每层12个过滤器),仅向网络的“集合知识”添加少量特征图,而其余特征图保持不变–并且最终分类器根据网络中的所有特征图做出决策。

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

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

相关工作

自从最初发现以来,对网络体系结构的探索一直是神经网络研究的一部分。神经网络的流行最近也复兴了这一研究领域。现代网络中越来越多的业内人士扩大了架构之间的差异,并激发了对不同连通性模式的探索和对旧研究思想的重新审视。

在1980年代的神经网络文学中,已经研究了类似于我们提出的密集网络布局的级联结构【3】。他们的开拓性工作专注于 以逐层方式训练的 完全连接的多层感知器。最近,使用批量梯度下降训练的全连接级联网络被提出【40】。尽管此方法对小型数据集有效,但仅可扩展到具有数百个参数的网络。在【9,23,31,41】中,发现通过跳跃连接 在CNN中使用多级特征 对于各种视觉任务都是有效的。与我们的工作平行,【1】为与我们类似的跨层连接的网络推导了一个纯粹的理论框架。

Highway Networks 【34】是最早提供有效训练100层以上的端到端网络的手段的建筑之一。通过与选通单元一起使用旁路路径,可以毫无困难地优化具有数百层的公路网。旁路路径被认为是简化这些非常深层网络训练的关键因素。ResNets 【11】进一步支持了这一点,其中纯身份映射用作旁路路径。ResNets在许多具有挑战性的图像识别,定位和检测任务(例如ImageNet和COCO对象检测)中取得了令人印象深刻的创纪录性能【11】。最近,随机深度作为成功训练1202层ResNet的方法被提出【13】。随机深度通过在训练过程中随机丢弃图层来改善对深层残差网络的训练。这表明可能不需要所有层,并且强调了深层(残留)网络中存在大量冗余。我们的论文部分地受到了这一观察的启发。具有预激活功能的ResNets还可以训练具有1000多个层的最新网络【12】。

一个正交方法,用于使网络更深(例如借助跳过连接) 增加网络宽度。 GoogLeNet 【36,37】使用“inception module”,该模块 由不同大小的过滤器生成的特征图 连接起来。在【38】中,提出了具有广泛广义残差块的ResNets的变体。实际上,只要深度足够,只需增加ResNets每层中的过滤器数量就可以提高其性能【42】。FractalNets还使用广泛的网络结构在多个数据集上取得了竞争性成果【17】。

DenseNets 并未从极深或极宽的架构中获得代表性的功能,而是通过特征重用来挖掘网络的潜力,从而产生易于训练且参数高效的浓缩模型。不同层学习的级联特征图会增加后续层输入的变化并提高效率。这构成了DenseNet和ResNet之间的主要区别。与也将不同层的功能连接在一起的 Inception networks 【36,37】相比,DenseNets更简单,更高效。

还有其他显著的网络体系结构创新也产生了竞争结果。Network in Network(NIN)【22】结构将微多层感知器包含到卷积层的过滤器中,以提取更复杂的特征。在深度监督网络(DSN)【20】中,内部层由辅助分类器直接监督,这可以加强早期层接收到的梯度。梯形网络【27,25】将横向连接引入自动编码器中,从而在半监督学习任务上产生了令人印象深刻的准确性。在【39】中,提出了深度融合网络(DFN)来通过组合不同基础网络的中间层来改善信息流。具有最小化重建损失的途径的网络扩展,也被证明可以改善图像分类模型【43】。

密集网

假设有单个图像 x 0 x_0 x0 通过一个卷积神经网络。网络包含 L 个层,每层都执行一个非线性转换 H l ( ⋅ ) H_{l}(\cdot) Hl(),这里 l 是层的索引。 H l ( ⋅ ) H_{l}(\cdot) Hl() 可以是诸如 卷积,池化,Relu激活,batch normalizatioin 的复合函数。我们将输出的第 l 层表示为 x l x_l xl

ResNets 传统的卷积前馈网络连接第 l 层的输出作为第 l+1 层的输入【16】,这引起了如下的层转换: X l = H l ( x l − 1 ) X_l=H_l(x_{l-1}) Xl=Hl(xl1) 。reset 【11】增加一个跳过连接,绕过非线性变换,通过一个身份函数:
x l = H l ( x l − 1 ) + x l − 1 ( 1 ) x_l=H_l(x_{l-1})+x_{l-1} \quad \quad (1) xl=Hl(xl1)+xl1(1)
ResNets的一个优点是,梯度可以直接通过身份函数从后面的层流到前面的层。但是,身份函数和 H l H_l Hl 的输出通过求和相结合,可能会阻碍网络中的信息流。

Dense connective: 为了进一步改善层之间的信息流,我们提出了一种不同的连接模式:我们引入了从任何层到所有后续层的直接连接。图1显示了所得DenseNet的布局。因此,第l层接收所有先前层的特征图: x 0 , ⋯ x l − 1 x_0,\cdots x_{l-1} x0xl1 作为输入:
x l = H l ( [ x 0 , x 1 , ⋯   , x l − 1 ] ) ( 2 ) x_l=H_l([x_0,x_1,\cdots,x_{l-1}]) \quad\quad (2) xl=Hl([x0,x1,,xl1])(2)
这里 [ x 0 , x 1 , ⋯   , x l − 1 ] [x_0,x_1,\cdots,x_{l-1}] [x0,x1,,xl1] 是前面 0 , 1 , 2 , ⋯   , l − 1 0,1,2,\cdots,l-1 0,1,2,,l1 层的级联。由于其紧密的连接性,我们将此网络架构称为“密集卷积网络”(DenseNet)。为了易于实现,我们将等式(2)中的 H l ( ⋅ ) H_l(\cdot) Hl() 的多个输入串联到一个张量中。

复合功能 我们将 H l ( ⋅ ) H_l(\cdot) Hl() 定义为三个连续运算的复合函数:批量归一化(BN)【14】,然后是 ReLU 【6】和一个 3×3的卷积(Conv)。

池化层 当特征图的大小改变时,等式(2)中使用的级联操作不可行。然而,卷积网络的重要组成部分是降低特征图大小的下采样层。为了便于在我们的体系结构中进行下采样,我们将网络划分为多个密集连接的密集块。看图2,我们将块之间的层称为过渡层,它们进行卷积和池化。我们的实验中使用的过渡层包括批处理规范化层和1×1卷积层,然后是一个 2×2的平均池化层。
在这里插入图片描述
图片2:具有三个密集块的深 DenseNet。两个相邻块之间的层称为过渡层并且通过卷积和池化更改功能图大小。

增长率 如果每一个函数 H l ( ⋅ ) H_l(\cdot) Hl() 生成 k 个特征图,则 第 l 层具有 k 0 + k × ( l − 1 ) k_0+k \times (l-1) k0+k×(l1) 其中 k 0 k_0 k0 是输入层的通道数。DenseNet与现有网络体系结构之间的一个重要区别是DenseNet可以具有非常狭窄的层,例如k = 12。我们指的是网络的超参数增长率。我们在第4节中表明,相对较小的增长率足以在我们测试的数据集上获得最新的结果。对此的一种解释是,每个层都可以访问其块中的所有先前的特征图,因此可以访问网络的“集体知识”。可以将特征图视为网络的全局状态。每个图层都将自己的 k 个特征图添加到此状态。增长率控制着每一层为全局状态贡献多少新信息。写入后的全局状态可以在网络中的任何位置进行访问,并且与传统的网络体系结构不同,无需将其逐层复制。

瓶颈层 尽管每一层仅生成k个输出特征图,但通常具有更多输入。在【37,11】中已经指出,可以在每次3×3卷积之前引入1×1卷积作为瓶颈层,以减少输入特征图的数量,从而提高计算效率。我们发现此设计对DenseNet特别有效,并且我们将具有此类瓶颈层的网络称为DenseNet-B,即 H l H_l Hl的 BN-ReLU-Conv(1×1)-BN-ReLU-Conv(3×3)版本。在我们的实验中,我们让每个1×1卷积产生4个特征图。

压缩 为了进一步提高模型的紧凑性,我们可以减少过渡层的特征图数量。如果密集块包含m个特征图,则让下面的过渡层生成 ⌊ θ m ⌋ \lfloor\theta_m\rfloor θm 个输出特征图,其中 0 < θ ≤ 1 0<\theta\leq1 0<θ1称为压缩因子。当 θ = 1 \theta=1 θ=1 时,跨过过渡层的特征图数量保持不变。我们将 θ < 1 \theta<1 θ<1 的DenseNet称为DenseNet-C,并在实验中将 θ \theta θ 设置为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},{L = 100,k = 12}和{L = 100,k = 24}的基本DenseNet结构进行试验。对于DenseNet-BC,评估 配置为{L = 100,k = 12},{L = 250,k = 24}和{L = 190,k = 40}网络

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

Densely connected convolutional networks(密集连接的卷积网络)_第2张图片
表1:用于ImageNet的DenseNet体系结构。所有网络的增长率为 k =32。请注意,表中显示的每个“ conv”层对应于序列 BN-ReLU-Conv。

4 实验

我们通过经验证明DenseNet在多个基准数据集上的有效性,并与最新的体系结构进行比较,尤其是与ResNet及其变体进行比较。
Densely connected convolutional networks(密集连接的卷积网络)_第3张图片
表格2:CIFAR和SVHN数据集的错误率(%)。k 表示网络的增长率。超过所有竞争方法的结果均为粗体,而总体最佳结果为蓝色。“ +”表示标准数据扩充(转换和/或镜像)。∗表示结果由我们自己决定。使用Dropout获得DenseNets的所有没有数据扩充的结果(C10,C100,SVHN)。与ResNet相比,DenseNets使用更少的参数时可实现更低的错误率。如果没有数据扩充,DenseNet的性能将大大提高。

4.1 数据集

CIFAR. 两个CIFAR数据集【15】包含32×32像素的彩色自然图像。CIFAR-10(C10)包含从10类和100种CIFAR-100(C100)中绘制的图像。训练集和测试集分别包含50,000张和10,000张图像,我们保留5,000张训练图像作为验证集。我们采用了标准的数据扩展方案(镜像/移位),该方案被广泛用于这两个数据集【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]包含来自1,000个类别的120万张用于训练的图像和50,000张用于验证的图像。我们采用与[8、11、12]中相同的数据增强方案来训练图像,并在测试时应用大小为224×224的单作物或10作物。根据[11,12,13],我们报告验证集的分类错误。

4.2 训练

所有网络均使用随机梯度下降(SGD)进行训练。在CIFAR和SVHN上,我们使用批量大小64 分别训练300和40个 epochs 。初始学习率设置为0.1,然后除以训练时期总数的50%和75%的10。在ImageNet上,我们训练了90个 epoch 的模型,批量大小为256。最初将学习率设置为0.1,然后在epoch 30和60的时候降低10倍。请注意,DenseNet的简单实现可能会导致内存效率低下。要减少GPU上的内存消耗,请参阅我们关于DenseNets的内存高效实现的技术报告【26】。

根据【8】,我们使用 1 0 − 4 10^{-4} 104 的权重衰减和0.9的奈斯特洛夫动量【35】而没有衰减。我们采用【10】引入的权重初始化。对于没有数据增强的三个数据集,即C10,C100和SVHN,我们在每个卷积层(第一个卷积层除外)之后添加一个dropout 层【33】,并将dropout 概率设置为0.2。对于每个任务和模型设置,仅对测试错误进行一次评估。

4.3 CIFAR和SVHN的分类结果

我们使用不同的深度 L 和 增长率 k 来训练 DenseNet 。表2显示了CIFAR和SVHN的主要结果。为了突出总体趋势,我们将所有结果标记为优于现有的最新粗体显示,而总体最佳结果显示为蓝色。
Densely connected convolutional networks(密集连接的卷积网络)_第4张图片
表格3(左边):ImageNet验证集上的前1个和前5个错误率,并进行了单次/十次测试。
图片3(右边):ImageNet验证数据集上DenseNets和ResNets top-1错误率(单次测试)的比较,作为测试期间学习的参数(左)和FLOP的函数(右)。

准确性. 可能最明显的趋势可能来自表2的最后一行,这表明在所有CIFAR数据集上,L = 190和k = 40的DenseNet-BC均优于现有的最新技术。它在C10 +上的错误率为3.46%,在C100 +上的错误率为17.18%,远低于广泛的ResNet架构所实现的错误率【42】。我们在C10和C100上获得的最佳结果(不进行数据增强)甚至更令人鼓舞:两者均比使用分路路径正则化的Fractal-Net低近30%【17】。在SVHN上,具有 dropout 层的时候,L = 100andk = 24的DenseNet也超过了广泛的ResNet所获得的当前最佳结果。但是,250层的DenseNet-BC不能比较短的DenseNet-BC进一步提高性能。可以用SVHN解释这是一个相对容易的任务,而极深的模型可能会过拟合训练集。

容量. 在没有压缩或瓶颈层的情况下,DenseNets的总体趋势是随着L 和 k 的增加而表现更好。我们将此主要归因于模型容量的相应增长。这个通过C10 +和C100 +列更好的进行了演示。在C10 +上,随着参数数量从1.0M增加到7.0M到27.2M,错误从5.24%下降到4.10%,最后下降到3.74%。在C100 +上,我们观察到了类似的趋势。这表明DenseNets可以利用更大和更深层模型的增强表示能力。这也表明它们没有残留网络的过度拟合或优化困难【11】。

参数效率. 表2中的结果表明,DenseNets比其他体系结构(尤其是ResNets)更有效地利用参数。具有瓶颈结构并在过渡层减小尺寸的DenseNet-BC特别有效。例如,我们的250层模型仅具有1530万个参数,但始终优于其他具有超过3000万个参数的模型(例如FractalNet和Wide ResNets)。我们还着重指出,L = 100和k = 12的DenseNet-BC的性能(例如,C10 +的误差为4.51%vs 4.62%,C100 +的误差为22.27%vs 22.71%)可与使用90%的参数的1001层预激活ResNet媲美。图4(右图)显示了C10 +上这两个网络的训练损失和测试错误。1001层deepResNet收敛到较低的训练损耗值,但测试误差相似。我们将在下面更详细地分析这种影响。

过度拟合. 更有效地使用参数的一个积极副作用是DenseNets不太容易过度拟合。我们观察到,在不进行数据扩充的数据集上,DenseNet体系结构相对于先前工作的改进尤其明显。在C10上,改善表示相对误差降低了29%,从7.33%降低到5.19%。在C100上,减少幅度约为30%,从28.20%降至19.64%。在我们的实验中,我们观察到了在单个设置中的潜在过度拟合:在C10上,通过将k = 12增加到k = 24产生的参数的4倍增长导致误差从5.77%到5.83%的适度增加。DenseNet-BC瓶颈和压缩层似乎是应对这种趋势的有效方法。
Densely connected convolutional networks(密集连接的卷积网络)_第5张图片
图片4:左:DenseNet变体之间C10 +上参数效率的比较。中:DenseNet-BC与(预激活)ResNets之间的参数效率比较。 DenseNet-BC需要大约1/3的参数作为ResNet,以实现可比的精度。右图:参数超过10M的1001层预激活ResNet [12]和仅参数0.8M的100层DenseNet的训练和测试曲线。

4.4 ImageNet上的分类结果

我们在ImageNet分类任务中评估了具有不同深度和增长率的DenseNet-BC,并将其与最新的ResNet架构进行了比较。为了确保两种架构之间的公平比较,我们采用了【8】的ResNet采用公开可用的Torch实施方案,从而消除了所有其他因素,例如数据预处理和优化设置的差异。我们仅用DenseNet-BC网络替换ResNet模型,并使所有实验设置与用于ResNet的设置完全相同。

我们在表3中报告了ImageNet上DenseNets的单次裁剪和10次裁剪验证错误。图3显示了DenseNets和ResNets的单作物top-1验证错误与参数数量(左)和FLOP(右)的关系。图中的结果表明,DenseNets的性能与最新的ResNets相当,而所需的参数和计算量却大大减少,以实现可比的性能。例如,具有20M参数模型的DenseNet-201产生的验证错误与参数超过40M的101层ResNet产生相似的验证错误。从右面板可以观察到类似的趋势,该图将验证误差绘制为FLOP数量的函数:DenseNet的计算量与ResNet-50相当,而ResNet-101的计算量却是ResNet-50的两倍。

值得注意的是,我们的实验设置暗示我们使用针对ResNets优化的超参数设置,但不适用于DenseNets。可以想象,更广泛的超参数搜索可以进一步提高DenseNet在ImageNet上的性能。

5.讨论

从表面上看,DenseNets与ResNets非常相似:ResNets:等式(2)不同于式(1)仅在于将 H l ( ⋅ ) H_l(\cdot) Hl() 的输入串联起来而不是求和。但是,这种看似很小的修改的含义导致两种网络体系结构的行为实质上不同。

模型紧凑度 输入级联的直接结果是,所有随后的层都可以访问通过DenseNet层中的任何一层学习的特征图。这鼓励了整个网络中功能的重用,并导致了更紧凑的模型。图4的左两图显示了一个实验的结果,该实验旨在比较DenseNets所有变体的参数效率(左)和可比较的ResNet体系结构(中)。我们在C10 +上训练多个具有不同深度的小型网络,并绘制它们的测试精度作为网络参数的函数。与其他流行的网络体系结构(例如AlexNet [16]或VGG-net [29])相比,具有预激活功能的ResNet使用较少的参数,而通常可以获得更好的结果[12]。因此,我们将DenseNet(k = 12)与该架构进行比较。DenseNet的培训设置与上一节相同。

该图显示DenseNet-BC始终是DenseNet的参数最有效的变体。此外,为了达到相同的精度水平,DenseNet-BC仅需要大约ResNets(中间图)参数的1/3。此结果与ImageNetwe的结果一致,如图3所示。图4中的右图显示,仅具有0.8M可训练参数的DenseNet-BC能够达到与具有10.2M参数的1001层(预激活)ResNet [12]相当的精度。

隐式深度监督 密集卷积网络精度提高的一种解释可能是各个层通过较短的连接而受到损耗函数的额外监视。可以解释DenseNets来执行一种“深度监督”。深度监督的好处以前已经在深度监督的网络(DSN; [20])中得到了证明,该网络的每个隐含层都有分类器,从而迫使中间层学习判别特征。

DenseNets以隐式方式执行类似的深度监控:网络顶部的单个分类器通过最多两个或三个过渡层对所有层提供直接监控。但是,DenseNets的损失函数和梯度实际上不那么复杂,因为在所有层之间共享相同的损失函数。

随机 vs 确定连接 密集卷积网络与剩余网络的随机深度正则化之间存在有趣的联系[13]。在随机深度中,残留网络中的各层会随机掉落,从而在周围各层之间建立直接连接。由于池化层从未被丢弃,因此网络会产生与DenseNet类似的连接模式:如果所有中间层都被随机丢弃,则在同一池化层之间的任何两层都将直接连接的可能性很小。尽管这些方法最终会完全不同,但是DenseNet对随机深度的解释可能会为这种正则化工具的成功提供见识。

特征重用 根据设计,DenseNets允许各层访问其先前所有层的特征图(尽管有时通过过渡层)。我们进行了一项实验,以调查受过训练的网络是否利用了这一机会。我们首先在C10 +上训练DenseNet,L = 40 并且 k = 12。对于一个块内的每个卷积层L,我们计算分配给各层连接的平均(绝对)权重。图5显示了所有三个密集块的热图。平均绝对重量用作卷积层与其先前层之间依赖性的替代。位置(L,S)中的红点表示,平均而言,层L充分利用了之前生成的S层的特征图。可以从图中得出几个观察结果:

  • 所有层将权重分布在同一块内的许多输入上。这表明,由非常早的层提取的特征确实确实被深层在同一密集块中直接使用。
  • 过渡层的权重也将其权重分布在前一个密集块内的所有层上,指示信息通过少量间接从DenseNet的第一层流向最后一层。
  • 第二个和第三个密集块内的层始终将最小的权重分配给过渡层(三角形的最上一行)的输出,表明过渡层输出许多冗余特征(平均权重较低)。这与DenseNet-BC的出色结果保持了一致,这些输出正是经过压缩的。
  • 尽管最右边显示的最终分类层也使用了整个密集块的权重,但似乎对最终特征图的关注程度很高,这表明网络后期可能会产生一些更高级的特征
    Densely connected convolutional networks(密集连接的卷积网络)_第6张图片
    图片5: 经过训练的DenseNet中卷积层的平均绝对过滤器权重。像素的颜色(S,L)编码将卷积层连接到密集块内的L的权重的平均L1范数(通过输入特征图的数量标准化)。用黑色矩形突出显示的三列对应于两个过渡层和分类层。第一行对连接到密集块输入层的权重进行编码。

6. 结论

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

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

参考文献

[1] C. Cortes, X. Gonzalvo, V. Kuznetsov, M. Mohri, andS. Yang. Adanet: Adaptive structural learning of artificialneural networks.arXiv preprint arXiv:1607.01097, 2016. 2
Densely connected convolutional networks(密集连接的卷积网络)_第7张图片

你可能感兴趣的:(计算机视觉)