继往开来,多重残差|DenseNet(一)

密集连接的卷积网络

论文题目:Densely Connected Convolutional Networks

paper是康奈尔大学发表在CVPR 2017上的工作

论文地址:链接

Abstract

最近的工作表明,如果卷积网络在靠近输入的层和靠近输出的层之间包含较短的连接,则它们可以更深、更准确和更有效地训练。本文接受了这一观察并介绍了密集卷积网络(DenseNet),它以前馈方式将每一层连接到其它每一层。具有 L L L 层的传统卷积网络有 L L L 个连接——每层与其后续层之间有一个连接——本文的网络有 L ( L + 1 ) 2 \frac{L(L+1)}{2} 2L(L+1) 个直接连接。对于每一层,所有前面层的特征图都用作输入,它自己的特征图用作所有后续层的输入。DenseNets 有几个优势:它缓解了梯度消失问题,加强了特征传播,鼓励特征重用,并大大减少了参数量。作者在四个目标识别基准任务(CIF AR-10、CIF AR-100、SVHN 和 ImageNet)上评估本文提出的架构。DenseNets在大多数方面都比最先进的技术好,同时需要更少的计算量,实现了高性能。 代码和预训练模型发布在:github链接

1. Introduction

卷积神经网络 (CNN) 已成为视觉目标识别的主要机器学习方法。尽管它们最初是在 20 多年前引入的,但计算机硬件和网络结构的改进直到最近才能够训练真正的深度 CNN。最初的 LeNet5有 5 层,VGG 有 19 层,直到去年,高速公路网络(Highway Networks)和残差网络(ResNets)才跨越了100层的障碍。

随着 CNN 变得越来越深,出现了一个新的研究问题:当有关输入或梯度的信息通过许多层时,它可能会在到达网络的末端(或开始)时消失并“wash out”。许多最近的工作来解决这个或相关的问题。 ResNets和 Highway Networks通过恒等连接将信号从一层绕过到下一层。Stochastic depth在训练期间随机丢弃层来缩短ResNet,以提供更好的信息和梯度流。 FractalNets将多个并行层序列与不同数量的卷积块重复组合以获得较大的nominal深度,同时在网络中保持许多短路径。尽管这些方法在网络拓扑和训练过程中有所不同,但它们都有一个关键特征:它们创建了从浅层到深层的短路径

本文提出了一种架构,将这种insight提炼成一个简单的连接模式:为了确保网络中各层之间的最大信息流,将所有层(匹配的特征图大小)直接相互连接。为了保持前馈特性,每一层都从所有前面的层获得额外的输入,并将其自己的特征图传递给所有后续层。图 1 示意了这种布局。重要的是,与ResNets相比,在将特征传递到层之前从不通过求和来组合特征。而是通过连接(concat) 它们来组合特征。因此,第 ℓ t h \ell^{t h} th层有 ℓ \ell 个输入,由所有先前卷积块的特征图组成。它自己的特征图被传递到所有 L − ℓ L-\ell L后续层。这在 L L L层网络中引入了 L ( L + 1 ) 2 \frac{L(L+1)}{2} 2L(L+1)个连接,不是像传统架构中那样只引入 L L L个连接。由于其密集的连接模式,将本文的方法称为密集卷积网络(DenseNet)。

图1

图 1:增长率为 k = 4 k=4 k=4的5层密集块。每一层都将所有前面的特征图作为输入。

这种密集连接模式的一个可能违反直觉的效果是,与传统卷积网络相比,它需要的参数更少,因为不需要重新学习冗余的特征图。传统的前馈架构可以被视为具有状态的算法,该状态在层与层之间传递。每一层都从其前一层读取状态并写入后续层。它改变了状态,但也传递了需要保留的信息。ResNets通过加性恒等变换使这种信息保存变得明确。 ResNets的最新变体表明,许多层的贡献很小,实际上可以在训练期间随机丢弃。这使得 ResNets 的状态类似于(展开的)循环神经网络,但 ResNets 的参数量要大得多,因为每一层都有自己的权重。DenseNet架构明确区分了添加到网络的信息和保留的信息。 DenseNet 层非常窄(例如,每层 12 个滤波器),仅将一小部分特征图添加到网络的“collective knowledge”中,并保持其余特征图不变,最终分类器根据所有特征图做出决定。

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

