在汽车解决方案中,目标检测系统的性能必须尽可能高,响应时间最小,且由于经常采用电池供电操作,能耗要低。在设计此类解决方案时,作者因此面临嵌入式视觉系统所特有的挑战:将高内存和计算复杂度的算法适配到小型低功耗设备中的问题。 在本文中,作者提出了PowerYOLO 一种混合精度解决方案,它针对此类应用中的三个基本要素。 首先,作者提出了一种基于动态视觉传感器(DVS)的系统,这是一种新型传感器,具有低功耗要求,并且在可变光照条件下表现良好。正是这些特性使得事件相机在某些应用中可能比帧相机更具优势。其次,为了确保高准确度以及低内存和计算复杂度,作者建议使用4位宽度的二进制幂(PoT)量化来表示YOLO检测器的卷积权重,而所有其他参数则进行线性量化。 最后,作者从PoT方案中汲取灵感,并用位运算替换乘法,以提高此类解决方案的硬件加速效率,并采用特殊的卷积-批量归一化融合方案。 使用具有PoT量化和特定批量归一化融合的特殊传感器,导致了一个内存复杂度几乎降低8倍且相对于标准方法在计算上大幅简化的独特系统。这个高效的系统在GEN1 DVS数据集上达到了mAP 的高准确度,标志着这种压缩模型的新技术水平。
I Introduction
基于机器学习算法的视觉系统已经成为作者生活中许多领域的标准:在提供娱乐的应用和设备(智能照片和视频处理、增强/虚拟现实)中,在监控和安全系统以及自动驾驶汽车中,或先进的驾驶员辅助系统中。
当然,在大多数应用中,作者认为设备具有有限的能量预算——移动和电池供电的,这意味着使用基于神经网络的耗电算法需要仔细设计这些解决方案,通常相对于标准方法,在存储计算复杂性上有所降低。
这种简化通常意味着将计算精度从32位浮点数更改为16位浮点数、8位固定点,甚至在特殊情况下改为6位和4位固定点数,但最重要的是改为8位或更低宽度的整数,包括二进制和三元。在合适的硬件平台上,这种简化可以带来性能提升(GPU、CPU),如果设计得当,也常常允许降低定制的处理器(FPGA、ASIC)的能量需求。此外,它们还有助于解决内存带宽差距问题并减少模型的大小。通常的做法是使用8位整数的量化,如果使用了适当的量化感知训练(QAT),这只会略微影响神经网络的效率。
在保持全精度模型准确性的同时使用较低精度可能需要特定的量化方案,如之前针对分类任务的对数量化基准测试[1, 2, 3]。
行人和车辆检测是广泛应用程序中存在的任务:从驾驶员辅助系统和自动驾驶汽车,到安全和监控系统。所有这些应用程序都有类似的要求——高性能、实时数据处理,以及相对较低的能量预算。因此,设计这样的解决方案必须全面考虑:选择合适的算法、硬件平台甚至传感器。标准数字相机是自然的选择,而事件相机(动态视觉传感器、类神经形态相机)[4]最近成为了一个有趣的替代品。
事件相机在其操作中模仿人类视觉系统的特性,只注意到每个像素的亮度变化(因此每个像素的事件)。因此,它们记录和传输数据的延迟低于标准相机,并且具有更高的动态范围,使它们在各种光照条件下都能良好工作,包括不均匀和昏暗的场景。后者在变化的道路条件下可能尤为重要。
在本文中,作者建议对通常在低功耗设备背景下考虑的复杂任务——行人和车辆检测,使用对数量化。除了设计具有低内存和计算复杂度的算法外,还决定使用事件相机,其特性非常适合嵌入式感知系统对实时和高精度的要求。系统的示意图在图1中呈现:来自事件相机的数据由伪图像(即事件帧)表示,然后由PowerYOLO混合精度网络处理。由于PoT权重,PowerYOLO网络的硬件实现可以通过简化乘法操作来引入显着的能量增益,从而减少实现相应加速器所需的电子组件数量。因此,这项工作的主要贡献可以总结如下:
- 作者提出了一个高效的INT8/LOG4混合精度PowerYOLO网络,用于GEN1事件数据集的行人和车辆检测。作者的模型以内存-计算复杂度的效率比最佳而著称,实现了mAP 0.301。
- 作者提出了一种融合卷积和批量归一化层的方法,该方法在考虑神经网络权重量化为2的幂的特殊形式时进行。
本文的其余部分组织如下:第二节介绍事件相机的基本信息。第三节讨论与神经网络架构优化相关的前期工作,以及基于事件数据流的目标检测方法的概述。第四节介绍使用整数和2的幂量化方案的PowerYOLO网络。其评估在第五节提供。文章最后简要总结并提出进一步研究的建议。
II Event cameras
事件相机为每个像素单独(异步地)记录光强的变化。一个单一事件由向量 表示,其中 是事件发生的时间(时间戳), 和 是记录像素的空间坐标,而 (极性)根据亮度变化的方向取值 或 (有时也取 和 )。因此,仅在像素亮度发生变化时才进行数据采集,这使得可以以低延迟的数据流实现高分辨率。此外,这使得在目标或相机快速移动时显著减少了模糊。而且,高动态范围分辨率允许在明亮和暗淡区域记录事件。这对于户外解决方案尤为重要,因为户外光照变化很大(例如在汽车领域:穿越隧道,在立交桥下等)。从设计能效解决方案的角度来看,这些传感器特别有趣:由于它们的异步和稀疏操作(仅记录亮度变化),它们平均比典型的数字相机(帧相机)更节能。
然而,事件数据的格式(时空稀疏云)使得无法明确使用标准的数字图像处理算法,包括基于神经网络的算法进行分析。因此,考虑了四种可能性:为事件数据设计专用解决方案(例如:脉冲神经网络 - SNN)[5],处理点云,例如使用图神经网络(由于连续时间段中此类云密度的不同,这可能具有挑战性)[6],将事件投影(聚合)到平面上并创建所谓的伪图像[7],或者从这样的云中重建图像(这计算上非常复杂)[8]。
伪图像的使用最适合与为帧相机注册的图像而开发的典型神经网络配合。文献中已经提出了许多此类方法——它们在考虑时间维度的方式上有所不同,特别是信号随时间的变化。在这项工作中,作者使用了事件帧方法,该方法根据特定时间切片(在作者的案例中是10ms) 转换事件,根据 对于 和 其他情况,其中 表示事件 的时间, 表示其极性。这个选择是由两个因素决定的:首先,所选择的目标检测算法专用于经典图像,因此输入格式必须与它们相似;其次,由于对低功耗设备的内存和计算复杂度的必要限制,将事件云转换为伪图像的方法不应过于复杂。其他值得提及的伪图像表示包括:简单的二值帧[9],指数衰减时间表面[10]和事件频率[11]。
在这项研究中,作者使用了Gen1事件数据集,其中包括了39小时以上的城市、高速公路、郊区和乡村场景的记录,配备了一个Prophesee Gen1传感器的汽车。该收集是基于与事件同时记录的灰度图像手动标记的,最终突出了近230000辆汽车和近28000名行人。为了生成伪图像,作者使用了数据库作者提供的工具[7]。
III 相关工作
在本节中,作者将介绍与作者研究紧密相关的两个主题的先前工作。
Reducing the memory and computational complexity of neural networks
减少神经网络记忆-计算复杂度的标准方法包括量化、剪枝以及通过层融合进行的适当转换,这些转换不会改变推理结果。前两种方法分别导致参数存储所需的位数和参数数量的减少。在最简单的形式中,剪枝,即零化对最终结果影响较小的连接或神经元,会导致一个稀疏网络,其中可以大大减少执行的算术操作数量。然而,这引入了需要记住哪些权重或神经元已被零化(即哪些计算应该省略)的开销。另一种方法是训练稀疏网络,即预先确定移除连接结构的网络。由于神经网络通常是多余的,适当的剪枝或稀疏网络训练可以实现密集网络性能。
由于同样的原因,计算精度的降低(量化)也可能不会导致与浮点网络相比性能显著下降,同时将内存复杂度降低数倍。在许多工具中,一个确定的标准是线性量化,特别是量化到8位整数值,这些工具包括软件工具(例如tensorflow [12],OpenVino [13],brevitas [14])和硬件实现(例如FINN [15],VitisAI [16],nncf [17])。
这种方法将模型减少了四倍(按字节数计算),并显著简化了算术运算的实现,这对于低功耗硬件实现尤为重要。线性量化到更低的位宽可能会显著影响解决方案的准确性,因此,在[18]中首次提出的对数量化方法是一个有趣的替代方案。这个方案允许在参数4位或更小(在适当训练量化网络之后)的情况下保留全精度网络的准确性[1, 2]。此外,这种方法允许用位移代替乘法,利用适当的计算平台(GPU、eGPU,尤其是可重构平台如FPGA),结果延迟降低,功耗降低。显然,计算精度最极端的减少形式是二值量化,但它对网络准确性[20]的影响不容忽视,可能会导致百分之几十的损失。
极低精度的网络,或更确切地说,新的量化方法,通常针对分类任务进行基准测试,因此很难说清楚不同的精度降低方法对神经网络解决的每个任务的影响都是相同的,尤其是对于目标检测。然而,由于更高的复杂性和对输出更高精度信息的需求,对于检测任务,量化到非常低的位宽可能对性能产生更大的影响:尤其是如果作者考虑边界框的坐标,而不是类别概率得分。原则上,后者对于真实类别目标应该比其他目标要高,而不是具有某个特定值。文献中描述了针对YOLO网络的极低精度量化的几次实验。
在[21]中,作者指出由于在学习低精度网络时权重在量化阈值之间振荡的问题,YOLO网络的量化具有挑战性,即使在最后的时期也是如此。提出了两种额外的方法EMA(指数移动平均)和QC(量化校正)来结合量化训练最小化这些振荡。在量化感知训练(QAT)版本中,EMA与全精度网络训练中的工作方式类似,存储权重及其激活的权重和缩放因子历史。引入EMA到QAT中,训练无限地更加平滑。此外,在训练过程之后引入量化校正,通过基于一些预训练参数线性转换激活来最小化振荡误差。使用这种4位量化在COCO数据集上训练的YOLOv5s网络达到mAP为, Baseline (全精度网络)mAP为 - 因此大约下降了(对于不同架构的更多结果,作者参考文章)。在[22]中,作者提出了一种后训练量化方法,该方法为YOLOv5s和COCO数据集实现了4位权重的mAP为。
值得注意的是,这两种方法都提出了使用线性量化方案并附加机制以防止效率显著下降,如[21]中实现的。在本文中,作者提出了混合精度解决方案,网络权重以2的幂对数量化,其余的激活和参数线性量化。
这种方法首先将乘法操作变为位移动操作,其次将剩余的计算作为整数操作执行,从而显著降低了计算复杂性。
关于将乘法操作转换为位移动的操作在多篇论文中都有描述。在[1]中,作者实现了用于PoT加权计算的GPU Kernel ,并显示了相对于标准乘法滤波的增益,将ResNet18的推理时间缩短了。在[23]中,作者针对UMC 55nm低功耗工艺,显示了相对于标准16位乘法器的5位对数量化在能量和逻辑资源上的增益。[24]论文展示了均匀和PoT量化值的硬件实现矩阵乘法的动态功耗消耗。在3位时,可以认为功耗要求大约降低,在5位时为,有利于PoT权重。如之前在[19]中所示,在带有SoC FPGA芯片的Zynq UltraScale MPSoC ZCU104开发板上的硬件卷积层加速器,使用4位PoT权重至少可以比线性量化版本节省的电力,并且随着芯片时钟频率的提高,功率效率的差异会增加。
在本文中,作者提出了一个混合精度检测器,它可以优化神经网络的 所有参数:据作者所知,所有先前关于对数量化工作主要是指权重位的减少,较少情况下也包括激活,而忽略了批量归一化层的问题。尽管这一层不是构建神经网络架构的一个必要部分,但在大多数经典解决方案中它是一个确定的标准。因此,提出一种几乎适用于任何现成的全精度模型的方法是非常重要的。
Object detection based on event data
在文献中可以找到使用GEN1事件数据集[25]进行行人和车辆检测的研究。该数据集本身是由Prophesee公司使用GEN1事件传感器记录的超过39小时的数据创建的,其数据采集分辨率为304x240。
在[26]中,作者提出了将训练于类似图像的事件表示的模型转换为异步操作模型的一般方法。事件数据由稀疏递归表示表示,可以在新的稀疏事件到达时(即仅在发生变化的地方)进行更新。这种输入形式允许使用所谓的稀疏卷积,仅重新计算可能已更改其值的激活。使用这种模型,在GEN1集合和事件直方图表示上获得了mAP为(使用标准卷积神经网络为)。
论文[27]提出了一种直接训练的脉冲网络-EMS-YOLO。第一个卷积层通过将输入转换为脉冲进行训练,随后的层由EMS-模块组成,这是带有LIF(漏积分和点火)激活函数的完全脉冲残差块。网络的输入是在特定时间窗口内基于图像的2D事件表示。在GEN1集合上,实现了mAP为,在4个时间步上进行推理,神经元发放率为,网络参数为。
在[5]中,提出了一个脉冲特征金字塔网络(SpikeFPN),它由编码器 Backbone 脉冲神经网络、脉冲特征金字塔构建网络和脉冲多 Head 检测模块组成。事件数据使用基于时间的堆叠(SBT)表示,这允许将事件流标准压缩成帧时保留一些时间信息。对于GEN1数据集,实现了mAP为。
在[28]中提出了群事件 Transformer 架构,它专门用于直接处理事件数据,从而无需将事件转换为2D表示,这会导致损失一些时间或极性信息。事件根据时间和极性信息嵌入到群 Token 中,然后通过使用自注意力机制 Transformer 架构进行处理。在GEN1数据集上,所提出的模型实现了mAP为,并通过额外的记忆机制来支持仅通过事件摄像机捕捉移动物体的挑战,达到了。
同样,在[29]中,作者也提出直接以结构化(就空间维度而言)点云的形式分析事件。在每一步时间,基于Vision Transformer架构的模型处理新的数据流以及来自递归层的前一状态。递归层有助于解决事件相机在每个时间步没有捕捉到的慢速移动物体的问题。所描述的模型在GEN1数据集上达到了的mAP,对于最大 Proposal 的架构(对于4倍小的模型,mAP为)。
在[7]中提出了一种由标准卷积层和LSTM块组成的递归架构。该模型直接将事件数据流处理为具有固定空间维度的张量。所提出的方法在GEN1数据集上达到mAP ,参数量为。[30]的作者提出使用YOLO(You Only Look Once)模型,以及自适应地将事件转换为Hyper Histogram形式,这允许同时保留时间和极性信息。此外,还提出了对 YOLO 检测器的一种关键数据增强方法的相应修改,即Shadow Mosaic。以这种方式训练的模型达到了mAP ,而未使用Hyper Histogram和Shadow Mosaic的类似解决方案的mAP为(作者将其视为 Baseline )。在[31]中,作者提出了另一种表示事件数据的方法——Temporal Active Focus(TAF)——以及一个小的Agile Event Detector(AED)神经网络模型,以及相应的事件编码器,从时间到平面向量输入提取语义信息。检测器本身的架构基于Darknet21和类似于YOLOX的 Head 。最终,该模型达到了mAP ,参数量为, Baseline (YOLOX架构和Event Volume表示)为。
表1总结了在GEN1数据集上进行目标检测的先前讨论工作。值得注意的是,这些解决方案在计算精度上是经典的,即它们在32位或16位浮点数上操作,并且大部分需要GPU加速。对于基于脉冲神经网络的解决方案,其发射率可以低至,这当然转化为更低的计算复杂度,但这些解决方案的准确度要低得多(而存储复杂度保持不变)。此外,由于这些模型的体积,在低功耗设备上直接高效使用这些模型几乎是不可能的。
对于这篇文章,[30]和[31]提出的方法特别相关:前者是因为使用了YOLO架构,后者则是因为网络规模小。据作者所知,这些模型在GEN1数据集上决定了当前的SoTA(就检测准确度最高而言),作者将把作者的提出的混合精度网络与这些模型进行比较。分析显示,除了架构选择(脉冲网络、经典深度检测器或 Transformer )之外,输入数据的表示本身(多维张量或2D图像)以及其增强也是重要的。
此外,事件帧上的目标检测面临着在物体以可变速度(特别是低或甚至静止)移动时信息连续性的问题。这是设计用于标准图像的算法没有以这种形式遇到的问题。然而,本文的目标不是在这些领域进行进一步的改进,而是提出一种具有尽可能低的内存-计算复杂性的方法,同时保持最高性能。降低内存-计算复杂性有利于嵌入式设备中的高效信息处理,特别是那些具有显著并行计算潜力的设备:它可以提供低延迟,同时能耗较低。
IV PowerYOLO Network
最受欢迎的目标检测算法之一是基于YOLO(You Only Look Once)架构的网络[32]。然而,由于其内存和计算复杂性,对于在低功耗设备上高效地进行这类架构的推理,需要适当的优化。在本节中,作者首先讨论YOLO网络的复杂性,然后介绍所提出的混合精度量化方法——二进制和线性。
YOLO computational and memory complexity
YOLO系列的神经网络主要由三个主要部分组成:用于图像特征提取的主干网络(backbone)、用于提取特征金字塔的 Neck (neck,通过结合主干网络不同层次的特征)以及作为最终阶段用于确定边界框、类别标签、概率和目标性得分的 Head (head)。YOLO网络的架构经过多年的发展,社区广泛认为是当前最佳水平(SoTA)的最新版本是YOLOv8,可在[32]处获取其开源代码。根据主干网络的层数,网络有几种尺寸(按照惯例:n、s、m、l、x),出于本文的目的,选择了常用的大小(因其内存和计算复杂度与实现精度之间的良好比例)的YOLOv8s版本。
整个网络拥有720万的参数(因此,在传统方法中,是32位或16位的浮点数值),其中近是卷积层的权重。将权重和激活线性量化到8位数值通常可以保留全精度网络的准确度,同时将内存复杂度降低4倍(相对于32位数值),并将数学运算的吞吐量提高16倍[33]。如果进一步将卷积层权重的精度降低到4位值,可以获得在内存和计算方面都非常紧凑的架构。在这种情况下,根据[33],在GPU上的数学运算吞吐量可增加到x32。在eGPU和专用处理器中实现这种混合精度网络(权重为4位,激活为8位)可以显著提高推理时间,同时将内存复杂度几乎降低到x8。使用对数量化方案将权重转换为2的幂,作者还将进一步使乘积累加(MAC - Multiply ACCumulate)操作转换为移位累加(BAC - Bishift ACCumulate)操作,最终在神经网络计算中引入了根本性的简化。
Mixed Precision Quantization
在本工作中,作者建议使用混合量化方法,卷积层权重以对数方式量化为4位的二进制幂(即每个权重可以表示为,其中是整数),激活值以线性方式量化为8位数值。偏置通常量化为32位数字,以避免在卷积结果累积过程中发生溢出。8位激活值的线性量化允许网络在不重新训练量化网络的情况下保持高性能,但仅需要通过一些代表性的输入数据集(通常为训练数据的一个子集)来校准缩放因子值和激活偏移。
使用PoT权重量化,将更多的量化间隔集中在零附近,从而模仿卷积层中权重值的分布形状,作者可以使用低于标准8位的位宽实现更好的准确度结果。
PoT量化用于所谓的量化感知训练(QAT)。量化网络的权重以全精度网络的训练结果初始化,然后对量化网络进行训练(微调)相对较少的周期数。由于量化函数的不连续性,不能明确使用梯度方法。前向传播使用量化权重,在反向传播期间使用全精度等价物计算梯度(在权重更新后,重新对网络进行量化)。
另一种在神经网络推理中减少内存和计算复杂性的方法是按照方程(1)融合卷积层和批量归一化层:
其中是卷积层的输出。因此,对于推理,滤波器的权重和偏置相应地进行修改:和。
自然地,这种修改不会影响神经网络的准确性,但减少了所需的乘法和加法操作数量以及参数数量。将这种融合引入到2的幂次网络中,将导致权重不再以2的幂次形式存在,因此失去了所描述方法的一个重要属性。为了减少操作数量,作者提出了一种小而强大的修改方法。首先,由于偏置是线性量化的,它可以按照标准融合方案(公式(1))进行成功修改。接下来,作者建议将通常与权重相关的乘数与量化操作的缩放因子结合,而不是与权重结合。这样,作者尽可能地减少了由批量归一化层引入的所有额外计算,相对于标准融合后的模型,只略微增加了内存复杂性——不是为整个层获取一个缩放因子,而是为每个输出特征图分别获取缩放因子,并且在层间重新量化时完成批量归一化。
最终,作者获得了一个混合精度模型,在内存和计算复杂性方面都十分高效,对于该模型,标准卷积层 - 批量归一化块中的计算可以用简化方程(2)来表示,其中 :
其中 分别是量化权重、块输入和块输出的缩放因子, 是卷积滤波器的尺寸, 是前一层量化到INT8的激活, 是修改后的偏置 量化到INT16, 是INT4格式,以2的幂次形式的权重。
在推理过程中,对于连续层之间的重新量化,对于PoT量化,因子 是向量形式。相比之下,在具有标准卷积和批量归一化融合的线性量化情况下,它是一个标量(值为 )。为了简单起见,方程中省略了表示输出特征图的索引。
尽管量化的粒度可以选择多种方式,但在本文中,作者选择了逐层量化。这个决定基于以下事实:首先,网络中卷积层权重的分布形状是对数的;其次,其他方案的计算复杂性更高。例如,在通道量化方案中,为每个滤波器单独执行量化,这显著增加了训练时间。对于所讨论的网络,实验表明,一个周期的持续时间增加了多达25倍。然而,由于所提出的卷积和批量归一化融合方案,通道量化在推理过程中不会引入额外的计算,对准确性的影响仍然是一个待研究的话题。尽管如此,如第V节所示,逐层方案可以实现非常高的准确度。
V Results
在本节中,作者展示了所提出的PowerYOLO网络在事件相机GEN1数据集上执行目标检测任务的成果。作者既与针对相同任务的其他解决方案进行了比较,也与TinyML组内的其他网络进行了比较。此外,作者还展示了所获得结果对于构建硬件加速器的适用性。
Mixed Precision YOLO
基于在[32]中可获得的YOLO8s代码,作者适当地修改了代码以执行量化训练。使用4个A100 NVIDIA GPU,全精度网络以SGD方法训练了100个周期,动量为,初始学习率为,并线性降低到。全精度网络的权重随后用于初始化量化模型。量化网络使用单个A100 NVIDIA GPU训练了20个周期,同样使用SGD,并且初始学习率低至。在周期5、8和15时,根据降低学习率,其中。在训练过程中使用了指数移动平均(EMA)模型——最终模型参数是每次训练迭代参数的加权平均值(此平均值对数量化,并在每次更新后量化EMA模型)。在进行的实验中,发现量化学习过程中禁用EMA会导致网络在mAP方面性能下降几个百分点。表2显示了YOlov8s网络在Gen1数据集上的训练结果。mAP50和mAP50-95是在指定的两个目标类别:车辆和行人上平均的。一般来说,该指标定义为精确度-召回率曲线下的面积,并广泛用于检测算法评估。在定制的QAT PoT训练后,使用OpenVino库将量化为8位整数值(图2展示了检测器的操作)。
对于量化到INT8和LOG4的两种网络,检测性能的下降是明显的,前者大约为(mAP50),(mAP50-95),后者为(mAP50),(mAP50-95)以及当其他参数和激活也量化时为(mAP50),(mAP50-95)。使用相同的QAT方法,作者还训练了一个权重为4位宽均匀量化的模型。与 Baseline 模型的差距几乎是LOG4模型的两倍,这显示了逐位量化技术的优越性。然而,值得注意的是,文献中有努力通过引入额外的机制,如[34]中所述,来最小化全精度和低比特宽度均匀量化模型之间的差距。
与现有技术水平(SoTA)的比较需要分两步进行,据作者所知,没有其他解决方案是使用YOLO网络以非常低的计算精度处理事件数据的。因此,首先需要参考在Gen1数据集上开发的其他目标检测器。在表3中,作者展示了与Gen1数据集的全精度SoTA的比较。为了尽可能地进行最佳比较,除了YOLOv8s网络之外,作者还训练了YOLOv81网络。在[30]中提出的解决方案使用了YOLOv5I网络,其事件数据的表示略有不同。在没有作者提出的附加机制的情况下,仅由于数据在神经网络前后处理的方式以及事件数据的表示方式的差异,mAP50-95指数的差距小于2%,有利于[30]。另一方面,考虑到一个具有Hyper Histogram事件表示和适应该事件表示的数据增强的模型,差距超过20%。
其次,还应该分析低精度的YOLO网络。表4将作者的解决方案与其他所有卷积层权重(除了第一层和最后一层)都进行量化的4位检测器进行了比较。值得注意的是,在[22]中的解决方案基于训练后量化,通常来说,在如此低精度的计算工具下,这并不能保持令人满意的性能。在[34]中,作者还对激活进行了量化,因此直接与作者的任何版本的模型进行比较都是不可能的——即使是与混合精度版本进行比较,在作者的案例中,与浮点版本的性能差异约为11.5%,也很难明确哪个模型表现更好。在混合精度版本的情况下,作者额外对偏差和批量归一化参数进行量化,正如表2中所示的结果,这具有重大影响。
尽管如此,作者的解决方案是全面的,即它将浮点数的计算降至最低(实际上仅限于重新量化操作,这是任何量化都无法避免的),并针对神经网络中信息流的所有元素(所有层)。因此,作者相信,在内存-计算复杂性的最终效率方面,作者的解决方案至少与[34]一样好,特别是考虑到使用2的幂次量化权重引入减少计算复杂性的潜力(正如作者在**??**部分所示),因此作者在这一类别中设立了新的SoTA。
此外,如[3]和[19]已经建立的那样,基于BAC(位移累加)单元的神经元和层的硬件实现会导致面积和功耗显著降低。对于一个具有4位权重和8位激活的单个处理元素,使用PoT权重可以将能效提高2倍。将这个处理元素用于完整的卷积层会导致功率效率提高1.6倍,并且允许更高的频率操作,如ZCU 104平台所示。
VI Conclusion
在这项工作中,作者提出了一种极其高效的混合精度PowerYOLO检测器,在GEN1事件数据集上达到mAP为。通过使用权重对数量化以及激活和其他参数的线性量化,作者在推理流程中消除了大多数浮点运算,允许用高效的位运算代替乘法,在模型大小缩小近8倍的同时仍然提出了一个准确的检测器。
为了缩小与浮点解决方案之间的差距,未来的工作中作者考虑将训练流程扩展到包含阴影马赛克增强(适合事件数据)并使用其他事件表示技术,可能能够处理缓慢移动和静态物体。
作者最初的论点是,对于嵌入式应用,应该同时解决算法、硬件和传感器(数据)问题,作者的解决方案表明对这些元素的综合分析可以导致真正小型但强大的机器学习解决方案。
参考
[1].PowerYOLO: Mixed Precision Model for Hardware Efficient Object Detection with Event Data.