深度学习笔记之DenseNets

简介

在Densely Connected Convolutional Networks这篇文章中作者提出的DenseNet架构明确区分了添加到网络的信息和保留的信息。 DenseNet层非常窄(例如,每层12个滤波器),只为网络的“集体知识”添加一小组特征图,并保持其余的特征图保持不变 - 最终的分类器根据 网络中的所有要素图。 除了更好的参数效率之外,DenseNets的一大优势是它们改善了整个网络中的信息流和梯度,这使得它们易于训练。 每层都可以直接访问损失函数和原始输入信号的梯度,从而导致明显的深层监督[20]。 这有助于培训更深层次的网络架构。 此外,他们还观察到密集连接具有正则化效应,这减少了训练集大小较小的任务的过度拟合。
他们在四个竞争激烈的基准数据集(CIFAR-10,CIFAR-100,SVHN和ImageNet)上评估DenseNets。 他们的模型比具有可比准确度的网络需要更少的参数。 此外,他们在大多数基准测试任务中的表现明显优于当时最先进的结果。
DenseNets不是从极深或宽的架构中获取代表性功能,而是通过功能重用利用网络的潜力,获得易于训练且参数效率高的模型。 由不同层学习的连接特征图增加了后续层的输入的变化并提高了效率。 这构成了DenseNets和ResNets之间的主要区别。与Inception网络相比,它还可以连接来自不同层的特征,DenseNets更简单,更高效。
还有其他值得注意的新型网络架构,它们也有不错的结果。 Network in Network(NIN)结构包括微多层感知器纳入卷积层滤波器,以提取更复杂的特征。 在深度监督网络(DSN)中,内部层由辅助分类器直接监督,这可以增强早期层获得的梯度。 Ladder Networks在自动编码器中引入了横向连接,在半监督学习任务中有不俗的精度。 在《Deeply-fused nets》中,提出了深度融合网络(DFN),通过组合不同基础网络的中间层来改善信息流。 增强具有最小化重建损失pathways的网络也被证明可以改进图像分类模型《Augmenting supervised neural networks with unsupervised objectives for large-scale image classification》。

DenseNets

考虑通过卷积网络传递的单个图像 x 0 x_0 x0。 该网络包括 L L L层,每层实现非线性变换 H ( ⋅ ) H(\cdot) H(),其中 l l l为该层的索引。
H ( ⋅ ) H(\cdot) H()可以是诸如:

  • 批量归一化(BN)《S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In ICML, 2015.}》,
  • 整流线性单位(ReLU)《X. Glorot, A. Bordes, and Y. Bengio. Deep sparse rectifier neural networks. In AISTATS, 2011. 3》,
  • Pooling《Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner. Gradient- based learning applied to document recognition. Proceed- ings ofthe IEEE, 86(11):2278–2324, 1998. 1》,
  • 卷积(Conv)等操作的复合函数。

我们将第 l l l层的输出表示为 x l x_l xl

  • ResNets. 传统的卷积网络将第 l l l层的输出连接为第 l + 1 l+1 l+1层的输入,从而产生以下层转换 x l = H l ( x l − 1 ) x_l = H_l(x_{l-1}) xl=Hl(xl1). ResNets 添加一个跳连接,绕过分类函数的非线性变换: (1) x l = H l ( x l − 1 ) + x l − 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)

为了进一步改善层之间的信息流动,我们提出了一种不同的连接模式:我们引入了从任何层到所有后续层的直接连接。 图1给出了所得到的DenseNet的示意图。 因此,第 l l l层接收所有在其前面层的特征图 x 0 , ⋯   , x l − 1 x_0,\cdots, x_{l-1} x0,,xl1,作为输入:
(2) x l = H l ( [ x 0 , x 1 , ⋯   , x l − 1 ] ) x_l=H_l([x_0,x_1,\cdots,x_{l-1}])\tag{2} xl=Hl([x0,x1,,xl1])(2)
其中 [ x 0 , ⋯   , x l − 1 ] [x_0,\cdots, x_{l-1}] [x0,,xl1] 0 , ⋯   , l − 1 0,\cdots,l-1 0,,l1层特征图的合并。因其连接密集,故得名密集网络。
在这里插入图片描述

复合函数(Composite Function)

在残差网络推动下,我们将 H l ( ⋅ ) H_l(\cdot) Hl()定义为三个连续运算的复合函数:批量归一化(BN),其次是整流线性单元(ReLU)和3×3 卷积(Conv)。

池化层

当特征图的大小改变时,在式子(2)中使用的拼接操作是不可行的。然而,卷积网络的一个重要部分是下采样层,这些层改变了特征图的大小。 为了便于在网络中进行下采样,他们将网络划分为多个密集连接的Dense Block; 参见图2.我们将块之间的层称为过渡层,它们进行卷积和池化。 在我们的实验中使用的过渡层包括批量标准化层和1×1卷积层,接着是2×2 avg pooling 层。在这里插入图片描述

增长率(Growth rate)

如果每个函数 H l H_l Hl产生k个特征图,第 l l l层具有 k 0 + k ∗ ( l − 1 ) k_0+k*(l-1) k0+k(l1)个输入特征图,其中k0是输入层中的通道数。 DenseNet与现有网络架构之间的一个重要区别是,DenseNet可以具有非常窄的层,例如,k = 12.作者将超参数k称为网络的增长率。我们在第4节中表明,相对较小的增长率足以在我们测试的数据集上获得最先进的结果。对此的一种解释是,每个层都可以访问其块中的所有前面的特征图,因此可以访问网络的“集体知识”。可以将特征图视为网络的全局状态。每个层都将自己的k个特征图添加到此状态。增长率规定每层有多少新信息对全局状态有贡献。一旦写入全局状态,就可以从(以后的层中?added by zzw)网络中的任何地方访问,并且与传统网络体系结构不同,不需要在层与层之间复制它。

瓶颈层(Bottleneck layers)

虽然每个层仅生成k个输出特征图,但它通常具有更多输入。 在《K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In CVPR, 2016. 1,》、《C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens, and Z. Wojna. Rethinking the inception architecture for computer vision. In CVPR, 2016.》中已经注意到,在每个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)

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

实施细节(Implementation Details)

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值