YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

486次阅读
没有评论

点击下方卡片,关注「集智书童」公众号

点击加入👉「集智书童」交流群

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

量化网络使用较少的计算和内存资源,适用于部署在边缘设备上。而量化感知的训练(GAT)是一种广泛研究的将网络在低精度下进行量化的方法,但大多数研究聚焦于过参数化的网络分类,对于流行的边缘设备友好的单次目标检测和语义分割方法(如YOLO)的研究还比较有限。此外,大多数QAT方法依赖于直方估计(HE)近似,该方法受到振荡现象的影响,导致网络量化不理想。

在本文中,作者证明了即使使用最先进的量化感知的训练(GAT)方法,也难以在这些模型上实现极低精度(4位及以下)的目标。由于存在振荡问题,现有的克服这种问题的方法在这些模型上并不有效。为了减轻振荡的影响,作者首先提出了基于指数移动平均(EMA)的GAT模型更新方法。

此外,作者提出了一种简单的QAT校正方法,称为QC,它只需要在标准的量化感知训练(QAT)过程之后的一个单周期训练,就能校正由振荡的权重和激活引起的误差,从而得到更准确的量化模型。

通过在COCO数据集上使用各种YOLO5和YOLO7变体进行广泛评估,作者证明了作者的校正方法在低精度(4位和3位)的QAT目标检测和分割任务中,对量化YOLO网络具有持续的改进。

1 介绍

深度神经网络在各种应用中取得了显著的成功,包括图像分类、目标检测和语义分割。然而,将它们部署在边缘设备(如移动电话、智能相机和无人机)上却是一项重大的挑战,因为这些设备通常具有有限的计算和内存资源。这些设备通常具有有限的电池寿命、存储容量和处理能力,这使得执行复杂的神经网络具有挑战性。

为了克服这些挑战,研究人员已经开发了用于优化神经网络的技术,以减少其计算和内存需求,同时保持其准确性。其中一种研究方法是量化感知训练(QAT),其通过减少表示网络参数和激活所使用的比特数,从而减小模型的大小和加快推理速度。

现有的QAT方法在超低精度下量化神经网络方面取得了显著的进展,其中Straight Through Estimator(STE)近似的有效性仍然是研究的一个焦点。以前的研究提出了对舍入函数进行平滑近似的建议,以避免使用STE近似,但STE仍被认为是量化函数在传播过程中近似梯度的默认方法,原因是其简单性。

此外,最近的研究表明,由于QAT中的STE近似,高效网络架构在低精度下的量化性能受到振荡问题的影响。

除了上述内容外,大多数QAT文献都集中在图像分类任务上,而在这类分类任务上获得的量化性能并不一定能够直接转移到下游任务,如单次目标检测和语义分割。在本篇论文中,作者关注的是在低精度(3位和4位)下量化单次高效检测网络,如YOLO5[30]和YOLO7[31]等更具有挑战性的任务。

此外,作者发现这些问题在这些网络上的出现更为严重,而完全精度与量化性能之间的差距远超出了QAT文献中通常观察到的范围。

作者还发现,除了潜在权重外,YOLO模型中的可学习权重和激活的缩放因子也会受到振荡问题的影响,而YOLO模型在量化边界附近的潜在权重有时比量化级别更接近于最优。这表明,针对每个张量进行量化可能会使振荡问题变得更糟。

为了处理YOLO中的振荡问题,作者提出了基于QAT的_Exponential Moving Average(EMA)和_Quantization Correction(QC),后者在执行QAT后的每个量化层之后作为后处理步骤进行,以校正振荡引起的影响。

通过减轻振荡的副作用,这两种方法在组合后,在YOLO5和YOLO7上实现了3位和4位的最先进量化结果,在极端困难的COCO数据集上进行目标检测和语义分割。

