当前位置:网站首页>DenseNet网络论文学习笔记
DenseNet网络论文学习笔记
2022-07-01 02:24:00 【麻花地】
DenseNet网络论文学习笔记
原文地址:Densely Connected Convolutional Networks
Abstract
最近的研究表明,如果卷积网络包含接近输入层和接近输出层之间的较短连接,则卷积网络可以更深入、更准确、更有效地进行训练。在本文中,我们接受了这一观察结果,并引入了稠密卷积网络(DenseNet),它以前馈方式将每一层连接到其他每一层。传统的L层卷积网络有L个连接,每个层和后续层之间有一个连接,而我们的网络有L(L+1/2个直接连接。对于每一层,所有先前层的特征图用作输入,其自身的特征图用作所有后续层的输入。DenseNets有几个引人注目的优点:它们缓解了消失梯度问题,加强了特征传播,鼓励了特征重用,并大大减少了参数数量。我们在四个极具竞争力的对象识别基准任务(CIFAR-10、CIFAR-100、SVHN和ImageNet)上评估了我们提出的体系结构。DenseNets在大多数方面都比最先进的技术有了显著的改进,同时需要较少的计算来实现高性能。代码和预先培训的模型可在https://github.com/liuzhuang13/DenseNet.
1. Introduction
卷积神经网络(CNN)已成为视觉目标识别的主要机器学习方法。尽管它们最初是在20多年前引入的[18],但计算机硬件和网络结构的改进直到最近才使真正深入的CNN培训成为可能。最初的LeNet5由5层组成,VGG有19层,仅去年才有Highway Networks [34] and Residual Networks (ResNets) [11] 超过100层屏障。
随着CNN越来越深入,出现了一个新的研究问题:当有关输入或梯度的信息通过许多层时,当它到达网络的末端(或开始)时,它可能会消失并“洗掉”。最近的许多出版物都解决了这一问题或相关问题。RESNET和Highway 网通过身份连接将信号从一层绕过到下一层。随机深度[13]通过在训练过程中随机丢弃层来缩短重网,以获得更好的信息和梯度流。分形网[17]反复组合多个具有不同卷积块数的平行层序列,以获得较大的标称深度,同时在网络中保持许多短路径。尽管这些不同的方法在网络拓扑和训练过程上有所不同,但它们都有一个关键的特点:它们创建了从早期层到后期层的短路径。
在本文中,我们提出了一种架构,将这种洞察力提炼为一种简单的连接模式:为了确保网络中各层之间的最大信息流,我们将所有层(具有匹配的特征图大小)直接相互连接。为了保持前馈特性,每个层从所有前面的层获得额外的输入,并将其自己的特征映射传递给所有后续层。图1示意性地说明了这种布局。关键的是,与resnet相比,在将特征传递到层之前,我们从不通过求和来组合特征;相反,我们通过concatenating功能来组合功能。因此, l t h l^{th} lth层具有l输入,包括所有先前卷积块的特征映射。它自己的特征映射将传递给所有 L − l L−l L−l 后续层。这将在L层网络中引入 L ( L + 1 ) / 2 L(L+1)/2 L(L+1)/2连接,而不是像传统体系结构中那样只引入L。由于其密集的连接性模式,我们将我们的方法称为密集卷积网络(DenseNet)。

这种密集连接性模式的一个可能违反直觉的效果是,与传统卷积网络相比,它需要的参数更少,因为不需要重新学习冗余的特征映射。传统的前馈体系结构可以被视为具有状态的算法,状态是从一层传递到另一层的。每一层从其前一层读取状态并写入下一层。它改变了状态,但也传递了需要保留的信息。ResNets[11]通过加性身份转换使这种信息保持明确。RESNET的最新变化【13】表明,许多层的贡献很小,实际上可以在训练期间随机丢弃。这使得ResNets的状态类似于(展开的)递归神经网络[21],但ResNets的参数数量大大增加,因为每一层都有自己的权重。我们提出的DenseNet体系结构明确区分了添加到网络的信息和保留的信息。DenseNet层非常窄(例如,每层12个过滤器),只向网络的“集体知识”中添加了一小组特征映射,并保持其余特征映射不变,最终分类器根据网络中的所有特征映射做出决策。
除了更好的参数效率外,DenseNets的一大优势是改进了整个网络的信息流和梯度,这使得它们易于训练。每一层都可以直接访问损失函数和原始输入信号的梯度,从而实现隐含的深度监控【20】。这有助于培训更深层次的网络体系结构。此外,我们还观察到密集连接具有正则化效果,这可以减少训练集规模较小的任务的过度拟合。
我们在四个极具竞争力的基准数据集(CIFAR-10、CIFAR-100、SVHN和ImageNet)上评估DenseNets。我们的模型往往需要比现有算法少得多的参数,且精度相当。此外,我们在大多数基准测试任务上的表现明显优于当前最先进的结果。
2. Related Work
自神经网络最初被发现以来,对网络体系结构的探索一直是神经网络研究的一部分。最近神经网络的重新流行也使这一研究领域重新活跃起来。现代网络中越来越多的层放大了架构之间的差异,并激发了对不同连接模式的探索和对旧研究思想的重新审视。
20世纪80年代的神经网络文献中已经研究了类似于我们提出的密集网络布局的级联结构[3]。他们的开创性工作专注于以逐层方式训练的完全连接的多层感知机。最近,提出了用批量梯度下降法训练完全连接的级联网络[40]。虽然这种方法在小型数据集上有效,但它只能扩展到具有数百个参数的网络。在文献[9、23、31、41]中,通过跳跃连接利用CNN中的多级特征对于各种视觉任务都是有效的。与我们的工作平行,[1]推导出了一个与我们类似的跨层连接网络的纯理论框架。
Highway网[34]是首批提供了有效培训具有100多个层的端到端网络的方法的体系结构之一。使用旁路路径和选通单元,可以轻松优化具有数百层的公路网。旁路路径被认为是简化这些深度网络训练的关键因素。ResNets[11]进一步支持这一点,在ResNets中,纯身份映射被用作旁路路径。Resnet在许多具有挑战性的图像识别、定位和检测任务上取得了令人印象深刻的破纪录性能,如ImageNet和COCO目标检测[11]。最近,有人提出将随机深度作为成功训练1202层ResNet的一种方法【13】。随机深度通过在训练过程中随机丢弃层来改进深度残差网络的训练。**这表明并非所有层都是必需的,并突显出深层(剩余)网络中存在大量冗余。**我们的论文部分受到了这一观察结果的启发。具有预激活功能的RESNET还可以帮助培训超过1000层的最先进网络[12]。
使网络更深的正交方法(例如,借助跳过连接)是增加网络宽度。GoogLeNet[36,37]使用了一个“初始模块”,将不同大小的过滤器生成的特征图连接起来。在[38]中,提出了一种具有宽广义剩余块的RESNET变体。事实上,只需增加深度足够,Resnet可以提高其性能[42]。分形网还通过使用广泛的网络结构在多个数据集上取得了竞争性的结果【17】。
DenseNets没有从极深或极广的体系结构中获得代表性的力量,而是通过功能重用来开发网络的潜力,生成易于训练且参数效率高的精简模型。将不同图层学习的特征地图串联起来,可以增加后续图层输入的变化,并提高效率。这是DenseNets和Resnet之间的主要区别。与初始网络(36,37)相比,Densenet更简单,效率更高。初始网络也连接不同层的特征。
还有其他值得注意的网络架构创新,它们产生了有竞争力的结果。网络中的网络(NIN)[22]结构将微型多层感知器放入卷积层的滤波器中,以提取更复杂的特征。在深度监督网络(DSN)[20]中,内部层由辅助分类器直接监督,这可以增强早期层接收到的梯度。梯形网络[27,25]将横向连接引入自动编码器,在半监督学习任务中产生令人印象深刻的精确度。在文献[39]中,提出了深度融合网络(DFN),通过组合不同基础网络的中间层来改善信息流。研究还表明,增加具有最小化重建损失的路径的网络,可以改进图像分类模型[43]。
3. DenseNets
考虑通过卷积网络的单个图像x0。该网络由L个层组成,每个层都实现了非线性转换H’(·),其中“索引”层。H’(·)可以是批量归一化(BN)[14]、校正线性单元(ReLU)[6]、池化(19)或卷积(Conv)等操作的复合函数。我们将 l t h l^{th} lth层的输出表示为 x l x_l xl。
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(xl−1). ResNets【11】添加了一个跳过连接,通过标识函数绕过非线性转换:

ResNets的一个优点是,梯度可以直接通过identity函数从后面的层流向前面的层。然而,identity函数和 H l H_l Hl的输出通过求和进行组合,这可能会阻碍网络中的信息流。
Dense connectivity.
为了进一步改善层之间的信息流,我们提出了一种不同的连接模式:我们引入从任何层到所有后续层的直接连接。图1示意性地说明了最终DenseNet的布局。因此, l t h l^{th} lth层”接收所有先前层的特征图 x 0 , . . . , x l − 1 x0,...,x_l−1 x0,...,xl−1,作为输入:

式中,[x0,x1,…,x’−1] 指图层0,…,l-1中生成的要素图的串联、由于其密集的连通性,我们将这种网络架构称为密集卷积网络(DenseNet)。为了便于实现,我们将等式(2)中 H l ( ⋅ ) H_l(·) Hl(⋅)的多个输入连接成一个张量。
Composite function.
受【12】的启发,我们将H’(·)定义为三个连续操作的复合函数:批量归一化(BN)[14],然后是校正线性单元(ReLU)[6]和3×3卷积(Conv)。
Pooling layers
当特征图的大小改变时,等式(2)中使用的串联操作不可行。然而,卷积网络的一个重要部分是改变特征图大小的下采样层。为了便于在我们的架构中进行下采样,我们将网络划分为多个密集连接的密集块;见图2。我们将块之间的层称为过渡层,它进行卷积和池化。我们实验中使用的过渡层包括一个批量归一化层和一个1×1卷积层,然后是一个2×2平均池层。

Growth rate
如果每个函数 H l H_l Hl生成k个特征映射,则得出 l t h l^{th} lth层具有 k 0 + k × ( l − 1 ) k_0+k×(l− 1) k0+k×(l−1) 输入要素贴图,其中k0是输入层中的通道数。DenseNet和现有网络架构之间的一个重要区别是**,DenseNet可以有非常窄的层**,例如k=12。我们将超参数k称为网络的增长率。我们在第4节中说明,相对较小的增长率足以在我们测试的数据集上获得最先进的结果。对此的一种解释是,**每一层都可以访问其块中所有前面的特征图,从而访问网络的“集体知识”。可以将特征图视为网络的全局状态。每个图层将其自己的k个要素贴图添加到此状态。**增长率控制着每一层对全局状态贡献的新信息量。全局状态一旦写入,就可以从网络中的任何地方访问,并且与传统网络体系结构不同,无需在层与层之间进行复制。
Bottleneck layers.
虽然每个层只生成k个输出特征贴图,但它通常有更多的输入。[37,11]中已经指出,可以在每个3×3卷积之前引入1×1卷积作为瓶颈层,以减少输入特征映射的数量,从而提高计算效率。我们发现这种设计对DenseNet特别有效,我们使用这样一个瓶颈层来参考我们的网络,即BN ReLU Conv(1×1)-BN ReLU Conv(3×3)版本的 H l H_l Hl,如DenseNet-B。在我们的实验中,我们让每个1×1卷积产生4k特征映射。
Compression.
为了进一步提高模型的紧凑性,我们可以减少过渡层的特征映射数量。如果密集块包含m个特征贴图,我们让下面的过渡层生成$\left \lfloor \theta m \right \rfloor $输出特征贴图,其中0<θ≤1被称为压缩系数。当θ=1时,跨过渡层的特征贴图数量保持不变。我们将θ<1的DenseNet称为DenseNet-C,并在我们的实验中设置θ=0.5。当同时使用θ<1的瓶颈层和过渡层时,我们将我们的模型称为DenseNet-BC。
Implementation Details
在除ImageNet之外的所有数据集上,我们实验中使用的Denset有三个密集块,每个块的层数相等。在进入第一个密集块之前,对输入图像执行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结构进行了实验。对于DenseNetBC,评估配置为{L=100,k=12},{L=250,k=24}和{L=190,k=40}的网络。
在ImageNet上的实验中,我们在224×224个输入图像上使用了具有4个密集块的DenseNet BC结构。初始卷积层包括2k个大小为7×7的卷积,步长为2;所有其他层中的特征图数量也遵循设置k。我们在ImageNet上使用的确切网络配置如表1所示。

4. Experiments



5. Discussion
从表面上看,Densenet与Resnet非常相似:等式(2)与等式(1)的不同之处在于, H l ( ⋅ ) H_l(·) Hl(⋅)的输入是串联的,而不是求和的。然而,这一看似微小的修改所带来的影响导致了这两种网络体系结构的本质不同的行为。
Model compactness
作为输入串联的直接结果,任何DenseNet层学习的特征图都可以被所有后续层访问。这鼓励在整个网络中重用功能,并导致更紧凑的模型。
图4中的左两个图显示了一个实验的结果,该实验旨在比较DenseNets(左)所有变体的参数效率,以及可比较的ResNet架构(中)。我们在C10+上训练多个不同深度的小型网络,并将其测试精度绘制为网络参数的函数。与其他流行的网络架构(如AlexNet[16]或VGG net[29])相比,具有预激活功能的RESNET使用的参数更少,但通常会获得更好的结果[12]。因此,我们将DenseNet(k=12)与此架构进行比较。DenseNet的培训设置与上一节相同。

图中显示,DenseNet BC始终是DenseNet的参数效率最高的变体。此外,为了达到相同的精度水平,DenseNet BC只需要大约1/3的RESNET参数(中间图)。这一结果与图3所示的ImageNet上的结果一致。图4中的右图显示,**仅具有0.8M可训练参数的DenseNet BC能够达到与具有10.2M参数的1001层(预激活)ResNet[12]**相当的精度。
Implicit Deep Supervision.
密集卷积网络精度提高的一种解释可能是,各个层通过较短的连接从损失函数接收额外的监督。人们可以把DenseNets解读为一种“深度监督”。深度监控的好处之前已经在深度监控网络(DSN;[20])中得到了体现,该网络将分类器连接到每个隐藏层,强制中间层学习区分性特征。
DenseNets以一种隐含的方式执行类似的深度监控:网络顶部的单个分类器通过最多两个或三个过渡层直接监控所有层。然而,DenseNets的损失函数和梯度基本上不那么复杂,因为所有层之间共享相同的损失函数。
Stochastic vs. deterministic connection
密集卷积网络和残差网络的随机深度正则化之间有一个有趣的联系【13】。在随机深度,残差网络中的层被随机丢弃,从而在周围层之间创建直接连接。由于池层从不丢弃,因此网络会产生与DenseNet类似的连接模式:如果随机丢弃所有中间层,则相同池层之间的任何两层直接连接的可能性很小。虽然这些方法最终是完全不同的,但DenseNet对随机深度的解释可能会为这种正则化器的成功提供见解。
Feature Reuse
根据设计,DenseNets允许图层访问所有先前图层的要素地图(尽管有时通过过渡图层)。我们进行了一个实验来调查一个经过训练的网络是否利用了这个机会。我们首先在C10+上训练DenseNet,L=40,k=12。对于块内的每个卷积层,我们计算分配给层s连接的平均(绝对)权重。图5显示了所有三个密集块的热图。平均绝对权重作为卷积层对其前几层依赖关系的替代。位置(l,s)上的红点表示该层“平均而言,强烈使用了之前s层生成的特征地图”。从图中可以观察到以下几点:
1)所有层将其权重分布在同一块中的多个输入上。这表明,早期地层提取的特征确实被同一致密块体的深层直接使用。
2)过渡层的权重也将其权重分布在前面密集区块内的所有层上,表明信息通过几个间接方向从DenseNet的第一层流向最后一层。
3)第二个和第三个密集块中的层始终为过渡层(三角形的顶行)的输出分配最小的权重,这表明过渡层输出许多冗余特征(平均权重较低)。这与DenseNet BC的强大结果一致,DenseNet BC对这些输出进行了压缩。
4)虽然最右侧显示的最终分类层也使用了整个密集区块的权重,但似乎集中在最终特征图上,这表明网络中可能会产生一些更高级别的特征。

