3、分析
在本节中,将分析基于经典网络架构提出的梯度路径设计策略。
- 首先,将使用梯度组合的概念分析现有的网络架构和所提出的PRN,该示例表明表现良好的网络架构确实具有更丰富的梯度组合。
- 然后,将分析所提出的CSPNet如何带来更丰富的梯度组合和其他好处。
- 最后,通过stop 梯度分析了梯度路径长度的重要性,从而证实了所提出的ELAN具有设计概念上的优势。
3.1、梯度组合分析
一般研究人员通常使用最短梯度路径和集成特征的数量来衡量网络架构的学习效率和能力。然而,从SparseNet中可以发现,如表1所示,这些度量与准确性和参数使用并不完全相关。作者观察了梯度传播的过程,发现用于更新不同层权重的梯度组合与网络的学习能力非常匹配,在本节中将分析梯度组合。
梯度组合由2种类型的组件组成,即Gradient Timestamp和Gradient Source。
1、Gradient Timestamp
图7显示了ResNet、PRN、DenseNet和SparseNet的架构。其中,作者展开了cascaded residual connection和concatenation connection以便于观察梯度传播过程。此外,图7还显示了每个架构上的gradient flow delivery timestamps。gradient sequence相当于广度优先搜索过程,每个sequence将访问上一轮遍历所到达的所有outdegree nodes。
从图7中可以看到PRN使用通道分割策略来丰富由对应于不同通道的权重接收的Gradient Timestamp。至于SparseNet,它使用稀疏连接来使与不同层相对应的权重连接所接收的Timestamp更加可变。
上述两种方法都可以学习具有不同权重的更多样的信息,这使得提出的架构更强大。
2、Gradient Source
图8显示了第1个梯度时间戳处ResNet、PRN和DenseNet的Gradient Source。从图8可以看出,connection-based的架构,如DenseNet和SparseNet,属于必须特别处理的网络。这是因为在梯度传播过程中,如果它是由同一层在某个Gradient Timestamp传播的梯度信息,因为梯度流已经被预先分割,所以它不能像普通网络那样被处理。
对于基于残差连接的架构,如ResNet和PRN,完全相同的梯度信息被传播到所有的outdegree层。由于PRN的outdegree仅连接到其他层的某些通道,因此它可以具有比ResNet整体更丰富的梯度组合。
此外,还有使用其他split-transform merge策略的网络架构,例如基于group convolution-based 的ResNeXt和基于depth-wise convolution的MobileNet等,这也可以增加Gradient Source的数量。
3、总结
总之,通过对梯度反向传播过程中产生的Gradient Timestamp和Gradient Source的分析,可以清楚地解释现有的流行网络架构以及提出的PRN所学习的信息和参数的利用效率。在ResNet中,不同的层共享相同Timestamp和相同Gradient Source的许多梯度,DenseNet将相同Timestamp但不同Source的梯度信息传递给相应的层。这部分清楚地解释了为什么基于串联连接的DenseNet可以避免像基于残差连接的ResNet那样容易地学习大量无用信息的问题。本文提出的PRN使用简单的masked residual layer来增加沿时间轴的梯度组合的数量,同时保持ResNet网络拓扑,并转移Gradient Source,从而增加Gradient Source的可变性。
3.2、跨阶段部分策略分析
CSPNet旨在增强在线学习能力,同时加快推理速度,因此将分别从这两个方面讨论CSPNet策略的优势。在第3.1节中进行的分析中观察到,即使Gradient Source生成的组合数量相同,当不同组合之间接收到的公共分量减少时,这使得梯度分量更丰富,也使网络学习更好。这种现象实际上发生在为单层权重学习大量参数的过程中。
例如,dropout使用随机伯努利Mask神经元来防止参数学习协同适应信息。从数学模型的角度来看,dropout是通过使用不同输入产生的梯度来更新不同部分的权重,这相当于随机集成结构。至于CSPNet,它通过梯度路径上梯度的时间差和空间变换,直接增加了梯度组合的丰富性。接下来将介绍CSPNet使用什么策略来解决重复梯度信息的问题,以及它如何提高资源利用率。
1、Duplicated Gradient Information
在第3.1节中分析了梯度组合的数量以及多样性对网络学习能力的影响。在CSPNet中进一步分析了不同层接收的梯度信息内容,并设计了架构以提高参数使用效率。从PRN和SparseNet的梯度组合可以发现,它们在增加梯度组合丰富度的过程中具有共同性,即通过残差连接或密集连接接收大量重复梯度信息的情况显著减少。作者推测,这些重复的梯度是大量权重容易学习共适应信息的主要原因。
对于PRN,它利用梯度定时差来更新部分通道的权重。随着链式规则的更新过程,上述时间差将扩散到整个网络,然后实现更丰富的梯度组合。
此外,CSPNet直接使用cross stage使整个stage的两条路径具有很大的时间差,并使用不同的融合结构来减少stage与stage之间或计算块路径与cross stage connection路径之间的重复梯度信息。
2、Resource Usage Efficiency
以Darknet-53为例,假设cross stage部分操作根据通道的方向将特征图分成两个相等的部分。此时,残差块的输入通道数和输出通道数减半,而中间的通道数保持不变。
根据上述结构,计算块的总体计算和参数量将减少到原始的一半,而内存峰值是输入特征图和输出特征图的大小之和,因此将减少到原来的2/3。此外,由于整个计算块中卷积层的输入通道和输出通道相等,因此此时的存储器访问成本将最小。
3、总结
总之,CSPNet成功地将梯度组合的概念与硬件利用效率相结合,使得所设计的网络架构同时提高了学习能力和推理速度。CSPNet仅使用简单的channel split、 cross stage connection并在不改变原有网络计算单元的情况下成功完成预设目标。
CSPNet的另一个优点是它可以应用于许多流行的网络架构,并在各个方面提高整体网络效率。在表2中展示了应用于几种流行网络架构的CSPNet的优异性能。最后,由于CSPNet对许多硬件资源的要求较低,因此它适用于具有更严格硬件约束的设备上的高速推理。
3.3、坡度路径长度分析
如第3.1节所述,整个网络的梯度路径越短并不意味着学习能力越强。此外,即使整个梯度组合路径的长度是固定的,作者发现ResNet的学习能力仍然下降当堆叠非常深时。然而,作者发现上述问题可以用于在训练阶段使用随机深度将ResNet分解为较浅的随机子网络进行训练,这可以使超深ResNet收敛到更好的结果。
上述现象告诉我们,在分析梯度路径时,不仅可以查看整个网络的最短梯度路径和最长梯度路径,还需要更详细的梯度路径分析。在下文中,将通过在训练期间调整梯度流来控制梯度路径长度,然后根据结果讨论在设计网络架构时的梯度长度策略。
1、Stop gradient
首先基于ResNet探讨最短梯度长度的重要性。与PlainNet相比,ResNet中的每个残差块除了通过计算块的梯度之外,还通过identity连接在计算块上具有一部分梯度。这里,如图9所示,分别对计算块和identity连接执行Stop梯度操作。
当在identity连接上执行Stop梯度时,整个网络的梯度路径将类似于PlainNet。也就是说,最长的梯度路径与最短的梯度路径长度相同,网络深度也相同。当在计算块上执行Stop梯度时,最短的梯度路径将直接穿过所有残差连接并直接到达起始层,此时最短梯度路径长度为1。由于每个计算块有两层,因此其最长梯度路径为2。可以使用这两组设置来观察残差学习本身的好处和梯度路径的减少。
使用Microsoft COCO数据集中的目标检测和实例分割作为基线模型,对YOLOR CSP进行消融研究,结果如表3所示。实验结果表明,在ResNet中执行缩短的梯度路径确实是深度网络更好收敛的重要因素。
2、Gradient path planning
根据以上分析和在YOLOR-CSP中使用CSP融合进行的模型缩放实验,重新规划了VoVNet的过渡层并进行了实验。首先移除深度VoVNet的每个OSA模块的过渡层,只留下每个阶段中最后一个OSA模块中的过渡层。以与上述相同的方式组织网络的最长梯度路径和通过每个层的最短梯度路径。同时,还将CSPNet结构应用于上述网络,以进一步观察CSPNet的多功能性,相关实验结果如表4所示。可以清楚地看到,深度VoVNet已经从无法收敛变为能够很好地收敛并获得非常好的精度。
3、总结
简而言之,从上述实验和分析中推断,在规划整个网络的梯度路径时,不仅应该考虑最短的梯度路径,而且应该确保每个层的最短梯度路径都可以有效地训练。至于整个网络的最长梯度路径的长度,它将大于或等于任何层的最长的梯度路径。因此,在实施网络级梯度路径设计策略时,需要考虑网络中所有层的最长最短梯度路径长度,以及整个网络的最长梯度路径。
4、实验
4.1、 Layer-level梯度路径设计策略
在PRN实验中将被masked residual layer mask的通道数设置为原始通道数的一半,实验结果如表5所示。由于PRN的设计维护了整个网络的所有参数和拓扑结构,所以只有残差连接中的加法操作减少了一半,所以总体计算量几乎没有变化。
然而,YOLOR-PRN在精度上得到了显著的提高,因为每层都使用了用来更新权重的梯度组合。与YOLOR-v3相比,PRN在目标检测上提高了0.5%的AP,也可以观察到高质量和显著的改进。在实例分割上,将AP提高了0.1%,AP75提高了0.3%。
4.2、Stage-level梯度路径设计策略
在CSPNet实验中遵循优化推理速度的原则,将梯度分割比设置为50%-50%,实验结果如表6所示。由于只有一半的通道特征图将进入计算块可以清楚地看到,与YOLOR-v3相比,YOLOR-CSP显著减少了22%的计算量。然而,通过丰富的梯度组合,YOLOR-CSP在目标检测上显著提高了1.5%。与YOLOR-v3相比,YOLOR和CSPNet(YOLOR-CSP)的组合增加了更多高质量的结果。
作者进一步比较了梯度流截断操作来减少重复梯度信息,清楚地看到YOLOR-CSP策略比CSP fusion first和CSP fusion last学习得更好。值得一提的是,无论采用何种融合策略,基于csp的体系结构的计算负荷都比YOLOR-v3低得多,精度也远高于YOLOR-v3。
4.3、Network-level梯度路径设计策略
在ELAN实验中分别测试了计算块在Backbone和Neck的叠加时间,结果如表7所示。从这个表中可以清楚地看出,ELAN在比YOLOR-v3少35%的计算量下,仍然可以提高0.7%的目标检测性能。
在ELAN中可以灵活地设置堆栈的数量,从而在精度和计算量之间进行权衡。从表7中列出的实验结果可以看到,在堆栈设置2,1s,YOLOR-ELAN可以在降低26%计算量的情况下,显著提高目标检测和实例分割的性能分别1.9%和0.6%。
4.4、比较
最后,综合比较了Layer-level 设计策略设计的YOLOR-PRN、Stage-level 设计策略设计的YOLOR-CSP和Network-level 设计策略设计的YOLOR-ELAN,以及基线YOLOR-v3和YOLOv5(r6.2),结果如表8所示。
从表中可以看出,基于梯度路径设计策略设计的模型在各个方面都优于基于基线的方法。此外,无论计算量如何。由Network-level 设计策略设计的YOLOR-ELAN在参数数量和精度方面可以全面获得最突出的性能。
研究结果表明,基于梯度路径分析能够设计出更好的网络架构设计策略。如果与一般的基于数据路径的策略相比,由数据路径策略设计的体系结构通常需要额外的参数或计算成本来获得更好的精度。相比之下,这三种基于梯度路径设计策略的体系结构可以显著提高整体性能。
5、参考
[1].Designing Network Design Strategies Through Gradient Path Analysis.
6、推荐阅读
书童改进 | YOLOv5之架构改进、样本匹配升级、量化部署、剪枝、自蒸馏以及异构蒸馏