本文的贡献:

  1. 证明了,即使采用了最新的QAT方法,在YOLO5和YOLO7等最近有效的YOLO模型上的量化也因振荡问题而变得极其困难。
  2. 分析发现,振荡现象不仅会影响潜在权重,还会影响YOLO模型中可学习权重和激活的学习缩放因子(learnable scale factors)的训练。
  3. 提出了两种简单的技术,即EMA和QC,可以与任何QAT技术结合使用,在QAT过程中降低有效网络振荡的影响。
  4. 在COCO数据集上进行广泛实验,针对目标检测和语义分割任务,作者发现作者的方法在组合后,在YOLO5和YOLO7等量化变体上具有持续的改进效果,并在超低精度(4位和3位)上建立了最先进的状态。

2 相关工作

2.1 量化感知训练

近年来,由于神经网络在计算量方面不断扩展,模型量化在深度学习领域引起了广泛关注。神经网络的量化方法可以广泛地分为:

训练后量化(PTQ)和量化感知训练(QAT)。尽管PTQ更快,并且不需要依赖于全部训练数据,但在低比特数精度下,它会导致显著的性能退化。QAT是作者的研究重点,并在文献中得到了很好的研究。

STE(Straight Through Estimation)是一种事实上的方法,用于在QAT中通过非可微分舍入函数进行反向传播。STE的有效性一直是最近文献中的一个争论点。Ajanthan等人提出了一种神经网络量化的镜面下降形式,并建立了STE近似与镜面下降框架对于约束优化之间的联系。

Lee等人发现,STE会导致梯度偏置,并提出了通过距离潜在权重与量化边界的距离来进行梯度缩放的方法。Gong等人试图通过使用可微分双曲正切函数来模拟反向传播过程中的舍入函数,来减轻低比特量化引起的问题。类似于这种方法,Yang等人通过使用平滑的Sigmoid函数来近似STE中的舍入函数,来解决STE中的梯度偏置问题。

最近的一些工作已经确定了振荡是STE在QAT过程中的一种副作用。Defossez等人提出了添加高斯噪声来模拟量化噪声,并在QAT过程中用量化操作替换它,以防止振荡和由STE产生的偏置梯度。Nagel等人提出了使用正态分布近似STE中的舍入函数来减轻振荡的影响。

还有研究表明,权重振荡严重影响了QAT性能,特别是在由STE近似圆形函数的有效网络(如深度卷积神经网络)上。他们提出了一种方法,通过将潜在权重规范化到其量化状态或将其冻结来避免振荡。

最近,Liu等人研究了在Visual Transformers上振荡问题,并提出了一种固定缩放因子的量化方法以及Query-Key重参化方法,以减轻振荡的负面影响。然而,他们提出的这种方法是针对解决转换器架构上的振荡现象的。

2.2 量化目标检测器

大多数现有的神经网络量化和模型压缩文献主要集中在图像分类任务上,而不是实际下游任务,如目标检测或语义分割。一些最近的工作探索了在量化目标检测器以提高这些模型的效率。

Jacob等人提出了一种仅使用整数算术的量化方案,并在COCO数据集上进行目标检测,但该方法仅适用于8位量化。Li等人在RetinaNet进行量化微调的过程中观察到训练不稳定,并提出了针对RetinaNet架构的多种解决方案。但这些解决方案对于更高效的目标检测器,如YOLO,并不适用。Ding等人提出了一种基于ADMM的权重量化框架,但并未解决振荡问题。

由于量化函数的离散性,梯度估计已知具有噪声,这会影响随机梯度下降(SGD)的更新。为了克服这个问题,Zhuang等人[34]提出了一种使用全精度辅助模块的方法,以使量化目标检测器能够进行稳定的训练。

此外,Zhuang等人提出了一种多级批归一化(BN)方法,用于在每个金字塔层上准确计算RetinaNet和FCOS的批统计信息。所提出的这种方法是针对共享不同金字塔层上的不同级别的批归一化层的金字塔架构,但并不适用于更最近的最有效SOTA YOLO模型。

在本文中,作者识别出量化目标检测方面的文献中的这一空白,并利用YOLO5和YOLO7的变体,介绍了最新的量化目标检测器。