在四个基准数据集(CIFAR-10、CIFAR-100、SVHN 和 ImageNet)上评估DenseNets。本文的模型往往需要比现有算法更少的参数,并且具有相当的准确性。此外,在大多数基准测试任务上的表现都显著优于当前最先进的结果。

2. Related Work

自神经网络最初发现以来,对网络架构的探索一直是神经网络研究的一部分。最近神经网络的重新流行也使这一研究领域重新活跃起来。现代网络中层数的增加放大了架构之间的差异,促使人们探索不同的连接模式,并重新审视旧的研究思路。

与本文提出的密集网络布局类似的级联结构在20世纪80年代的神经网络文献中已经被研究过[3]。他们的开创性工作集中在以逐层方式训练的全连接的多层感知机上。最近,提出了用批量梯度下降训练的全连接级联网络 [39]。尽管对小型数据集有效,但这种方法仅适用于具有几百个参数的网络。在 [9, 23, 30, 40] 中,已经发现通过跳跃连接在 CNN 中利用多级特征对于各种视觉任务是有效的。与本文的工作平行,[1] 为具有类似于本文的跨层连接的网络推导出了一个纯理论框架。高速公路网络是首批提供有效训练超过100层的端到端网络的架构之一。使用bypass路径和门控单元,可以优化具有数百层的高速公路网络。bypass路径被认为是简化这些非常深的网络训练的关键因素。ResNets进一步支持了这一点,其中纯恒等映射被用作bypass路径。 ResNet 在许多具有挑战性的图像识别、定位和检测任务(例如 ImageNet 和 COCO 目标检测)中取得了令人印象深刻的破纪录性能。最近,提出了随机深度作为成功训练 1202 层ResNet的一种方法。随机深度通过在训练期间随机丢弃层来改进深度残差网络的训练。这表明可能并非所有层都需要,并强调深度(残差)网络中存在大量冗余。本文部分受到了这一观察的启发。具有预激活功能的ResNet还有助于训练具有$>$1000层的最先进网络。

使网络更深的正交方法(例如,借助跳过连接)是增加网络宽度。GoogLeNet使用“Inception 模块”,它连接由不同大小的滤波器产生的特征图。在 [37] 中,提出了一种具有宽泛化残差块的 ResNet 变体。事实上,只要深度足够,简单地增加 ResNet 每一层中的滤波器数量就可以提高其性能。FractalNets还使用广泛的网络结构在多个数据集上取得了具有竞争力的结果。

DenseNets不是从极深或极宽的架构中汲取表征能力,而是通过特征重用利用网络的潜力,产生易于训练且参数效率高的浓缩模型。连接不同层学习的特征图增加了后续层输入的变化并提高了效率。这是DenseNets和ResNets之间的主要区别。与同样连接来自不同层的特征的Inception网络相比,DenseNets 更简单、更高效。

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

3. DenseNets

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

ResNets.


传统的卷积前馈网络将第 ℓ t h \ell^{t h} th层的输出作为输入连接到第 ( ℓ + 1 ) t h (\ell+1)^{t h} (+1)th层,从而产生以下层转换: x ℓ = H ℓ ( x ℓ − 1 ) \mathbf{x}_{\ell}=H_{\ell}\left(\mathbf{x}_{\ell-1}\right) x=H(x1)。 ResNets增加了一个跳过连接,用一个恒等函数绕过了非线性转换:
x ℓ = H ℓ ( x ℓ − 1 ) + x ℓ − 1 ( 1 ) \mathbf{x}_{\ell}=H_{\ell}\left(\mathbf{x}_{\ell-1}\right)+\mathbf{x}_{\ell-1} \quad (1) x=H(x1)+x1(1)
ResNets 的一个优点是梯度可以直接通过恒等函数从后面的层流到前面的层。但是,恒等函数和 H ℓ H_{\ell} H的输出是通过求和组合的,这可能会阻碍网络中的信息流。

