我们将 ⊗ \otimes ⊗表现为两个值之间的卷积。对于 F in ∈ R 1 , 1 , C in , C mid F_{\text {in }} \in \mathbb{R}^{1,1, C_{\text {in }}, C_{\text {mid }}} Fin ∈R1,1,Cin ,Cmid , F out ∈ R 1 , 1 , C mid , C out F_{\text {out }} \in \mathbb{R}^{1,1, C_{\text {mid }}, C_{\text {out }}} Fout ∈R1,1,Cmid ,Cout 和 F mid ∈ R k , k , 1 , C mid F_{\text {mid }} \in \mathbb{R}^{k, k, 1, C_{\text {mid }}} Fmid ∈Rk,k,1,Cmid ,其中卷积涉及的 C i n C_{i n} Cin为输入通道数, C mid C_{\text {mid }} Cmid 为倒置瓶颈中的扩展通道数, C out C_{\text {out }} Cout 为输出通道数,卷积利用可以表现为:
y = { F out ⊗ [ F mid ⊗ ( F in ⊗ x ) ] 如果 C in ≠ C mid F out ⊗ [ F mid ⊗ ( F in ⊗ x ) ] 如果 C in = C mid 且 F in = True F out ⊗ [ F mid ⊗ ( x ) ] 如果 C in = C mid 且 F in = False y=\left\{\begin{array}{ll} F_{\text {out }} \otimes\left[F_{\text {mid }} \otimes\left(F_{\text {in }} \otimes x\right)\right] & \text { 如果 } C_{\text {in }} \neq C_{\text {mid }} \\ F_{\text {out }} \otimes\left[F_{\text {mid }} \otimes\left(F_{\text {in }} \otimes x\right)\right] & \text { 如果 } C_{\text {in }}=C_{\text {mid }} \text { 且 } F_{\text {in }}=\text { True } \\ F_{\text {out }} \otimes\left[F_{\text {mid }} \otimes(x)\right] & \text { 如果 } C_{\text {in }}=C_{\text {mid }} \text { 且 } F_{\text {in }}=\text { False } \end{array}\right. y=⎩ ⎨ ⎧Fout ⊗[Fmid ⊗(Fin ⊗x)]Fout ⊗[Fmid ⊗(Fin ⊗x)]Fout ⊗[Fmid ⊗(x)] 如果 Cin =Cmid 如果 Cin =Cmid 且 Fin = True 如果 Cin =Cmid 且 Fin = False
与最新的目的检测神经网络技术[71, 73]类似,我们在整个模子中一致地实现了SiLU[11]激活函数。
2.1.2、步长策略
多个模子在倒置瓶颈中融入了步长概念[25, 54, 24, 75, 63, 43, 70, 44]。然而,我们采用了一种特定的通道扩展策略。
每个语义级别的信息,标记为 P i P_{i} Pi,在其所有潜伏层中始终具有相同数量的输入 C in P i C_{\text {in }} P_{i} Cin Pi、输出 C out P i C_{\text {out }} P_{i} Cout Pi和扩展通道 C mid P i C_{\text {mid }} P_{i} Cmid Pi。我们的目的是通过按比例增加通道 C i n P i C_{i n} P_{i} CinPi(根据从 C m i d P i + 1 C_{m i d} P_{i+1} CmidPi+1预期的通道扩展),来丰富从语义信息级别 P i P_{i} Pi的潜伏层 h i h_{i} hi到后续潜伏层 h i + 1 h_{i+1} hi+1的信息流。
在倒置瓶颈中,采取以下步骤:
h i = F out ⊗ [ F mid ⊗ ( F in ⊗ x ) ] h_{i}=F_{\text {out }} \otimes\left[F_{\text {mid }} \otimes\left(F_{\text {in }} \otimes x\right)\right] hi=Fout ⊗[Fmid ⊗(Fin ⊗x)]
标记为 P P P的带步长的倒置瓶颈内的语义信息如下 - 图3所示:
P i → P i + 1 → P i + 1 P_{i} \rightarrow P_{i+1} \rightarrow P_{i+1} Pi→Pi+1→Pi+1
因此,步长大于1的通道扩展策略大概出现以下情势:
C in P i → C mid P i + 1 → C out P i + 1 其中 C mid P i + 1 > C mid P i C_{\text {in }} P_{i} \rightarrow C_{\text {mid }} P_{i+1} \rightarrow C_{\text {out }} P_{i+1} \quad \text { 其中 } \quad C_{\text {mid }} P_{i+1}>C_{\text {mid }} P_{i} Cin Pi→Cmid Pi+1→Cout Pi+1 其中 Cmid Pi+1>Cmid Pi
我们可以简朴地对每个块应用一个较大的扩展比,而不但仅是那些步长大于1的块,但这样做会显著增加整个网络的成本。
来自[66]的信息瓶颈原理理论强调了学习理论中与信息相干的两个关键方面。首先,作者认识到深度神经网络(DNNs)并不严格遵照马尔可夫链 X → X ~ → Y X \rightarrow \tilde{X} \rightarrow Y X→X~→Y的情势,其中 X X X、 X ~ \tilde{X} X~和 Y Y Y分别是输入、从 X X X中提取的最小充分统计量和输出。
因此,为了推导出 X ~ \tilde{X} X~作为提取故意义特征以处置惩罚 Y Y Y的最小充分统计量,DNNs必要学习怎样使用最小充分统计量来提取特征,并采用尽大概紧凑的架构[66]。
其次,由于DNNs仅处置惩罚来自前一层 h i − 1 h_{i-1} hi−1的输入,这直接意味着大概会丢失后续层无法规复的信息(方程(5))。
I ( Y ; X ) ≥ I ( Y ; h i ) ≥ I ( Y ; h i + j ) 其中 i + j ≥ i I(Y ; X) \geq I\left(Y ; h_{i}\right) \geq I\left(Y ; h_{i+j}\right) \quad \text { 其中 } \quad i+j \geq i I(Y;X)≥I(Y;hi)≥I(Y;hi+j) 其中 i+j≥i
像YOLOv9[73]中最近所见的那样,昂贵的办理方案,如列式网络[5, 21],通过在每个块之间举行麋集的特征共享,并通过在信息分割的关键点添加麋集训练块或额外的检测头来办理这个问题。由于实现上述方程中的等值是可行的,该理论[66]表明,每一层都应在最大化自身内部信息 I ( Y ; h i ) I\left(Y ; h_{i}\right) I(Y;hi)的同时,尽大概淘汰层间信息交换 I ( h i − 1 ; h i ) I\left(h_{i-1} ; h_{i}\right) I(hi−1;hi)。因此,我们没有像[71, 73, 21, 5]那样增加模子的盘算复杂度,而是选择更高效地扩展它,集成了Dangyoon等人的倒置瓶颈理论[17]。
我们的实现涉及以 I ( h 0 ; h n ) I\left(h_{0} ; h_{n}\right) I(h0;hn)的情势最小化层间信息交换,其中 n n n便是神经网络的最后一个潜伏层,通过确保输入/输出通道的数量从第一个潜伏层到最后一个潜伏层永久不会凌驾一个差异比率。潜伏层通道的数量应保持在由P1的输入通道和P5的输出通道定义的限定内,差异比率小于6,以 I ( h 1 ; h n ) I\left(h_{1} ; h_{n}\right) I(h1;hn)的情势最小化 I ( h i − 1 ; h i ) I\left(h_{i-1} ; h_{i}\right) I(hi−1;hi)。
C h i ∈ [ C h 1 ; C h n ] 其中 C h n C h 1 ≤ 6 C_{h_{i}} \in\left[C_{h_{1}} ; C_{h_{n}}\right] \quad \text { 其中 } \quad \frac{C_{h_{n}}}{C_{h_{1}}} \leq 6 Chi∈[Ch1;Chn] 其中 Ch1Chn≤6
相反,Dangyonn等人的倒置瓶颈通道扩展实验[17]表明,扩展或缩减比率不应凌驾6。因此,我们在整个网络中通过扩展3来最大化 I ( Y ; h i ) I\left(Y ; h_{i}\right) I(Y;hi)。此外,在采用逐点通道扩展策略的带步长倒置瓶颈中,信息通过总共6的扩展被进一步激发,从而在 ( P i ; P i + 1 ) \left(P_{i} ; P_{i+1}\right) (Pii+1)之间最大化 I ( Y ; h i ) I\left(Y ; h_{i}\right) I(Y;hi)。然而,我们从P4到P5的倒置瓶颈中进一步激发信息,通过在P4到P5之间以9的扩展(与6的扩展相比,mAP提高了+0.5,更多信息见第B.3和B.4章)来最大化 I ( Y ; h i ) I\left(Y ; h_{i}\right) I(Y;hi)。
在块之间实现残差毗连有助于通过提供来自前一层 h i − 1 h_{i-1} hi−1的信息来最小化 I ( h i − 1 ; h i ) I\left(h_{i-1} ; h_{i}\right) I(hi−1;hi)。麋集毗连[16, 27]大概会增强模子,但它们必要额外的内存。
2.4、颈部
在目的检测中,我们称模子的“颈部”为聚合多个层级语义信息的部门,它能够未来自更远层的提取层级共享到第一层。
汗青上,研究人员使用PANet[79]或FPN[36]来高效地共享特征图,通过将多个语义信息 P i P_{i} Pi链接到PANet及其各自的输出(如图4(a)所示),从而实现多个检测层级。
在本文中,我们重要关注两个竞争对手:BiFPN[64]和YOLOF的SiSO[8]。BiFPN与我们的模子核心理念相同:使用盘算成本较低的层(拼接和加法、深度可分离卷积和逐点卷积)。然而,BiFPN必要太多的语义信息和太多的壅闭状态(期待前一层,复杂的图),这使得它难以跟上快速的执行速度。
本文介绍了适用于移动应用的轻量级目的检测技术的进展,并为YOLO模子引入了一种新颖的缩放方法。我们提出的架构FPAN和DNiN采用了诸如逐点卷积和深度可分离卷积等轻量级利用,提供了一个专为目的检测而设计的、与基于SSDLite的办理方案一样轻量级的、高度有效的神经网络。这在成本与精度的比例上开创了新局面。构建这些优化措施利用了更高效的YOLO缩放。我们提出了一个新的YOLO模子系列,在MSCOCO上实现了具有竞争力的mAP分数,同时注重一系列FLOP资源约束。我们的缩放版LeYOLOSmall在比最新最先进的目的检测器少42%的FLOP的环境下,实现了相似的正确性。这样,我们证实白在不同级别的语义信息之间举行缩放和优化通道选择,可以使我们逾越前所未有的每mAP FLOP比例。LeYOLO-Medium在mAP上比最新的YOLOv9-Tiny最先进模子高出 39.3 m A P ( + 2.61 % ) 39.3 \mathrm{mAP}(+2.61 \%) 39.3mAP(+2.61%),而在FLOP上淘汰了 5.8 F L O P ( G ) ( − 24.67 % ) 5.8 \mathrm{FLOP}(\mathrm{G})(-24.67 \%) 5.8FLOP(G)(−24.67%)。
A 附录 / 补充质料
B 符号说明
在本文中,我们使用了多种符号来描述深度学习的关键组件,特殊是在目的检测领域——例如,不同张量的空间巨细被描述为 P i P_{i} Pi。本章涵盖了论文中使用的所有符号。由于深度学习符号的规范并不同一,我们认为在附录中对其举行更深入的描述对于必要进一步解释的读者来说是故意义的。
首先,我们想对本文的重要构成部门——盘算公式举行更多解释。在整篇论文中,我们始终使用浮点运算次数(FLOP,Floating Point Operations)这一指标来比较我们的工作与其他最先进的神经网络。通过基于神经网络所需的乘法和加法次数举行盘算,我们为有效的模子比较建立了坚固的基础。FLOP指标与所使用的硬件无关,因此是权衡盘算效率的良好指标。尽管我们可以使用其他指标(如速度),但这些指标高度依赖于神经网络架构的并行化、所使用的硬件、加速器软件(如TensorRT、CoreML、TFLite)以及内存使用量和传输速度等因素。
我们在整篇论文中始终使用的第二个重要元素是平均精度均值( m A P \mathbf{mAP} mAP,mean Average Precision)。研究人员广泛使用该指标来比较基于目的检测的神经网络。mAP通过评估提出的界限框与实际标注的界限框之间的重叠度来权衡模子的精度。虽然一些论文使用固定阈值(如50%重叠度,即mAP50)来比较模子,但我们重要使用mAP50-95。该指标在不同重叠度阈值(从50%到95%)下对精度举行平均,覆盖了更广泛的评估标准。
在目的检测中,特征图的空间尺寸至关重要,我们将 P i P_{i} Pi定义为我们的深度神经网络中的特征图尺寸。对于LeYOLO-Small到Medium,尺寸范围从 P 0 P_{0} P0( 640 × 640 640 \times 640 640×640像素)到 P 5 P_{5} P5( 20 × 20 20 \times 20 20×20像素),其中 i i i代表步长的数量。类似地, P i − 1 P_{i-1} Pi−1表现明确描述的特征图 i i i之前的特征图尺寸。
同样,在描述神经网络中的潜伏层时,我们指的是整个块而不是单个卷积。例如,本文中将一个单个倒置瓶颈描述为一个潜伏层 h i h_{i} hi,该层由两个逐点卷积和一个深度可分离卷积构成。在整篇论文中,这使我们能够直接引用前面的倒置瓶颈为 h i − 1 h_{i-1} hi−1。
请留意,我们大概会结合所有符号来突出架构的特定组件。例如,我们将每个语义级别 P P P的通道数 C C C表现为 C P i C_{P_{i}} CPi。我们将每个语义级别 P i P_{i} Pi的特征图的高度和宽度分别指定为 H P i H_{P_{i}} HPi和 W P i W_{P_{i}} WPi。
B. 1、最新技术全面临比
如引言中所述,GPU的进步推动了强大且快速的神经网络的发展。然而,倒置瓶颈在并行化多个盘算块时提供的深度有限。在嵌入式装备上并行化深度神经网络仍然具有挑衅性,但未来充满希望。研究重要集中在淘汰MAC和FLOP成本,有时甚至是内存访问成本。自然,执行速度仍然是一个庞大问题。然而,我们旨在使用一致的符号将我们的骨干网络(表5)与具有“类似”架构的模子(表6、7和8)举行扼要比较,特殊是那些使用倒置瓶颈的模子。
通过这一比较,我们可以观察到步长倒置瓶颈策略。在代码验证过程中,我们确实留意到,在从一层 ( h i ; P i ) \left(h_{i} ; P_{i}\right) (hii)过渡到另一层 ( h i + 1 ; P i + 1 ) \left(h_{i+1} ; P_{i+1}\right) (hi+1i+1)时,如果步长大于1,则通道扩展会存在对比。此外,大多数倒置瓶颈都使用6的扩展率,而我们只在一个块内扩展到3。这淘汰了整体盘算量,并答应倒置瓶颈步长策略在深度卷积的步长内最后一次扩展通道数。
关于mAP与FLOP的比率,我们观察到通过结合使用从P4到P5的 5 × 5 5 \times 5 5×5内核巨细(其中Stem和P3使用一致的 3 × 3 3 \times 3 3×3内核巨细),以及使用 3 × 3 3 \times 3 3×3内核巨细举行FPANet下采样卷积,可以获得更好的内核滤波器巨细选择。这些选择将mAP与FLOP的比率提升至 m A P F L O P ( G ) = 11.49 \frac{m A P}{F L O P(G)}=11.49 FLOP(G)mAP=11.49,在 3 , 011 3,011 3,011 FLOP(G)下实现了 34 , 6 \mathbf{34,6} 34,6 m A P \mathbf{~mAP} mAP。
B.4.2 架构改进
为了改进架构,我们旨在简化P4之前的所有盘算。在已经对P3的内核巨细举行调整之后,我们移除了P2( 160 × 160 160 \times 160 160×160)中STEM的初始逐点利用,因为输入通道数与深度卷积所需的通道数相匹配。利用我们倒置瓶颈构建块的效率,结合可选的逐点利用,意外地改进了模子,到达了 34.7 34.7 34.7 mAP,并淘汰了 66 66 66 MFLOP的盘算量(即 2 , 945 \mathbf{2,945} 2,945 FLOP(G))。
根据这一优化过程,我们在最小化和终极架构中都选择了通道设置,该设置与压缩的信息瓶颈 I ( h 1 ; h n ) I\left(h_{1} ; h_{n}\right) I(h1;hn)(方程(6))保持一致,限定了每个块的输入通道数。通过这种方式,从骨干网络中保存在内存中的P4 C out C_{\text {out }} Cout 和P3 C out C_{\text {out }} Cout 自下而上路径的特征图拼接,已经与FPANet中P3块所需扩展的通道数 C mid C_{\text {mid }} Cmid 相匹配。因此,我们将架构精简到P4之前的必要组件,从而为惊人的 34.1 34.1 34.1 mAP释放了盘算资源,此时FLOP为 2 , 823 \mathbf{2,823} 2,823 FLOP(G)。
表9描述了所有结果。
最小化架构改进:
n o p w @ S T E M n o_{p w} @ S T E M nopw@STEM:在P1的第一个倒置瓶颈中的stem中没有逐点卷积。
n o p w @ F P A N − P 3 n o_{p w} @ F P A N-P 3 nopw@FPAN−P3:在自下而上的FPAN路径中,P3的第一个倒置瓶颈中没有逐点卷积。
我们的目的是确定最佳通道数,而不诉诸于像NAS那样昂贵的训练算法,而是依赖于基于先前架构选择的迭代实验。因此,我们举行了各种实验,包罗探索FPANet内的理想通道数。表10描述了以下所有解释。
骨干网络通道选择:我们盼望优化通道选择,并发现将P3到P4的信息扩展因子从6改为3(尽管效果稍弱),但所需的盘算量更少。在本次实验中,我们保持了在P2到P3(从 16 C i n P 2 16 C_{in} P_{2} 16CinP2通道到 96 C m i d P 3 96 C_{mid} P_{3} 96CmidP3)和P4到P5(对于LeYOLO-Nano基础通道选择,从 64 C i n P 4 64 C_{in} P_{4} 64CinP4到576 C m i d P 5 C_{mid} P_{5} CmidP5通道)之间步长为6的倒置瓶颈通道扩展比。
颈部网络通道选择:以我们在所有模子中一致的通道扩展选择3为例,我们在颈部网络内部测试了扩展比为2和2.5的不同扩展比。通过这些实验,我们想要比较在骨干网络或颈部网络中添加更多扩展通道的好处。就我们的选择而言,我们将神经网络在P5处的骨干网络上的支持更多(以扩展比为6为例)与在整个FPAN颈部网络内的压力更小(以整个FPAN颈部网络内扩展比为2而不是3为例)的性能举行了比较。
从表10中提出的消融实验来看,我们观察到全局上,将颈部网络内的通道数简化为扩展比为2是更好的选择,因为P5处瓶颈内的更大扩展策略带来了更好的正确性和mAP与FLOP比。
通道选择:
CC:通道选择 - 我们将P3到P4的扩展比从6淘汰到3。
CCx6:我们将P5内所有块的扩展比从3增加到6。
FPANx2:所有FPAN倒置瓶颈块使用2的扩展比而不是3。
FPANx2.5:所有FPAN倒置瓶颈块使用2.5的扩展比而不是3。
关于实验所选的初始最小架构,我们从2.877 GFLOP下的32.9 mAP开始。经过通过训练实验验证的迭代优化,我们将LeYOLONano的正确率提升至 34.3 m A P \mathbf{34.3 \, mAP} 34.3mAP,同时将盘算需求低落至 2.64 G F L O P \mathbf{2.64 \, GFLOP} 2.64GFLOP。这表明在模子优化过程中,正确率得到了提升,同时盘算复杂度也有所低落。