3 预备知识

在这里,作者提供一个关于量化感知训练(QAT)的简要背景,并使用一个小玩具的例子来介绍QAT中的振荡问题。

3.1 量化感知训练(QAT)

量化感知训练(QAT)可以通过在神经网络的训练过程中模拟全精度计算操作来实现。神经网络的正向传播被一个量化函数 所包围,该函数将全精度权重和激活转换为量化权重和激活。该函数接受输入向量 并返回经过量化后的输出 ,计算公式如下:

其中, 是最小值向上取整算子, 是一个带有下界 和上界 的剪裁函数。在这里, 分别表示在量化后的最小和最大范围。量化因子 可以在量化感知的训练过程中通过反向传播学习,通过近似舍入算子的梯度来近似舍入算子的梯度。

原始的全精度权重 通常被称为 _潜在权重_,仅对潜在权重进行梯度下降进行更新。在推理阶段,使用量化的权重 来计算卷积或密集层输出。

由于量化函数的不连续性,在嵌入有这种操作的神经网络中进行反向传播是非常困难的。为了缓解这个问题,通常使用的一种技术是使用直方估计器(STE)。STE的基本思想是,在量化的极限内,近似舍入算子的梯度为1。

3.2 量化感知训练(QAT)中的振荡

最近的一些工作观察到,QAT中的振荡现象是一种由QAT的近似梯度通过量化函数传递而引起的副作用。由于近似梯度通过量化函数传递,潜在权重在量化阈值附近振荡。

为了基于STE的QAT中的振荡现象进行说明,作者使用了一个3D玩具回归问题,其中权重和输入都进行了1位量化。在这里,作者分别优化了权重和激活的潜在权重向量 和缩放因子 ,并采用了以下目标函数:

在这里, 指的是最优的真实值, 是定义在等式(1)中的量化函数。作者随机从范围为 的均匀分布中采样数据向量 。优化过程中的振荡行为如图1所示。

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

请注意,图1(a)和图1(c)中的量化权重振荡在量化阈值附近,而不是收敛到接近最优值。尽管图1(b)中量化权重振荡的底层原因是潜在权重振荡,但图1(a)和图1(c)中量化权重的振荡是由于可学习缩放因子的振荡引起的。

在激活量化的案例中,激活的缩放因子也会振荡,这可能导致量化模型的性能进一步下降。在这里,作者想指出的是,以前的工作[25]只考虑了潜在权重振荡的问题,而作者的研究结果表明,可学习缩放因子的振荡也可能导致在QAT期间性能下降。

4 侧效应振荡在YOLO中的影响

量化感知训练(QAT)中权重和激活振荡的问题,不仅在实验小玩具问题中存在,而且在实际训练中也会出现。这导致了量化YOLO模型准确性的显著降低。在这一部分中,作者展示了在量化YOLO网络的权重和激活中普遍存在的振荡问题,以及学习每个张量的一个缩放因子是导致次优潜在权重的基础原因。

4.1 YOLO网络中的振荡问题

作者使用YOLO5-n变体在COCO数据集上进行4位量化,并使用可学习步长量化(LSTQ)进行训练,并在图2(a)中展示了YOLO网络中的振荡问题。大多数潜在权重位于量化级别之间,而分布的峰值位于量化阈值上,而不是量化级别本身。

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

由于大多数潜在权重位于量化阈值附近,因此它们在训练结束时倾向于不断切换其量化状态,如图2(a)和图2(b)所示。此外,作者在图2(c)中分别绘制了用于量化权力和激活的可学习缩放因子。即使在量化感知训练结束时,量化尺度因子仍然保持不稳定。

振荡問題不僅影響到潛在權重,也影響到權重和活躍度的對應的量化尺度因子。這導致了最終QAT模型中權重和活躍度的次優量化狀態。這裡,我們想強調的是,以前的工作觀察到潛在權重中的振動問題,但這裡我們展示了振動也影響到對應於權重和活躍度的量化尺度因子。

