CSPNet: A NEW BACKBONE THAT CAN ENHANCE LEARNING CAPABILITY OF CNN
论文链接: https://arxiv.org/pdf/1911.11929.pdf
一、Problem Statement
目标检测极大地依赖昂贵的计算资源,因此作者从网络结构方面提出了Cross Stage Partial Network, 去减少神经网络在推理时的计算。其问题归因于在神经网络优化过程中重复的梯度信息,因此所提出的网络通过融合神经网络开始到尾部的feature map来维护梯度的变化。
二、Direction
CSPNet 这个网络结构可以实现更丰富的梯度融合来减少计算量。此目标的是通过把基础层的feature map分割成两个部分后再通过跨阶段分层(cross-stage hierarchy)融合来实现的。主要的概念就是拆分梯度流,使得梯度流传播通过不同的网络路径。
1) 加强CNN的学习能力
目前很多轻量化的CNN精度都很低。作者希望轻量化模型之后还维持着足够的精度。提出的CSPNet可以轻松地应用于ResNet,ResNetXt,DenseNet等网络。
2)移除计算瓶颈
过高的计算瓶颈会导致更多的计算周期来完成推理过程,或者一些算力单元经常闲置。因此,作者希望能够均匀分配CNN中各层的计算量,这样可以有效提升各计算单元的利用率,从而减少不必要的能耗。
3)减少空间资源
在减少内存使用方面,作者采用cross-channel pooling,在特征金字塔生成过程中对特征图进行压缩。
三、Method
1. Cross Stage Partial Network
作者分析了DenseNet,并发现大量的梯度信息被重复使用来更新不同层间的权重。这会导致不同层反复地学习拷贝的梯度信息。 以此,提出了Cross Stage Partial DenseNet。 CSPDenseNet 的一个stage是由一个partial dense block 和 一个 partial transition layer 组成的。
对于partial dense block, 基础层的feture map会被分割成两个部分,一个部分直接连接这个stage的结尾,另一个部分会进入dense block。
对于partial transition layer, 首先dense block 输出的结果会进入一个transition layer。其次这个transition layer输出的结果与partial dense block 分割出来的一部分相结合后,再进入另外一个transition layer.
来自dense layers的梯度是单独集成的(separately integrated)。另一方面,没有经过dense layers的feature map也是单独集成的(separately integrated)。至于更新权重的梯度信息,两边不包含属于其他边的重复梯度信息。总的来说,提出的CSPDenseNet保留了DenseNet的特征复用特性的优点,但同时通过截断梯度流,防止了过多的重复梯度信息。这一思想通过设计分层特征融合策略(hierachical feature strategy)并用于partial transition层来实现。
设计partial dense block 的目的:
- 增加梯度路径 : 通过分裂合并策略,可以使梯度路径的数目翻倍。由于采用了跨阶段(cross-stage)的策略,可以减轻使用显式特征映射重复进行连接的缺点;
- 平衡每层的计算:通常情况下,DenseNet底层的信道数远远大于增长率。由于部分dense block中的dense layer操作所涉及的底层信道只占原始信道的一半,因此可以有效地解决近一半的计算瓶颈;
- 减少内存流量: 一个partial dense block 可以最多节省网络的一半内存流量.
设计partial transiton layer 的目的:
- 最大化梯度融合的差异
- 使用分层特征融合策略机制(hierachical feature strategy),阻止不同层学习重复的梯度信息
- Fusion First 和 Fusion Last 两种策略. 对比之下, 在Fusion Last 策略下,梯度信息将不会被重复使用,因为梯度流被截断。
2. 提取融合模型EFM(Exact Fusion Model):
(1) 捕捉每一个anchor正确的视场(Field of View),提高精度.
(2) 更好地融合原始的特征金字塔,EFM融合三个尺度的特征.
(3) 平衡计算:解决特征金字塔中特征融合(concatenate)大量的内存和计算消耗,使用Maxout technique来压缩feature maps.
四、Conclusion
作者发现冗余的梯度信息会导致效率低下的优化和昂贵的推理计算消耗.提出了利用跨阶级特征融合侧率(cross-stage feature fusion strategy) 和截断梯度流的方法提高特征的变化性.提出与Maxout 一起使用的EFM来压缩feature maps, 极大地减少了所需要的内存,带宽,因此推理速度得到了提升.
特征的变化性.提出与Maxout 一起使用的EFM来压缩feature maps, 极大地减少了所需要的内存,带宽,因此推理速度得到了提升.