CSPNet:A New Backbone that can Enhance Learning Capability of CNN
CSP可以看作是DenseNet的升级版,主要是通过split channel减少重复梯度的传递,使得网络更快
什么是CSPNet(Cross-Stage-Partial-connections)?
- CSPNet认为推理计算过高的问题是由于网络优化中的梯度信息重复导致的。 因此先将基础层的特征映射划分为两部分,然后通过跨阶段层次结构将它们合并,在减少了计算量的同时可以保证准确率
- 可以看DenseNet的升级版本,改进了密集块和过渡层的信息流,优化了梯度反向传播路径,提升了网络的学习能力,同时在处理速度和内存方面提升了不少
CSPNet的网络结构?
- CSPNet 包括 Partial Dense block、Partial Transition block
- CSPNet 将 feature map 拆成两个部分,一部分进行卷积操作,另一部分和上一部分卷积操作的结果进行 concate,实际代码中,两个分支都包含全部的 channel,先分别通过1x1卷积,分别得到1\2的 output channel
CSPNet的Partial Dense block?
- DenseNet:每个阶段都包含 1 个 DenseBlock 和1 个 Transition 组成,每个 DenseBlock 由 K 个 dense layer 组成,Transition 负责串联两个 DenseBlock。大量的梯度信息被重用来更新不同稠密层的权值。这将导致无差异的稠密层反复学习同样的梯度信息
- CSPDenseNet:每个阶段由partial DenseBlock 和partial Transition组成,partial DenseBlock 由 K 个 dense layer 组成,每个保留了 DenseNet重用特征的有点,同时截断梯度流防止过多的重复梯度
CSPNet的Partial Transition block?
- 设计局部过渡层的目的是**使梯度组合的差异最大化。部分过渡层是一种层次化的特征融合机制,它采用截断梯度流的策略来防止不同层学习重复的梯度信息
- Fusion First: 先将两个部分进行 concatenate,然后再进行输入到 Transion layer 中,采用这种做法会是的大量特梯度信息被重用,有利于网络学习
- Fusion Last: 先将部分特征输入 Transition layer,然后再进行 concatenate,这样梯度信息将被截断,损失了部分的梯度重用,但是由于 Transition 的输入维度比 ©图少,大大减少了计算复杂度
- CSPNet 采用的 (b): 其结合了 ©、(d) 的特点,提升了学习能力的同时也提高了一些计算复杂度
CSPNet的梯度传播特点?
- CSPNet将基础层的特征图分成两部分,一部分将经过密集块和过渡层;然后将另一部分与传输的特征图组合到下一阶段
- 前馈传递和权重更新方程变为
- 可知: 来自密集层的梯度是单独集成的, 两边都不包含属于其他边的重复梯度信息
什么是EFM?
- CSPNet提出的采用跨通道方法建立的**特征融合模块,**特征金字塔(Feature Pyramid Network,FPN)是同类型的模块