本文从网络体系结构的角度出发,提出了跨阶段局部网络(CSPNet)来解决以往工作中需要大量推理计算的问题。本文将问题归结为网络优化中的重复梯度信息。所提出的网络通过从网络阶段的开始和结束集成特征映射来注重梯度的可变性。CSPNet易于实现,并且足够通用,可以处理基于ResNet、ResNeXt和DenseNet的体系结构。
网络结构 DenseNet图1 DenseNet
DenseNet的每个阶段包含一个dense block和一个transition layers(放在两个Dense Block中间,是因为每个Dense Block结束后的输出channel个数很多,需要用11的卷积核来降维),每个dense block由k个dense layer组成。第i个dense block的输出经过transition layers降维后将成为第(i+1)个dense block的输入。
DenseNet的机制可以表示为:
权重更新方程可以写成:
大量的梯度信息被重复用来更新不同dense block的权重。这将导致不同dense block反复学习相同的梯度信息。
图2 Cross Stage Partial DenseNet (CSPDenseNet)
CSPDenseNet的一个阶段由partial dense block和partial transition layer组成。
在partial dense block中,feature map分为
x
0
=
[
x
0
′
,
x
0
′
′
]
x_0=[x_0^{'},x_0^{''}]
x0=[x0′,x0′′],
x
0
′
′
]
x_0^{''}]
x0′′]直接连接到阶段终点,
x
0
′
]
x_0^{'}]
x0′]经过一个dense block。
CSPDenseNet的前馈传递和权重更新如下。
来自dense layers的梯度是单独集成的(separately integrated)。另一方面,没有经过dense layers的特征图
x
0
′
x^{′}_0
x0′也是单独集成的(separately integrated)。更新权重的梯度信息,两边不包含属于其他边的重复梯度信息。
总的来说,提出的CSPDenseNet保留了DenseNet的特征复用特性的优点,但同时通过截断梯度流,防止了过多的重复梯度信息。这一思想通过设计分层特征融合策略并用于partial transition层来实现。
设计Partial Dense Block的目的是:
- 增加梯度路径:通过分裂合并策略,可以使梯度路径的数目翻倍。由于采用了跨阶段的策略,可以减轻使用显式特征映射复制进行连接的缺点;
- 平衡各层的计算:通常情况下,DenseNet底层的信道数远远大于增长率。由于部分dense block中的dense layer *** 作所涉及的底层信道只占原始信道的一半,因此可以有效地解决近一半的计算瓶颈;
- 减少内存流量:假设dense block在DenseNet中的基本特征映射大小为w × h × c,增长率为d,并且共m层。然后,该dense block的CIO为
(
c
×
m
)
+
(
(
m
2
+
m
)
×
d
)
=
2
(c\times m)+((m^2+m)\times d)=2
(c×m)+((m2+m)×d)=2,部分dense block的CIO为
(
(
c
×
m
)
+
(
m
2
+
m
)
×
d
)
=
2
((c \times m)+(m^2+m)\times d)=2
((c×m)+(m2+m)×d)=2。虽然m和d通常比c小得多,但部分dense block最多可以节省网络内存流量的一半。
Partial Transition Layer图3
目的是使梯度组合的差异最大化。
本文设计了两种CSP-DenseNet变体来说明这种梯度流截断是如何影响网络的学习能力的。
图4
CSP(fusion-first)是指将两部分生成的特征映射连接起来,然后进行转换 *** 作。如果采用这种策略,将会重复使用大量的梯度信息。
对于CSP(fusion last)策略,dense block的输出将经过转换层,然后与来自第1部分的特征映射进行连接。
采用CSP(fusion last)策略,梯度信息将不会被重复使用,因为梯度流被截断。
本文提出了一种EFM方法,它可以为每个anchor捕获一个合适的视场(Field of View),从而提高一阶段目标检测器的精度。提出的EFM能够更好地聚合初始特征金字塔。
为了解决大量的内存和计算开销,本文采用Maxout技术(类似于droupout)对特征映射进行压缩。
所提出的EFM比GFM慢2fps,但AP和AP50分别显著提高了2.1%和2.4%。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)