Dense connectivity.


为了进一步改善层之间的信息流,作者提出了一种不同的连接模式:引入了从任何层到所有后续层的直接连接。图 1 示意性地说明了生成的 DenseNet 的布局。因此,第 ℓ t h \ell^{t h} th层接收所有前面层的特征图, x 0 , … , x ℓ − 1 \mathbf{x}_{0}, \ldots, \mathbf{x}_{\ell-1} x0,,x1,作为输入:
x ℓ = H ℓ ( [ x 0 , x 1 , … , x ℓ − 1 ] ) ( 2 ) \mathbf{x}_{\ell}=H_{\ell}\left(\left[\mathbf{x}_{0}, \mathbf{x}_{1}, \ldots, \mathbf{x}_{\ell-1}\right]\right) \quad(2) x=H([x0,x1,,x1])(2)
其中 [ x 0 , x 1 , … , x ℓ − 1 ] \left[\mathbf{x}_{0}, \mathbf{x}_{1}, \ldots, \mathbf{x}_{\ell-1}\right] [x0,x1,,x1]是指在第 0 , … , ℓ − 1 0, \ldots, \ell-1 0,,1层中生成的特征图的级联。由于其密集的连接性,将此网络架构称为密集卷积网络(DenseNet)。为了便于实现,将上式中 H ℓ ( ⋅ ) H_{\ell}(\cdot) H()的多个输入连接成单个张量。

Composite function.


受 [12] 的启发,将 H ℓ ( ⋅ ) H_{\ell}(\cdot) H()定义为三个连续操作的复合函数:批量归一化 (BN),然后是整流线性单元 (ReLU) 和 3 × 3 3 \times 3 3×3卷积 (Conv )。

Pooling layers.


当特征图的大小发生变化时,式(2)中使用的连接操作是不可行的。然而,卷积网络的一个重要部分是下采样层,它会改变特征图的大小。为了便于在本文的架构中进行下采样,将网络划分为多个密集连接的密集块;参见图 2。将块之间的层称为过渡层,它们进行卷积和池化。实验中使用的过渡层由一个批量归一化层和一个 1 × 1 1\times 1 1×1卷积层和一个 2 × 2 2 \times 2 2×2平均池化层组成。

图2

图 2:具有三个密集块的深度 DenseNet。两个相邻块之间的层称为过渡层,并通过卷积和池化改变特征图大小。

Growth rate.