4.2 基于阈值的Soft-Rounding分析

振荡抑制作为一种减少振荡副作用的技术被引入。这种方法本质上是通过规范化潜在权重来使潜在权重和量化权重的分布重叠。然而,作者在这里并不考虑这种量化状态下潜在权重的优化问题。

为了这个分析,作者对原量化进行了修改,推导出一个允许将权重更接近量化级别的Soft-Rounding函数,同时将潜在权重保持在量化阈值附近的潜在状态下。作者描述了可以用来Soft-Rounding权重或激活的Soft-Rounding函数 ,它可以通过一个阈值 来实现。

该Soft-Rounding函数可以在权重和激活上使用,以评估是否已将潜在权重和激活固定在量化阈值(见图3(a))。

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

作者将等式(1)中的量化函数替换为Soft-Rounding函数(在时)(在所有预训练的量化YOLO模型中的所有量化层上),并在COCO数据集上评估性能,结果如表1所示。

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

令人惊讶的是,作者在YOLO5-n变体中发现了,在潜在状态下,权重在数量上产生等效或更好的性能。这表明,潜在权重在某些情况下在量化边界附近振荡,部分原因是因为并非张量中的所有权重或激活都可以与单个缩放因子(如每张量量化中的情况)以相同的方式进行量化。如果每张量选择单个缩放因子,则由于每张量量化的限制,某些权重可能永远无法达到最优。

5 方法

在本节中,作者首先提供标量和定义量化感知训练优化问题带有可学习缩放因子。然后,作者引入了作者两个简单的处理由于QAT期间网络参数中的误差引起振荡的副作用的方法。

问题设置:为了方便起见,作者考虑一个全连接神经网络,其中包含 个隐藏层,权重 ,偏置 ,前向激活 ,后向激活 ,其中 增加到 层。然后,神经网络的反馈动态可以表示为:

在这里, 是一个元素非线性函数,输入为 。作者分别用 来表示量化后的权重和激活,并使用 来表示它们的相应量化缩放因子。

为了简洁起见,作者还进一步将所有层对应的网络权重参数表示为,将所有权重张量的量化对应的所有尺度因子表示为,将所有激活张量的量化对应的所有尺度因子表示为。给定数据集,则带有可学习尺度因子的量化感知训练的典型神经网络优化问题可以表示为:

为了求解问题5,作者需要最小化损失函数,其中是网络权重参数,是所有权重张量的量化缩放因子,是所有激活张量的量化缩放因子。接下来,作者解释两种简单的技术,以克服振荡权重和缩放因子的問題,並補償由於在量化邊界處被困住的次優潛在權重。

5.1 指数移动平均(EMA)可以平滑振荡的影响

通过对多个模型检查点进行加权平均,使用周期性的学习率并具有休息的循环学习率,已经被证明可以得到更好的泛化能力和更广泛的最小值。之后,半监督学习方法和自监督学习方法利用了权重的指数移动平均来进行知识蒸馏式的学习。

为了克服由于STE近似引起的振荡权重和量化缩放因子,作者在优化过程中提出了指数移动平均的潜在权重和缩放因子。STE近似方法导致潜在权重在量化边界附近移动,这使得潜在权重状态不断变化。

指数移动平均可以考虑训练的最后几步的模型权重,并平滑振荡行为,并为振荡权重提出最佳可能的潜在状态。振荡权重状态的最终量化状态推断可以采用ema权重和量化参数而不是最新的更新。

对于第层的可训练网络权重参数,作者可以在迭代时计算相应的指数移动平均权重

同样地,作者也可以计算出权重的指数移动平均缩放因子和激活的指数移动平均缩放因子:

这里, 是一个衰减参数,可以用来调整以适应大约 的最后几步梯度下降更新,以达到 ema 模型。在开始 QAT 过程的初始时刻,作者将 设置为 ,以在训练开始时允许更大的更新。ema 参数在训练更新结束后的每个迭代后进行更新,因此不需要反向传播。

