CSPNET: A NEW BACKBONE THAT CAN ENHANCE LEARNING CAPABILITY OF CNN
CSPNet 简介
在本文中,作者提出了跨阶段局部网络(CSPNet),用来缓解以往工作需要从网络架构角度进行大量推理计算的问题,作者把这个问题归结为网络优化中的重复梯度信息。
+作者的主要想法是通过分割梯度流,使梯度流通过不同的网络路径传播。通过切换拼接和转换,传播的梯度信息可以具有较大的相关性差异。此外,CSPNet可以大大减少计算量,并提高推理速度和准确性。除此之外,CSPNet 易于实现,并且足够通用,可以与 ResNet、ResNeXt 和 DenseNet 的体系结构相融合。
+本文主要解决了以下的三个问题:
+-
+
- 加强CNN的学习能力:现有的CNN网络存在经过轻量化之后的准确率大大下降的问题,现有的网络使用CSPNet的思想之后,计算量将减少10%至20%,准确率更高。 +
- 消除计算瓶颈:认为过高的bottleneck会导致花费更多的时间进行推理,或部份算术单元会被闲置。所以将CNN的计算量均匀的分布在每一层,从而有效的提升每个计算单元的利用率。 +
- 降低内存成本:在特征金字塔生成过程中采用了跨通道池化的方式进行特征映射。 +
CSPNet思想
在原本DenseNet中,前面层的feature map全部传入后面层作为输入,在CSPNet中,将前面层的feature map在通道上一分为二,一部分输入到后面层,一部分直接通过short-cut的方式连接到transition层,这样可以缓解一部分的梯度信息重复计算问题,从而减少模型的计算量和显存占用。
+
CSPNet网络创新点
整体结构
传统的DenseNet中,第i层的输入与第i层的输出做concat,作为第i+1层的输入,这就要求输入和输出的分辨率保持不变,就是不做下采样操作,下采样操作在transition层进行。
+在CSPDenseNet中,将输入特征数据在通道维度上划分为,
输入到DenseNet中,
直接在transition层与DenseBlock的输出在通道维度上做concat。在CSPDenseNet的transition层,先将Dense Block的输出结果
经过一个conv卷积操作,然后和
进行concat得到
,输入到另一个conv卷积操作得到
。
上述图(b)中CSPDenseNet的前向推理过程如下:
+参数更新过程如下:
+经过上述改进之后,CSPDenseNet将原来DenseNet中对于全部feature map的重复梯度计算降低了一半,因为另一半x0’ 的feature map不在经过Dense Block,直接送入了transition层。所以这种网络结构叫做Cross Stage Partial DenseNet,就是跨Stage的部分的DenseNet。
+Partial Dense Block
Partial Dense Block的设计目的为
+-
+
- 增加梯度路径:通过拆分合并策略,可以使梯度路径的数量增加一倍。由于跨阶段策略,可以减轻使用显式特征映射复制进行连接所带来的缺点 +
- 每层的平衡计算:通常,DenseNet的基础层通道数远大于增长率。由于局部密集块中涉及密集层操作的基础层通道仅占原始数量的一半,因此可以有效解决近一半的计算瓶颈 +
- 减少内存流量:假设DenseNet中一个密集块的基本特征图大小为w × h × c,增长率为d,总共有m个密集层。则该密集块的CIO为$(c × m) + ((m^2 + m) × d)=2$,部分密集块的CIO为$(c × m) + (m^2 + m) × d)=2$。虽然m和d通常远小于c,但部分密集块最多可以节省网络内存流量的一半。 +
Partial Transition Layer
Partial Transition Layer的设计目的为使梯度组合的差异最大化。Partial Transition Layer是一种层次化的特征融合机制,它利用梯度流的聚合策略来防止不同的层学习重复的梯度信息。在这里,作者设计了两个CSPDenseNet变体来展示这种梯度流截断是如何影响网络的学习能力的。
+上图中的 (c) 和 (d) 展示了两种不同的融合策略:
+Fusion First:是将两部分生成的feature map进行拼接,然后进入过渡层。如果采用这种策略,将会损失大量的梯度信息。
Fusion Last:对于fusion last策略,来自稠密块的输出将经过过渡层,然后与来自Part1的feature map进行连接。如果采用这种策略,由于梯度流被截断,梯度信息将不会被重用。
如果我们使用上图所示的四种架构来进行图像分类,其结果如下图所示:
从上图可以看出,如果采用Fusion Last策略进行图像分类,计算成本明显下降,但Top-1的准确率仅下降0.1%。另一方面,CSP (fusion first)策略确实有助于显著降低计算成本,但Top-1的准确率显著下降1.5%。
+通过使用跨阶段的分割和合并策略,我们能够有效地减少信息集成过程中重复的可能性。如果能够有效地减少重复的梯度信息,那么网络的学习能力将会得到很大的提高。
+我们可以得到如下结论:
+-
+
- 使用Fusion First有助于降低计算代价,但是准确率有显著下降。 +
- 使用Fusion Last也是极大降低了计算代价,top-1 accuracy仅仅下降了0.1个百分点。 +
- 同时使用Fusion First和Fusion Last相结合的CSP所采用的融合方式可以在降低计算代价的同时,提升准确率。 +