6. Conclusion
我们提出了一种新的卷积网络结构,我们称之为密集卷积网络(DenseNet)。它引入了具有相同要素贴图大小的任意两个图层之间的直接连接。我们表明,DenseNets可以自然扩展到数百层,同时不会出现优化困难。在我们的实验中, 随着参数数量的不断增加,DenseNets往往会在准确性方面不断提高,而不会出现任何性能下降或过度拟合的迹象。在多种设置下,它在几个高度竞争的数据集上取得了最先进的结果。此外,Densenet需要更少的参数和更少的计算来实现最先进的性能。由于我们在研究中采用了针对剩余网络优化的超参数设置,我们相信,通过更详细地调整超参数和学习速率计划,可以进一步提高Densenet的准确性。
虽然遵循一个简单的连通性规则,但DenseNets自然地集成了身份映射、深度监控和多样化深度的特性。它们允许在整个网络中重用特征,因此可以学习更紧凑的模型,根据我们的实验,可以学习更精确的模型。由于其紧凑的内部表示和减少的特征冗余,Densenet可能是基于卷积特征的各种计算机视觉任务的良好特征提取器,例如[4,5]。我们计划在未来的工作中使用DenseNets研究这种特征转移
边栏推荐
- SWT/ANR问题--StorageManagerService卡住
- 查看 jvm 参数
- 我的PMP学习考试心得
- P6773 [NOI2020] 命运(dp、线段树合并)
- 手机edge浏览器无法打开三方应用
- 5款主流智能音箱入门款测评:苹果小米华为天猫小度,谁的表现更胜一筹?
- How to realize the scene linkage of intelligent lock, lamp and intelligent curtain motor in zhiting?
- What other hot spots are hidden under 1500W playback? Station B 2 future trends you can't miss
- Clickhouse eliminates the gap caused by group by
- SAP ALV汇总跟导出Excel 汇总数据不一致
猜你喜欢