需要注意的是,虽然振荡减弱和迭代冻结方法仅适用于权重,但是由于缩放因子的振荡问题仍然存在于激活量化的中,如第2节所示。

为了克服这个问题,作者可以在激活的指数移动平均上进行调整。此外,作者也会在这里强调,像深度神经网络中的批归一化(BN)统计等其他非训练参数已经利用了指数移动平均来改进由于潜在权重振荡而导致的统计不稳定的情况。最近的方法[25]建议,BN统计的重新估计可以改善由于潜在权重振荡而导致的BN统计不稳定的情况。

请注意,损坏的BN统计并不是导致QAT中振荡引起性能下降的唯一原因。然而,作者的ema模型可以提供对潜在权重、激活及其相应缩放因子的稳定更新。

5.2 Post-hoc Quantization Correction (QC)

在这一部分,作者提出了一种简单的校正步骤,可以在事后进行,以克服由振荡的潜在权重和缩放因子引起的误差。如第4节所示,振荡导致大部分潜在权重滞留在量化边界附近。作者进一步证明了,滞留在量化边界的潜在权重已经比它们的最近量化级别更接近于最优。因为根据公式(3)Soft-Rounding YOLO模型生成的性能比量化的模型更好。

振荡的缩放因子主要是由单量化级联算法的无效量化引起,除了STE近似引起的偏置。直觉上,张量中的不同区域可能需要不同的缩放因子才能获得准确的量化近似。

作者的事后校正量化步骤简单地使用一个仿射函数来变换所有层的所有预激活,以补偿由于在量化感知训练过程中振荡而引起的矩阵乘法误差。现在作者可以将量化的神经网络的修改后的前馈动力学表示为:

经过矩阵乘法误差校正后,作者得到:

在这里, 表示经过第层仿射变换后的修改预激活。同时,作者用第层的仿射函数(具有校正参数 和移位校正参数 )表示。

为了简洁起见,作者用表示一组所有校正尺度参数,用表示一组所有校正位移参数。作者用单位变换初始化这些校正参数。然后,作者通过反向传播从预训练的QAT模型开始优化这些校正参数,以达到以下目标:

作者进一步用表示一组校正的缩放参数和一组校正的位移参数,并初始化为单位变换。然后,作者通过反向传播优化这些参数,以达到以下目标:

其中,表示损失函数。作者在训练这些校正参数时使用了一个小型的校正集,该集也是训练集的一部分。

请注意,对于典型的卷积层,这些校正因子将具有与卷积操作后输出通道数相同的维度。作者想强调的是,这些额外的校正参数可以被吸收在卷积层后的可训练批量归一化(BN)参数中,而不会增加额外的计算负担在硬件上。

需要注意的是,作者的校正步骤与BN统计的重新估计步骤不同,BN统计的重新估计是在QAT之后重新估计BN统计。与作者的事后校正步骤不同,BN统计的重新估计无法从量化神经网络的正向传播中恢复。实际上,重新估计BN统计并不是必需的,因为BN统计中的指数移动平均可以使得统计量保持稳定,只要选择的动量值合适。

此外,这些校正参数也可以通过将每个张量的量化转换为每个通道的量化来存储为量化缩放因子。将每个张量的量化转换为每个通道的量化的过程是批量归一化折叠的自然结果,批量归一化参数被折叠到权重的量化缩放因子中,以消除在推理时的批量归一化。

之前的关于在QAT中权重振荡的工作只在每个张量上量化的QAT训练机制上评估了他们的量化感知训练机制,但仍保持训练模式下BN层不变。他们避免振荡的主要动机是训练期间移除损坏的BN统计。然而,为了支持每个张量上量化的一般实践是在QAT之前折叠BN参数。

6 实验

在此部分,作者将介绍作者在COCO数据集上进行实验的情况。作者首先使用YOLO5和YOLO7的模型进行训练,并使用不同的量化方案进行量化。然后,作者使用作者的方法对模型进行校正,并比较校正后的模型在COCO数据集上的性能与原始模型。实验结果表明,作者的方法可以有效地校正模型,并提高其在量化数据集上的性能。

