近年来,计算机视觉导向的神经网络设计取得了显著的进展,这主要得益于捕获输入和特征之间的高阶神经交互。为了实现这一目标,出现了各种方法,例如Transformer及其变体。然而,这些交互产生了大量的中间状态和/或强数据依赖,导致内存消耗和计算成本显著增加,从而降低了整体运行性能。为了应对这一挑战,作者重新思考了高阶交互神经网络设计,采用二次计算方法。 具体而言,作者提出了_QuadraNet_——一种从神经元重构到结构块,最终到整个神经网络实现的全面模型设计方法。利用二次神经元固有的高阶优势和专用的计算优化方案,_QuadraNet_能够有效地实现最优认知和计算性能。结合最新的硬件感知神经架构搜索和系统集成技术,_QuadraNet_也可以在不同硬件约束设置和部署场景下进行良好泛化。 实验结果显示,与最先进的高阶方法相比,_QuadraNet_实现了1.5倍的吞吐量,30%更少的内存占用,并具有类似的认知性能。
在过去的十年里,计算机视觉任务的Backbone神经网络从基于卷积的信息提取演化为基于Transformer的语义表示,该表示充分利用自注意力机制进行信息叠加。然而,这种先进的机制带来了巨大的计算成本。具体而言,自注意力生成涉及复杂的神经信息交互,如图1(a)所示,导致计算资源消耗和内存开销增加。
因此,即使具有极佳的认知性能,对于边缘设备而言,轻量级的MobileViT模型仍然比基于CNN的MobileNet_V2慢10倍,其中超过60%的延迟是由资源消耗的自注意力生成引起的。
随着自注意力生成成为Transformer类神经网络的新计算瓶颈,一个开放的问题是如何更好地理解其深入的工作机制。从算法角度来看,自注意力生成的实现是通过多次迭代点积的_高阶神经交互_,在多个变换特征维度之间生成输入自适应权重参数。尽管这样的高阶神经交互可能以二次时间和空间复杂度为代价最好地被捕获,但会产生大量稀疏中间状态,如图1(b)所示。
与线性复杂度输入大小的常规特征卷积操作相比,这些中间状态消耗了二次特征空间,从而导致了上述高计算成本。从计算角度来看,为了避免自注意力成本,一些最近的工作提出了实现类似高阶神经交互的其他方法。例如,绕过了softmax操作,通过将自注意力近似为关联乘法来避免二次中间状态。 [9]也分别将高阶生成与门控递归卷积用于降低计算复杂度。然而,这些方法存在一些问题。例如,许多自注意力近似陷入了次优特征空间,从而降低了认知性能; 或者一些实现了可比认知性能,但引入了更复杂的数据依赖,限制了推理吞吐量以及模型设计的泛化[9]。
与这些状态[8, 9]不同,在本论文中,作者提出了一种重新思考Transformer类神经网络结构的方法,以捕获高阶神经交互。基于这一理解,作者然后提出了一种新的神经元级设计,并结合神经架构设计,在保留高精度、低计算和出色泛化能力的同时解决高阶问题。受到[10]的启发,该文构建了没有激活函数的多项式神经网络,作者发现高阶神经交互可以直接嵌入高阶神经元设计。特别是,通过_二次神经元_这样的神经元实现方式可以实现。二次神经元在多个特征维度之间进行信息自我强化具有非常简单和高效的计算模式,因此可以消除传统自注意力生成的中间状态。因此,作者以二次神经元作为Transformer类模型设计的革命关键。
遵循这种方法,在本论文中,作者建立了一个新的二次神经网络架构——QuadraNet,它可以掌握高阶神经交互并适应不同的硬件计算约束。为了从二次神经元成功实现综合QuadraNet架构,作者需要解决一系列挑战,包括设计更高效的二次神经元以及利用新兴的编译技术加速二次卷积操作;通过将二次卷积集成到现代网络模型中,构建基本模型结构块;以及通过神经架构搜索(NAS)方法将硬件感知引入高阶交互式二次神经网络设计。本文的主要贡献如下。
本文的主要贡献如下:
据作者所知,QuadraNet是第一个能够在保持与最先进Transformer类模型竞争的认知性能的同时实现卓越计算效率的二次神经网络设计方法。具体来说,实验表明,与代表性的Transformer类模型相比,所提出的QuadraNet在比较自注意力表示能力和分类准确性方面表现出优异的高阶神经交互。同时,QuadraNet可以在不降低准确率的情况下提供1.5倍的处理速度,并将内存占用优化到30%,与代表性的Transformer类模型SWin Transformer相比。
现有方法:为了捕获高阶神经交互,Transformer类神经网络模型,如ViT及其变体 SWin Transformer,采用了自注意力机制。在进行模型认知时,自注意力机制执行对第i个输入特征维度的第c个输出通道的
次方:
其中,
是涉及交互神经元的注意力感受野;
是通过"Query"(
)和"Key"(
)变换计算的输入自适应权重矩阵;
过程表示第i个和第j个特征维度的相对位置。同时,自注意力通过其对
的"值"(
)变换
在信息变换,
表示从第c个输入通道到第c个输出通道的信息变换。作者认为,
和
的乘积形成了高阶神经交互,这是此类神经模型具有高认知性能的关键。
与公式(1)中的自注意力不同,HornNet 利用门控递归卷积(
_Conv_)进行高阶神经交互,可以表述为:
相反,
_Conv_ 使用了一个通道增加的递归公式
来对特征信息进行高阶迭代,从而得到一个输入自适应权重矩阵。
是一个线性维度切换输入投影。
高级神经交互:通过总结上述工作,作者可以明确地发现这两种方法都采用了输入相关的权重矩阵和通道化的信息变换矩阵。它可以表示为一个通用的多阶神经交互机制:
其中,
表示机制的感知野;
表示包含输入信息的交互权重矩阵;
表示通道化的信息变换。
和输入自适应的
的乘积形成了数据本身的高阶神经交互。这种交互利用了不同特征维度之间激活信息的叠加。
现有高阶交互方法(尤其是自注意力)在计算过程中面临多个关于内存消耗和计算成本的问题。
内存消耗与中间状态: 传统的Transformer类模型通常存在过度的内存消耗。例如,在训练阶段,所有中间状态的数据都必须保存以便反向传播;在推理阶段,正向传播过程中频繁连续的中间状态的生成和释放也会导致内存操作的不一致性和间隔,从而在运行时造成IO消耗增加。这种消耗严重限制了神经模型架构的设计灵活性和优化可行性。
正如所提到的,这些中间状态是由自注意力生成引入的。具体来说,Transformer类模型中
,
和
参数的转换过程产生了3
中间状态,而
将中间状态作为多于
的平方加
的平方乘以C个中间状态。其中,
,
和
分别表示输入每层的高度、宽度和通道数。
与广泛使用的深度可分卷积,它只生成
个中间状态,自注意力需要
(
+3)
的计算。即使将注意力空间限制为局部感受野,如SWin Transformer,自注意力的计算仍然会产生
(
+3)
更多的中间状态,其中
表示感受野大小(通常
7SWin Transformer)。
数据依赖带来的计算成本: 除了内存消耗外,自注意力复杂的计算流程还引入了巨大的成本。例如,HorNet中
_Conv_利用递归卷积实现高阶神经交互。尽管这种巧妙的设计限制了FLOPs在可接受的范围内,但递归逻辑带来了相当大的数据依赖问题。换句话说,
_Conv_中的下一阶神经交互必须等待前一阶的完成。因此,一系列卷积运算符被迫串行化,这极大地降低了计算并行性能,并加剧了计算延迟,尤其是在GPU上。
虽然这样的过度的中间状态和数据依赖给高阶交互神经网络带来了新的挑战,但上述的动机分析也揭示了Transformer类模型的核心认知机制和计算问题。为了实现具有认知和计算性能的革命性设计,作者将展示二次神经元可以发挥重要作用。
一个二次神经元在神经元内进行高阶交互,从而实现其二次计算。因此,在较浅的网络中,二次神经网络可以学习出比传统神经网络更平滑、更丰富的非线性表示。例如,对于一个通用的XOR分类问题,如图2所示,一个单层感知神经元和一个二次神经元可以单独解决它,并给出比具有十个隐藏神经元的两层感知神经元更精确的分类边界。
神经元格式:与传统的单阶神经元,由输入向量
和权重向量
的内积加偏置
和激活组成不同,二次神经元可以表示为输入
的二次多项式形式:
在公式(4)中,
和
分别表示二次项权重和线性项权重。在公式(4)中,
可以被视为
的输入相关权重;因此,显然二次神经元直接将高阶交互嵌入其中。这提高了高阶交互和相应计算的粒度,从模型架构级别到神经元级别,允许高阶交互更灵活地适应。因此,作者可以利用公式(4)中描述的神经元级别高阶交互来构建具有公式(3)机制的高阶神经网络。
机会与挑战:通过将高阶交互嵌入到神经元级别,普通的二次神经元也产生了大小为
的四次参数空间,其参数体积与传统的基于神经元的模型实现相比,上升到
,因为作者现在得到了一个额外的四次项权重矩阵,其中包含
个可学习的参数。随后,与Multiply Accumulate(MAC)操作相关的计算工作量上升到
。因此,不适当的二次神经网络实现仍然可能引起某些计算问题,例如参数空间显著膨胀,从而增加计算量。
这篇论文对二次神经网络进行了仔细的研究,从单个神经元到结构块,最终到整体模型设计和自动搜索。主要目的是全面解决并优化参数空间膨胀问题,同时保留二次神经元的强大高阶神经交互能力。
神经架构搜索(NAS)在神经网络设计和优化中得到了广泛应用。尤其是,考虑计算成本、内存消耗、运行时延迟或功耗等作为模型架构搜索算法中的优化目标之一,从而合成一个在认知性能和计算效率之间取得良好平衡的模型。
先前,由于搜索空间复杂和评估成本高,神经架构搜索(NAS)领域对高阶交互神经网络的关注较少。直到最近,Transformer类模型的普及引发了一些工作,构建了合成视觉变换器(Vision Transformers)。然而,这些工作仅关注认知性能,没有考虑硬件感知,更不用说高阶神经元设计的突破。
在这项工作中,作者旨在将硬件感知纳入提出的_QuadraNet_设计,并扩展其泛化能力。因此,作者将采用成熟的NAS技术来搜索适用于各种部署场景的适应性高阶交互神经网络架构。
图3说明了作者的提出方法概述,它由以下主要任务组成:
二次神经元:正如公式(4)所定义的,传统二次神经元的二次项参数体积为
,这限制了它在算法复杂度和实现难度方面的使用。为了解决这个问题,作者提出了一种新的构建方法,即使用一个低秩权重向量
和
来代替完整的秩二次权重矩阵
,如图3(a)所示,这可以看作是二次项权重的低秩分解。因此,新的二次神经元可以重述为:
这样的分解将二次神经元的参数空间从
减少到
,并将计算复杂度从
减少到
。
高阶交互二次卷积:由于二次神经元具有强大的认知能力和泛化能力,作者可以直接将其引入到简单的信息提取方式中。在本工作中,作者直接将优化后的二次神经元映射到常用的卷积操作,以实现高效的高阶交互。具体而言,作者将一个二次神经元的三个权重组
,
和
映射到三个卷积滤波器,并像公式(5)那样进行多项式计算。通过这样的映射,作者得到一个二次卷积算子。考虑主要用于的深度可分卷积,第i个输入数据的第c个通道的二次计算可以表示为以下形式:
其中,
表示第i个位置的卷积感受野,
表示输入自适应权重。当乘以
时,它捕获了高阶空间交互。请注意,公式(6)形成了一个统一的高阶交互表达式,很好地与公式(3)匹配。这表明二次卷积可以捕获高阶交互,因此可以被视为自注意力和
的近似计算。
高效高阶计算:通过神经元和卷积层的设计,主要的高阶二次计算机制可以微观地确定。从张量计算的角度来看,这个机制的计算可以表述为以下形式:
其中
表示哈达马乘积;
表示卷积运算符(具有
的权重);
和
分别表示输入和张量。与[9]不同,这种机制没有递归逻辑,因此可以消除数据依赖和相应的计算和内存成本。
关于中间状态问题,作者需要检查公式(7)中产生的中间状态。在正向传播过程中,会生成四个中间状态 --
,
,
,和
,总共需要相同的数据体积和
的中间状态工作量。
因此,与传统卷积运算符(即
)相比,二次卷积的中间状态工作量将增加4倍,以获得更好的认知性能,但与自注意力机制(即
)相比,在计算成本方面要更有效。
同时,在反向传播过程中,由于在计算之前可以立即释放
和
中的两个中间状态,因此可以将其减少到
。对于其余两个状态
和
,
(或
)的权重更新仅依赖于
(或
)的中间状态,因为
(或
)的梯度可以通过如下计算得到:
此外,线性项
的权重更新不依赖于任何中间状态。因此,实际上只计算了两个中间状态 --
和
的内存和计算成本。
总之,二次卷积通过避免递归设计来减少数据依赖,并进一步优化中间状态,从而实现更高效的高阶计算。此外,二次卷积还提供了一种通过简单地将二次神经元映射到卷积操作来实现外部加速的可能性,使作者能够直接利用现有的编译器和二次卷积库来优化计算。
QuadraBlock设计:作者的QuadraBlock设计如图3(c)所示。它分为一个空间特征混合层和一个跨通道信息混合层:空间特征混合层包括一个层规范化运算符和一个二次深度卷积;跨通道信息混合层包括一个层规范化运算符,一个具有通道扩展系数
的1
1卷积运算符、一个GELU激活,以及另一个1
1卷积运算符以恢复通道数量。
这样的设计通过仅在空间信息混合中使用二次卷积实现了高计算效率。因为在现代CNN设计中,空间特征混合层在执行重要的纹理、轮廓和形状描绘时,占用的参数和MACs不到5%。因此,将二次卷积插入空间信息混合对整体参数数量和计算成本的影响很小。
QuadraBlock对认知能力:QuadraBlock通过使用通道信息传输和激活来统一多个二次神经元。它在_QuadraBlock_内近似一个高阶二次权重矩阵,从而增强二次神经元的认知能力。这种增强近似是通过利用非线性激活函数构建一个线性无关的二次项权重矩阵来实现的,如公式(9)所示。二次神经元层组合的二次项,即带有扩展系数
和激活函数
的1
1卷积可以表示为以下形式:
其中
,
。
因此,精心设计的_QuadraBlock_将二次权重矩阵
的秩为1的表示能力增强到与秩为
的矩阵相似的水平,同时保持了低秩计算效率和认知能力。
Figure 3 (d)说明了_QuadraNet_的宏观设计。作者遵循完整的四阶段金字塔架构,其中包含4个阶段,每个阶段增加通道数并减小分辨率。在每个阶段中,首先使用STEM进行下采样,同时增加通道数,然后在第i个阶段中重复_QuadraBlock_
次。接下来将考虑以下配置:
感受野:对于二次深度卷积,作者将感受野设置为7
7。与传统的3
3实践相比,较大的感受野有助于捕捉高阶空间交互。
通道数:在每个阶段中,作者按照常见的做法,以逐渐扩大的方式设置每个阶段的通道数,从[C, 2C, 4C, 8C]开始,具体而言,C=[16, 32, 64, 96, 128],以构建_QuadraNet_ L-XXS/XS/T/S/B模型(针对不同的层和尺度)。
层数:为了公平地与基准[4, 9, 16]进行比较,作者可以将每个阶段的块数设置为[3, 3, 27, 3]和[2, 3, 18, 2],以构建QuadraNet 36/25-C,具有与基准相似的模型体积和层数。
作者进一步引入了最先进的状态感知硬件神经架构搜索技术,以进一步增强_QuadraNet_的架构泛化能力和硬件适应性。
搜索空间:遵循常见的神经架构搜索(NAS)开发方法,_QuadraNet_首先需要一个新的参数搜索空间。当作者将上述配置选项泛化到自动化搜索算法中时,作者可以因此获得一个独特的多阶交互搜索空间。
遵循原始的ProxylessNAS,作者指定了一个候选集_QuadraBlock_,其中不同的核大小为{3, 5, 7},扩展系数为{2, 4}。作者还将添加一个不执行任何操作的恒等块,它提供了一个残差(跳过)连接到候选集,以搜索浅层网络。
硬件感知:正如前几节所示,作者分析了_QuadraNet_的内存和计算成本,以及优化因素。考虑到不同系统硬件对不同神经网络操作的剖析,作者可以将不同的_QuadraNet_模型设计投影到特定的资源消耗估计中。因此,在考虑硬件限制的情况下,可以在神经架构搜索过程中建立良好的硬件感知搜索反馈。
搜索方法:利用这些努力,作者将ProxylessNAS修改为一个由_QuadraNet_指定的神经架构搜索(NAS)框架,通过适应搜索空间和反馈配置。首先,作者在定义的_QuadraNet_搜索空间中训练一个超网络。然后,采用基于梯度的搜索策略,将硬件延迟作为损失函数的一部分。最后,作者训练分支权重,以搜索具有特定硬件约束的目标设备的一个适当架构。
由于当前的高阶交互神经网络主要针对图像分类任务,作者也将_QuadraNet_方法应用于这个特定任务。具体而言,作者在ImageNet-1K数据集上进行实验,该数据集包含1280万训练图像和50万验证图像,来自1000个类别。作者报告了ImageNet-1K在验证集上的Top-1精度。
模型初始化:作者使用AdamW 优化器,学习率4e-3,训练_QuadraNets_ 300次迭代(其中20次为热身),采用权重衰减0.05,与[9]中相同的数据增强方法。输入图像的分辨率是224
224。为了稳定训练,作者应用梯度裁剪,将梯度的最大值限制在5,而不是像[12]中的过度丰富的批量归一化,这会损害网络的泛化能力。作者使用"通道最后"的内存布局,如[16]。
认知性能和计算成本:Table I评估了几个手动设计的具有可比FLOPs和参数的_QuadraNet_模型与其他最先进模型的性能。作者的模型在Transformer类和CNN类架构上表现出竞争力的性能。利用这样一个认知性能Baseline,作者在A100 GPU上测量它们的推理吞吐量。
结果表明,与高阶工作[4, 9]相比,具有相似的图像分类准确性,_QuadraNets_实现了1.35
到1.57
更高的推理吞吐量。与ConvNeXt相比,_QuadraNets_实现了更高的认知性能和更高的吞吐量。
内存消耗分析:作者进一步比较了一组具有相似配置的模型,除了不同类型的计算块之外,以评估_QuadraNet_在64批量大小、24层和64/128通道下的内存消耗。还涉及了两个低效的非高阶模型(SkipBlock和ConvBlock),以检查高阶交互性能和成本之间的权衡。为了进行公平的比较,SkipBlock完全消除了空间神经交互和相关残差连接,而ConvBlock使用相同的块设计,但只使用传统的深度卷积。
Table II表明,在相同配置下,_QuadraBlock_实现了比SwinBlock和HorBlock更高效的高阶信息交互,同时需要的额外内存较小。结合加速库QuadraLib进一步优化中间状态,_QuadraBlock_的结果甚至更小。
作者使用nn-Meter进行硬件感知的神经架构搜索,以实现对不同设备强大的延迟估计。作者将移动CPU(CortexA76)、VPU(Intel Myriad VPU)和GPU(A100)的最大延迟分别设置为300ms、30ms和3ms。因此,作者将常规的ProxylessNAS和硬件感知的_QuadraNet_进行比较。
结果如表III所示。作者观察到,在不同的硬件约束下,_QuadraNet_模型在准确性、FLOPs和计算时间方面始终表现更好。图4也给出了一个具有VPU小于10ms延迟的搜索到的模型示例。
优越性 of Quadratic Neuron:作者进一步定量研究了二次神经元的认知能力。图5表明,在不同的通道数和层数下,二次神经元引入的额外参数可以很好地反映在一致的认知性能提升中,这进一步证明了高阶空间神经交互的有效性。
感受野的影响:由于高阶交互是本工作的基本机制,作者将感受野作为代表因素来检查其与_QuadraNet_设计的相关性。作者在4个A100 GPU上训练具有不同核大小的_QuadraNet36-T_,以研究感受野的影响。
如表IV所示,较大的感受野确实可以提高准确率,但会因计算规模膨胀和未优化的算子而付出较大的训练时间。因此,这一观察为认知和计算权衡提供了新的视角。如前所述,作者使用了平衡7
7核,但将在未来进行更多的调查。
通道/空间方向的二次神经元利用率:总之,二次神经元的计算成本高于普通神经元,因此适当利用它们变得至关重要。在传统模型设计中,空间方向的神经元只占5%,而通道方向的神经元占95%。在二次设置中,专门分析表明了哪种方法更适合二次神经元,如表V所示。作者可以看到,尽管空间方向的利用率非常小,但整体效果更好,突显了_QuadraNet_设计原则。
在这项工作中,作者提出了_QuadraNet_——一种革命性的神经网络设计方法,它融入了高效和强大的高阶神经交互。_QuadraNet_避免了现有高阶计算问题,如中间状态和数据依赖,甚至到了神经元设计层面。基于有效的高阶二次神经元设计到_QuadraBlock_,作者构建了一个新的通用Backbone网络家族_QuadraNets_,并为硬件感知的神经架构搜索提供了一个新的高阶交互搜索空间。实验表明,提出的_QuadraNet_具有优越的认知能力、高吞吐量和低的训练内存占用。硬件感知的神经架构搜索进一步确定了在这个新的搜索空间中具有二次神经元的更好二次神经元网络架构。
[1]. QuadraNet: Improving High-Order Neural Interaction Efficiency with Hardware-Aware Quadratic Neural Networks.