Video tutorial | Chang'an chain launched a series of video tutorial collections (Introduction)

Rocketqa: cross batch negatives, de noised hard negative sampling and data augmentation

LabVIEW calculates the camera image sensor resolution and lens focal length

Pychart software deployment gray unable to point
The latest CSDN salary increase technology stack in 2022 overview of APP automated testing

手机edge浏览器无法打开三方应用

Restcloud ETl数据通过时间戳实现增量数据同步

nacos配置中心使用教程

【JS】【掘金】获取关注了里不在关注者里的人

在unity中使用jieba分词的方法
随机推荐
Clickhouse 消除由group by产生的间隙
In the fourth week of June, the list - flying melon data up main growth ranking list (BiliBili platform) was released!
【做题打卡】集成每日5题分享(第一期)
如何在智汀中實現智能鎖與燈、智能窗簾電機場景聯動?
Pulsar的Proxy支持和SNI路由
Machine learning 9-universal approximator radial basis function neural network, examining PDA and SVM from a new perspective
[JS] [Nuggets] get people who are not followers
Image preloading in JS
我想知道股票开户怎么开户?究竟网上开户是否安全么?
How to learn and read code
SAP ALV summary is inconsistent with exported excel summary data
【JS】【掘金】获取关注了里不在关注者里的人
SWT / anr problem - storagemanagerservice stuck
机器学习10-信念贝叶斯分类器
import tensorflow.contrib.slim as slim报错
PMP是什麼?
LabVIEW calculates the camera image sensor resolution and lens focal length
Thread Detach
QML control type: tooltip
Leetcode (524) -- match the longest word in the dictionary by deleting letters