请注意,作者的实验部分没有包括对校正后的模型进行反向传播的讨论。然而,作者已经证明,校正后的模型具有更好的泛化性能,并且可以在量化数据集上获得更好的性能。因此,作者可以推断,校正后的模型在反向传播过程中,其梯度计算将会更加准确,从而可以提高其收敛速度。

在本节中,作者将评估作者提出的ema和QC机制在QAT过程中对各种YOLO5和YOLO7变体在COCO数据集上的有效性。在所有实验中,作者同时对权重和激活进行量化。作者为所有YOLO5和YOLO7变体在低精度(4位和3位)上呈现了最先进的结果,并在所有YOLO5和YOLO7变体上进行了目标检测。作者还与标准Baseline(如LSQ和Oscillation dampening)进行了比较。

为了更好地理解作者的方法,作者进行了比较每个通道量化(per-channel quantization)的改进。最后,作者使用COCO数据集在语义分割任务上建立了最新的量化YOLO5模型。总的来说,作者的结果在低比特精度下为量化YOLO5和YOLO7建立了新的最先进水平,并优于可比Baseline。

6.1 实验设置

作者应用基于LSQ的权重和激活量化。由于目标检测是一个复杂的下游任务,并且量化可能非常具有挑战性,因此作者遵循现有文献[9]的做法,将第一和最后几层量化为8位。

在QAT过程中,作者使用每个张量(per-tensor)的量化,并使用带有Adam优化器的学习率0.0001进行量化缩放因子的学习。作者的QAT从预训练的全精度网络开始,并在100个epoch后完成。对于所有作者的QAT实验,作者使用0.9999的ema衰减率。

在QC中,作者使用Adam优化器以0.0001的学习率进行训练,以学习校正的缩放因子和位移因子。作者针对每个epoch进行校正因子的训练,同时保持批量归一化(BN)统计不变。

除了上述提到的参数外,其余的参数均采用默认值,即参考YOLO5和YOLO7的实现方式。由于LSQ和Oscillation dampening的实验仅针对ImageNet进行,所以作者重新实现了他们的方法,将其应用于YOLO上的目标检测任务。所有作者的结果都以标准的目标检测或语义分割指标mAP报告。作者的代码是用PyTorch编写的,并在NVIDIA A-40 GPU上进行实验。

6.2 基于YOLO的目标检测结果:

作者评估了作者的ema和QC技术在COCO数据集上的YOLO5和YOLO7变体上的目标检测任务。作者将结果报告在不同精度的级别上,即3位、4位和4位。请注意,尽管第一和最后几层被量化到4位,但YOLO5和YOLO7网络的训练仍然是全精度(FP32)。表2报告了使用作者建议的方法和全精度(FP32)训练的YOLO5和YOLO7网络的目标检测结果。

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

作者发现,作者的QC方法仅通过在QAT之后执行后期的校正步骤,就可以显著地改进ema,对于所有不同的网络架构在4位和3位量化下都是这样。改进尤其显著的是在作者的QAT模型中训练的最有效的变体,例如YOLO5-n和YOLO5-s,在3位量化下改进了约4-6%,在4位量化下改进了约2%。此外,即使在完全量化的情况下,即使第一和最后几层都被量化,作者的QC方法在4位量化下使用作者的QAT模型训练得到的结果仍然可以显著地改进。

这意味着,如果能够使用作者的QC方法学习到的校正尺度因子和位移因子来校正这些滞留在量化阈值上的潜在权重所产生的误差,那么这些权重仍然可以非常有用。总的来说,作者的结合ema和QC方法可以在所有YOLO5和YOLO7变体上,将全精度模型与4位量化模型之间的差距降低约2.5%。

6.3 与基线比较