如果每个函数 H ℓ H_{\ell} H产生 k k k个特征图,则第 ℓ t h \ell^{t h} th层有 k 0 + k × ( ℓ − 1 ) k_{0}+k \times(\ell-1) k0+k×(1)个输入特征图,其中 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个输出特征图,但它有更多的输入。在 [36, 11] 中已经注意到,可以在每个 3 × 3 3\times 3 3×3卷积之前引入一个 1 × 1 1\times 1 1×1卷积作为瓶颈层,以减少输入特征图的数量,从而提高计算效率。作者发现这种设计对DenseNet特别有效,将本文的网络称为具有这样一个瓶颈层的网络,即 H ℓ H_{\ell} H的BN-ReLU-Conv ( 1 × (1 \times (1× 1)-BN-ReLU-Conv ( 3 × 3 ) (3 \times 3) (3×3)版本,如DenseNet-B。在实验时,让每个 1 × 1 1 \times 1 1×1卷积产生 4 k 4 k 4k个特征图。

Compression.


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

Implementation Details.


在除ImageNet之外的所有数据集上,实验中使用的DenseNet具有三个密集块,每个块具有相同的层数。在进入第一个密集块之前,对输入图像执行具有 16 个(或 DenseNet-BC 增长率的两倍)输出通道的卷积。对于核大小为 3 × 3 3 \times 3 3×3的卷积层,输入的每一边都用一个像素补零,以保持特征图大小固定。使用 1 × 1 1 \times 1 1×1卷积和 2 × 2 2 \times 2 2×2平均池化作为两个连续密集块之间的过渡层。在最后一个密集块结束时,执行全局平均池化,然后附加一个softmax分类器。三个密集块中的特征图大小分别为 32 × 32 , 16 × 16 32 \times 32,16 \times 16 32×32,16×16 8 × 8 8 \times 8 8×8。用配置 { L = 40 , k = 12 } , { L = \{L=40, k=12\},\{L= { L=40,k=12},{ L= 100 , k = 12 } 100, k=12\} 100,k=12} { L = 100 , k = 24 } \{L=100, k=24\} { L=100,k=24}来实验基本的 DenseNet结构。对于 DenseNet-BC,评估具有配置 { 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上的实验,在 224 × 224 224 \times 224 224×224输入图像上使用具有4个密集块的DenseNet-BC结构。初始卷积层包含 2 k 2 k 2k个大小为 7 × 7 7 \times 7 7×7的卷积,步长为2;所有其他层中的特征图的数量也来自设置 k k k。在ImageNet上使用的确切网络配置如表 1 所示。

表 1:ImageNet 的 DenseNet 架构。前 3 个网络的增长率为 k = 32 k = 32 k=32,对于DenseNet-161, k = 48 k = 48 k=48。注意,表中显示的每个“conv”层对应于BN-ReLU-Conv。

表1

参考文献

[1] C. Cortes, X. Gonzalvo, V . Kuznetsov, M. Mohri, and S. Y ang. Adanet: Adaptive structural learning of artificial neural networks. arXiv preprint arXiv:1607.01097, 2016. 2

[3] S. E. Fahlman and C. Lebiere. The cascade-correlation learning architecture. In NIPS, 1989. 2

[9] B. Hariharan, P . Arbeláez, R. Girshick, and J. Malik. Hypercolumns for object segmentation and fine-grained localization. In CVPR, 2015. 2

[11] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In CVPR, 2016. 1, 2, 3, 4, 5, 6

[12] K. He, X. Zhang, S. Ren, and J. Sun. Identity mappings in deep residual networks. In ECCV, 2016. 2, 3, 5, 7

[23] J. Long, E. Shelhamer, and T. Darrell. Fully convolutional networks for semantic segmentation. In CVPR, 2015. 2

[30] P . Sermanet, K. Kavukcuoglu, S. Chintala, and Y . LeCun. Pedestrian detection with unsupervised multi-stage feature learning. In CVPR, 2013. 2

[36] C. Szegedy, V . V anhoucke, S. Ioffe, J. Shlens, and Z. Wojna. Rethinking the inception architecture for computer vision. In CVPR, 2016. 2, 3, 4

[37] S. Targ, D. Almeida, and K. Lyman. Resnet in resnet: Generalizing residual architectures. arXiv preprint arXiv:1603.08029, 2016. 2

[38] J. Wang, Z. Wei, T. Zhang, and W. Zeng. Deeply-fused nets. arXiv preprint arXiv:1605.07716, 2016. 3

[39] B. M. Wilamowski and H. Y u. Neural network learning without backpropagation. IEEE Transactions on Neural Networks, 21(11):1793–1803, 2010. 2

[40] S. Y ang and D. Ramanan. Multi-scale recognition with dagcnns. In ICCV, 2015. 2

猜你喜欢

转载自blog.csdn.net/wl1780852311/article/details/123214928