ShiftAddAug:基于乘法算子训练的最新无乘法网络方案 | CVPR‘24

不包含乘法的运算符,如移位和加法,因其与硬件的兼容性而日益受到重视。然而,采用这些运算符的神经网络(NNs)通常表现出比具有相同结构的传统NNs更低的准确性。ShiftAddAug利用成本较高的乘法来增强高效但功能较弱的无乘法运算符,从而在没有任何推理开销的情况下提高性能。将一个ShiftAdd小型神经网络嵌入到一个大型的乘法模型中,并鼓励其作为子模型进行训练以获得额外的监督。为了解决混合运算符之间的权重差异问题,论文提出了一种新的权重共享方法。此外,使用了一种新颖的两阶段神经架构搜索,以获得对较小但更强大的无乘法小型神经网络的更好增强效果。通过在图像分类和语义分割方面的实验验证了ShiftAddAug的优越性,始终带来显著的改善。值得注意的是,与其直接训练的其它网络相比,它在CIFAR100上的准确性提高了多达4.95%,甚至超过了乘法神经网络的性能。

来源:晓飞的算法工程笔记 公众号,转载请注明出处

论文: ShiftAddAug: Augment Multiplication-Free Tiny Neural Network with Hybrid Computation

Introduction


   深度神经网络(DNNs)在资源受限平台上的应用仍然有限,因为它们巨大的能量需求和计算成本。为了获得可以部署在边缘设备上的小型模型,常用的技术包括剪枝、量化和知识蒸馏。然而,上述工作的设计的神经网络均基于乘法。数字信号处理中的常见硬件设计实践表明,乘法可以通过逐位移位和加法来替代,从而实现更快的速度和更低的能耗。将这一思想引入神经网络设计,DeepShiftAdderNet分别提出了ShiftConv运算符和AddConv运算符。

   本文在无乘法神经网络的方向上更进一步,提出了一种通过混合计算增强的小型无乘法神经网络的,显著提高准确性且没有任何推理开销。考虑到无乘法运算符无法恢复原始运算符的所有信息,采用ShiftAdd计算的小型神经网络表现出明显的欠拟合。从NetAug中获得启发,ShiftAddAug选择构建一个更大的混合计算神经网络进行训练,并将无乘法部分设置为在推理和部署中使用的目标模型。将更强的乘法部分作为增强,可以进一步推使目标无乘法模型达到更好的状态。

   在增强训练中,混合运算符共享权重。但由于不同运算符的权重分布各异,乘法的有效权重可能不适用于移位或加法操作,这促使论文开发一种用于增强的异构权重共享策略。

   此外,由于NetAug将网络扩展限制在网络宽度上,ShiftAddAug则通过探索深度和运算符变化来突破限制。因此,采用一种两步神经架构搜索策略,以寻找高效的无乘法小型神经网络。

   在MCU级别(单片机)的小型模型上进行评估。与乘法神经网络相比,直接训练的无乘法神经网络可以在降低准确率的情况下获得显著的速度提升( 2.94 × 2.94 \times 2.94× 3.09 × 3.09 \times 3.09×)和节能($\downarrow 67.75% \sim 69.09% $),但ShiftAddAug可以在提高准确率( ↑ 1.08 % ∼ 4.95 % \uparrow 1.08\% \sim 4.95\% 1.08%4.95%)的同时,保持硬件效率。

   论文的贡献可以总结如下:

  1. 对于无乘法的小型神经网络,提出了混合计算增强,利用乘法运算符来增强目标的无乘法网络。在保持相同模型结构的同时,产生了一个更具表现力且极具效率的网络。

  2. 为了混合计算增强,提出了一种新的权重共享策略,该策略解决了在增强过程中异构(例如,高斯与拉普拉斯)权重共享中的权重差异问题。

  3. 基于增强的思想,采用了两阶段的架构搜索方法。首先从搜索空间中提取一个增强的大型网络,然后在该增强网络中搜索可部署的小型网络。

Related Works


  • Multiplication-Free NNs

   为了减轻与乘法相关的高能耗和时间成本,一个关键策略是采用硬件友好的运算符来替代乘法。

  1. ShiftNet提出了零参数、零浮点运算的卷积。
  2. DeepShift保留了原始卷积的计算方法,但用位移和位反转替代乘法。
  3. 二值神经网络(BNNs)对权重或激活进行二值化,以构建由符号变化组成的深度神经网络(DNNs)。
  4. AdderNet选择用成本更低的加法替代乘法卷积,并设计了一种高效的硬件实现。

   ShiftAddNet结合了位移和加法,如表1所示,在硬件上实现了高达 196 × 196 \times 196× 的能量节省。ShiftAddVit将这一理念应用于视觉变换器,通过专家混合执行混合计算。

  • Network Augmentation

   关于小型神经网络的研究正在快速发展。专为MCU设计的网络和优化技术目前已经出现。

  1. Once-for-all提出了渐进收缩(Progressive Shrinking),并发现所获得模型的准确性优于直接训练的对比模型。受到这一结果的启发,
  2. NetAug提出了一个观点,即小型神经网络在训练中需要更多的容量,而不是正则化。因此,他们选择了一种与Dropout等正则化方法相反的方案:扩展模型的宽度,让大型模型引导小型模型以实现更好的准确性。
  • Neural Architecture Search

   神经架构搜索(NAS)在自动化创建高效神经网络架构方面取得了显著成功,提升准确性的同时,将延迟和内存使用等硬件考虑因素融入设计过程。NAS还扩展了其应用,探索更快的运算符实现并整合网络结构进行优化,使设计更接近硬件要求。ShiftAddNAS开创了一个搜索空间,其中包括乘法和无乘法运算符。

ShiftAddAug


Preliminaries

  • Shift

   位移运算符的计算与使用权重 W W W 的标准线性或卷积运算符相似,只不过 W W W 被四舍五入为最接近的2的幂。采用位移和位反转技术以实现与传统方法相当的计算结果,如公式1所示。输入在计算之前进行量化,并在获得输出时进行去量化。

{ S = sign ( W ) P = round ( log ⁡ 2 ( ∣ W ∣ ) ) { Y = X W q ~ T = X ( S ⋅ 2 P ) T , t r a i n . Y = ∑ i , j ∑ k ± ( X i , k < < P k , j ) , e v a l . \begin{equation} \begin{matrix} \left\{\begin{matrix} S = \texttt{sign}( W) \\ P = \texttt{round}(\log_2(\left | W \right | )) \end{matrix}\right. \\ \left\{\begin{matrix} Y = X {\tilde{ W_q}}^T = X {( S \cdot 2^{ P} )}^T, \quad train. \\ Y = \sum_{i,j} \sum_{k} \pm ( X_{i,k} << P_{k,j}), \quad eval. \end{matrix}\right. \end{matrix} \end{equation} { S=sign(W)P=round(log2(W)){ Y=XWq

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值