相比于基准,作者的方法在YOLO5和YOLO7的语义分割任务上获得了比之前更好的性能。具体来说,在4位和3位量化下,作者的方法相较于LSQ和Oscillation dampening等基准,分别取得了2.5%和4.4%的性能提升。这些结果进一步证明了作者的校正方法和使用的QC方法的有效性。

作者也对作者的ema和QC技术进行了评估比较,在COCO数据集上对YOLO5和YOLO7变体进行目标检测,与基准方法进行了比较,例如LSQ和Oscillation dampening,在4位和3位量化下进行了比较。

由于LSQ和Oscillation dampening没有在目标检测和YOLO网络上进行实验,所以作者按照他们的论文重新实现了他们的方法来创建Baseline。作者使用mAP指标进行了比较,结果报告在表3中。作者的ema和QC方法都超过了LSQ。

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

作者的方法在YOLO5和YOLO7架构上,对于LSQ和QC的比较,呈现出显著的优势,并且在两个量化水平上(3位和4位)的优势都有2-3%的提高。作者的ema模型在某些情况下甚至优于Oscillation dampening,反映出ema在降低振荡效应方面的有效性,尤其是由于激活量化的振荡效应,而Oscillation dampening并未考虑到激活量化的振荡问题。此外,作者的QC方法进一步扩大了作者的方法与Oscillation dampening之间的差距(约2-3%),在3位和4位量化下,在两个YOLO5和YOLO7变体上。

6.4 与per-channel量化的比较

相比于每通道量化,作者的方法在YOLO5和YOLO7的语义分割任务上获得了更好的性能。具体来说,在4位和3位量化下,作者的方法相较于每通道量化的Baseline,分别取得了约2.5%和4.4%的性能提升。这些结果进一步证明了作者的QC方法的有效性。

正如在第5.2节中提到的,QC的尺度因子和位移因子可以折叠在卷积层后的随后的批量归一化(BN)层中,也可以通过将每个张量的量化转换为每个通道的量化,通过将每个张量的量化转换为每个通道的量化来折叠。已经注意到,对于具有深度卷积的效率网络,每通道量化往往会导致更多的不稳定性,因为深度卷积滤波器(例如大小为3×3)只需要一个尺度因子来学习。

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

因此,作者还提供了与每通道量化进行实验比较的结果,以反映在选择QC作为后期的校正步骤后,在提高每通道QAT的稳定性方面的有效性。在本次评估中,作者分别使用每个张量(每个通道)的定量和每通道定量的QAT进行评估,并报告结果在表4中。

首先,像以前的研究一样,也可以观察到,对于具有深度卷积的网络,每通道量化有时会比每张量量化要差。此外,在作者的QC方法中,在每张量量化的情况下,对YOLO5和YOLO7在3位和4位量化上,作者的QC方法都能够稳定地提高性能,并且在YOLO7上的优势约为3-4%,在YOLO5上的优势约为2-4%。

6.5 基于YOLO的语义分割的结果

由于语义分割任务与目标检测任务类似,因此作者可以参考目标检测部分的结果。在COCO数据集上,作者的方法在语义分割任务上取得了与目标检测任务相当的结果,证明了作者的方法在各种任务上的通用性。具体来说,在3位和4位量化下,作者的方法相较于LSQ和Oscillation dampening等基准,分别取得了约2-3%和约4-6%的性能提升。

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

作者进一步评估了作者的方法,在3位和4位量化下将YOLO5变体在语义分割任务上进行量化。作者使用COCO数据集进行这些实验,并使用mAP指标在表5中报告结果。与在目标检测任务中观察到的结果类似,作者的QC方法在YOLO5-n和YOLO5-s变体在3位和4位量化下,都能以约1-3%的性能优势改进ema方法。此外,QC与ema相结合,能够在语义分割的检测框和分割掩码指标上,都能够减小与全精度对应方法的差距。

7 讨论

在本研究中,作者对高效的实时YOLO5和YOLO7检测器进行了第一个QAT研究,并发现这些网络存在振荡问题。作者进一步指出,振荡问题不仅影响YOLO模型的权重量化,也影响YOLO模型的激活量化。

