论文名称:Densely Connected Convolutional Networks
论文地址:https://arxiv.org/pdf/1608.06993.pdf
如果说ResNet扩展了网络的深度,GoogLeNet扩展了网络的宽度,那么DenseNet就是利用特征图的重用。
一、论文解读
1、DenseNet介绍
传统的具有L层的卷积网络在每一层和它的下一层之间都有L个连接,而我们的网络有L(L+1)/2个连接。对于每一层,将前面所有层的特征图用作输入,并将其自身的特征图用作后面所有层的输入,通过连接来组合特性。由于其密集的连接模式,我们称之为密集卷积网络(densenet)。
2、DenseNet优点:
(1)缓解消失梯度问题。
(2)加强特征传播。
(3)鼓励特征图重用。
(4)比传统的卷积网络需要更少的参数。
(5)改进了网络的信息流和梯度,更易于训练。
(6)每一层都可以从损失函数和原始输入直接访问梯度,可以训练更深层次的网络架构。
(7)密集的连接具有规则化的效果,这可以减少对训练集大小较小的任务的过度拟合。
3、ResNets
一个输入图片通过一个L层的卷积神经网络,每层相当于一个非线性函数。是一个可以被操作的复合函数,如:批标准化(bn)、校正线性单元(relu)、池化(pool)或卷积(conv)。第i层的输出用表示。
传统的CNN都是将第L层的输出作为第L+1层的输入,也就是:。
resnets添加一个跳过连接,该连接使用标识函数绕过非线性转换:。Resnets的优点是,梯度变化可以直接通过标识函数从后面的层流到前面的层。然而,标识函数和的输出是通过求和结合起来的,这会阻碍网络中的信息流。
4、Dense connectivity
我们提出了一种不同的连接模式,引入从前面任意层到所有后续层的直接连接。层接受所有前面层作为输入,那么第L层的输出为:。由于其密集的连接模式,我们称之为密集卷积网络(densenet)。
5、Composite function
将定义为三个连续操作的复合函数:批标准化(bn)、非线性校正单元(relu)和3×3卷积(conv)。
6、Pooling layers
当特征图的大小改变时,等式中使用的连接操作是不可行的,然而卷积网络的一个重要组成部分是下采样层,它改变了特征图的大小。为了便于在网络中进行下采样,将网络划分为多个密集连接的密集块,将块之间的层称为过渡层,它执行卷积和池化。实验中使用的过渡层包括一个批量标准化层和一个1×1的卷积层,然后是一个2×2的平均池层。如下图:
7、Growth rate
如果每个函数会生成k个特征图(通道数为k),第层个特征图作为输入,是输入层的通道数。DenseNet和其他网络的对比在于,DenseNet只有很少的层(如12层)。
使用超参数k作为网络的增长率,每个层都可以访问其块中的所有前面的特征图,因此也可以访问网络的“集体知识”。可以将特征图视为网络的全局状态。每一层都将自己的K特征映射添加到此状态。增长率控制着每一层对全局状态贡献的新信息量。一旦写入全局状态,就可以从网络中的任何地方访问它。
8、Bottleneck layers
虽然每层只产生k个特征图,但它有很多的输入,在每3×3卷积之前,可以引入1×1卷积作为瓶颈层,以减少输入特征图的数量,从而提高计算效率。实验中,用1*1产生4k个特征图。
9、Compression
为了进一步提高模型的紧凑性,可以减少过渡层的特征图数量,如果密集块包含m个特征图,让下面的过渡层生成θm输出特征图,其中0<θ≤1被称为压缩因子。当θ=1时,跨越过渡层的特征映射数保持不变。我们将θ<1的densenet称为densenet-C,并在实验中设置θ=0.5。当使用θ<1的瓶颈层和过渡层时,我们将模型称为densenet-BC。
10、Implementation Details
在除ImageNet之外的所有数据集上,实验中使用的densenet都有三个密度块,每个都有相同数量的层。在进入第一个密集块之前,对输入图像执行16个(或Densenet BC的两倍增长率)输出通道的卷积。对于卷积核大小为3×3的卷积层,输入的每一侧都用一个像素填充为零,以保持特征图大小不变。使用1×1卷积和2×2平均池作为两个相邻密集块之间的过渡层。在最后一个密集块的末尾,执行全局平均池,然后附加一个SoftMax分类器。三个密集区块的特征图尺寸分别为32×32、16×16和8×8。
对于基本的DenseNet-C结构,使用{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}。在对ImageNet的实验中,在224×224个输入图像上使用了4个密集块的Densenet-BC结构。初始卷积层包括大小为7×7、步幅为2的2K卷积;所有其他层中的特征图数量也从k开始。在ImageNet上使用的确切网络配置如表1所示。
11、训练
所有网络均采用随机梯度下降(SGD)进行训练,在cifar和svhn上,分别使用批量64,对300和40个epoch进行训练。初始学习率设置为0.1,并在总训练epoch数的50%和75%时,除以10。在ImageNet上,为批量大小为256的90个epoch训练模型。学习率最初设置为0.1,在第30和60epoch时降低10次。使用10-4的权重衰减率和0.9的Nesterov动量,在每个卷积层(第一层除外)后添加一个dropout层,并将dropout率设置为0.2。
12、Implicit Deep Supervision
densenet以一种隐含的方式执行类似的深层监督:网络顶部的单个分类器通过至多两个或三个过渡层直接监督所有层。然而,由于所有层之间共享相同的损失函数,因此密集网络的损失函数和梯度基本上不那么复杂。
13、Stochastic vs. deterministic connection.
在稠密卷积网络和残差网络的随机深度正则化之间有联系。在随机深度下,残差网络中的层被随机丢弃,从而在周围层之间创建直接连接。由于池层从不被丢弃,因此网络会产生与densenet类似的连接模式:如果随机丢弃所有中间层,那么在相同池层之间的任何两个层直接连接的可能性很小。虽然这些方法最终是完全不同的,但是对随机深度的densenet解释可能提供了这个正则化器成功的见解。
14、Feature Reuse
(1)早期层提取的特征直接用于密集网络的深层。因为在同一块中,所有层都会预先分配权重。
(2)过渡层的权重还将其权重分布在前一个密集块内的所有层上,这表明信息流从densenet的第一层到最后一层通过几个间接方向流动。
(3)第二个和第三个密集块中的层一致地将最小权重分配给过渡层的输出,表明过渡层输出许多冗余特性。这与Densenet BC的结果保持一致,在这里精确地压缩了这些输出。
(4)虽然最后一个分类层也使用了整个密集块的权重,但似乎集中在最终特征图上,这表明在网络后期可能会产生更多的高级特征。
15、结论
提出了一种新的卷积网络结构,称之为密集卷积网络(densenet)。它引入了具有相同特征图大小的任意两层之间的直接连接。densenet可以自然地扩展到数百层,但不存在优化困难,实验中,densenet在参数不断增加的情况下,在精确度方面有持续的提高,而没有任何性能下降或过度拟合的迹象。此外,densenet需要更少的参数和更少的计算来实现最先进的性能。在研究中采用了针对残差网络优化的超参数设置,所以通过更详细地调整超参数和学习率,可以进一步提高densenet的精度。