为了减轻由于STE近似求解的舍入函数和每张量量化引起的振荡副作用,作者引入了两种简单的技术,即ema和QC。作者的提出的QAT流水线将ema和QC相结合,产生了新的最先进的低比特量化YOLO模型。

在未来的工作中,作者认为QC的尺度因子和位移因子可以通过估计特定区域张量中的权重进行规范化,以进一步扩大性能提升的空间。

附录A:

1 与基于QC的Baseline比较

作者在COCO数据集上进行了与原始Baseline(即仅使用LSQ的Baseline)和基于QC的Baseline的比较。作者使用EMA和QC作为作者的QAT后期的校正步骤。表6报告了作者在语义分割任务上与原始Baseline和基于QC的Baseline的比较结果。

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

此外,作者还对QC在COCO数据集上的目标检测任务进行了实验,以评估其在Baseline QAT方法(如LSQ和Oscillation dampening)上的有效性,结果报告在表6中。

作者的QC方法用于校正由于振荡的权重和缩放因子引起的误差,不仅可以提高QAT后量化模型的检测性能,还可以提高Baseline方法。尽管如此,作者的结合方法(包括ema和QC)在4位和3位量化下都优于所有Baseline,并且QC在4位和3位量化下在YOLO5和YOLO7变体上都能够持续地提高性能。

2 在不同的QC设置上进行的消融

为了说明QC在不同设置下的效果,作者分别进行了每张量和每通道设置的QC实验。在每张量QC设置中,作者使用QC尺度或位移校正因子,而在每通道QC设置中,作者也进行了类似的实验。

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

需要注意的是,无论是在每张量QC设置还是在每通道QC设置中,尺度参数和位移参数都是同等重要的,它们都不能单独有效地减少基于振荡的错误。此外,即使是在每张量QC设置中,简单的每张量QC设置也能改进ema的性能,但是正如预期的那样,它不能达到每通道QC设置所达到的性能。

3 EMA中不同衰减因子对其的影响

作者进行了关于EMA中衰减因子影响的实验。具体来说,作者通过改变EMA衰减因子的值,来观察其对EMA方法性能的影响。作者发现,随着衰减因子的增加,EMA方法在训练过程中能够更好地收敛,同时也能提高检测性能。然而,当衰减因子达到一定值时,继续增加的值,会使训练过程变得不稳定,导致过拟合现象的出现。因此,作者建议在实际应用中,应根据具体情况进行选择,避免使用过大的衰减因子。

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

表8显示,作者的EMA方法对不同的衰减参数相当稳定。EMA在计算平均权重或缩放因子时,考虑了大约1-(1-alpha)次迭代。通常,振荡在迭代次数大于等于100次时是相当稳定的,并且通过在最终QAT模型中计算缩放因子或权重的平均值,可以有效地减轻振荡副作用。

4 有或没有EMA的尺度因子中的振荡

为了展示EMA对量化尺度因子在训练过程中的影响,作者在图4和图5中提供了在有或无EMA的情况下,训练的最后4K迭代中权重和激活的量化尺度因子的变化情况。可以看出,EMA使得权量和激活的量化尺度因子在整个训练过程中更加平滑地过渡,从而导致稳定训练的量化YOLO模型。

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

参考

[1]. Reducing the Side-Effects of Oscillations in Training of Quantized YOLO Network

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

扫码加入👉「集智书童」交流群

(备注:方向+学校/公司+昵称

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案

YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案想要了解更多:

前沿AI视觉感知全栈知识👉「分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF

行业技术方案👉AI安防、AI医疗、AI自动驾驶AI模型部署落地实战👉CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架」

欢迎扫描上方二维码,加入集智书童-知识星球,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!

免责声明凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。
点击下方“阅读原文”,了解更多AI学习路上的「武功秘籍」

 

Read More 

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 
评论(没有评论)
Generated by Feedzy