没有合适的资源?快使用搜索试试~ 我知道了~
79880自适应损失感知量化的多位网络0Zhongnan Qu 1,Zimu Zhou 2,Yun Cheng 1和Lothar Thiele 101 ETH Zurich计算机工程组,瑞士0{quz, chengyu, thiele}@ethz.ch 2新加坡管理大学信息系统学院,新加坡0zimuzhou@smu.edu.sg0摘要0我们研究了通过将深度神经网络的权重和激活量化为多个二进制基的压缩方法,称为多位网络(MBNs),这可以加速推断并减少在低资源移动和嵌入式平台上部署时所需的存储。我们提出了一种自适应损失感知量化(ALQ)的新的MBN量化流程,能够在推断准确性没有明显损失的情况下实现平均位宽低于1位。与以前的MBN量化解决方案不同,ALQ通过直接最小化涉及既不涉及梯度近似也不涉及全精度维护的损失函数上的量化误差来训练量化器。ALQ还利用自适应位宽、平滑位宽减小和迭代训练量化等策略,允许网络尺寸更小而不会损失准确性。在流行的图像数据集上的实验结果表明,ALQ在存储和准确性方面优于最先进的压缩网络。01. 引言0在资源受限的设备上部署深度神经网络以实现移动助手、增强现实和自动驾驶等新的智能服务引起了越来越多的关注。然而,深度神经网络的资源消耗很大。为了利用各种预训练模型在资源受限设备上进行高效推断,通常会通过修剪[10]、量化[8, 9, 26, 42,43]、蒸馏[12]等方法对预训练模型进行压缩。我们重点研究量化,特别是对深度神经网络的全精度权重和激活进行量化。0将神经网络量化为二进制编码和相应的缩放因子[4,36],这也可以从几何角度解释为二进制基向量和浮点坐标[9]。使用二进制编码量化的神经网络通过位运算替代了昂贵的浮点运算,这些位运算甚至可以由微处理器支持,并且通常导致较小的内存占用[29]。由于仅使用一位二进制基和一个坐标所张成的空间过于稀疏,许多研究人员建议使用多位网络(MBN)[8, 9, 15, 26, 42,43],它允许在不明显损失准确性的情况下获得较小的尺寸,并且仍然利用位运算。MBN通常通过训练量化器来获得。最近的研究[31]利用位打包和位运算来在各种通用设备上高效部署二进制网络,这也提供了更多设计多位/二进制网络的灵活性。大多数MBN量化方案[8, 9, 15, 26, 42,43]预先确定了全局位宽,并学习一个量化器将全精度参数转换为二进制基和坐标,使得量化模型不会带来显著的准确性损失。然而,这些方法存在以下缺点:0• 全局位宽可能不是最优的。最近的定点量化研究[18,25]表明,最优位宽在不同层之间是变化的。0• 先前的工作[26, 42,43]通过最小化权重重构误差而不是损失函数来保持推断准确性。这种间接的优化目标可能导致明显的准确性损失。此外,它们依赖于近似梯度,例如直通估计器(STE)在训练过程中通过量化函数传播梯度。0• 许多量化方案[ 36 , 43]将第一层和最后一层保持为全精度,因为将这些层量化为低比特宽度往往会显著降低推理准确性[ 41 , 28]。然而,与其他低比特层相比,这两个全精度层可能会带来显著的存储开销(参见第5.4.3节)。此外,这两个层中的浮点运算可能占据量化网络中大部分计算量[27]。ALQ is inspired by recent loss-aware binary networkssuch as LAB [14]. Loss-aware quantization has also beenextended to fixed-point networks in [13]. However, existingloss-aware quantization schemes [14, 13] are inapplicablefor MBNs. This is because multiple binary bases dramati-cally extend the optimization space with the same bitwidth(i.e. an optimal set of binary bases rather than a single basis),which may be intractable. Some proposals [14, 13, 46] stillrequire full-precision weights and gradient approximation(backward STE and forward loss-aware projection), introduc-ing undesirable errors when minimizing the loss. In contrast,ALQ is free from gradient approximation.79890•我们设计了ALQ,这是第一个针对多位网络的有损量化方案。它也是第一个无需梯度近似的训练量化器,并且能够根据损失自适应地选择比特宽度,包括第一层和最后一层。0我们通过一种新颖的自适应有损量化方案(ALQ)克服了上述缺点。ALQ不使用统一的比特宽度,而是为每组权重分配不同的比特宽度。更重要的是,ALQ通过迭代学习量化器直接最小化损失函数相对于量化权重,实现了以下两个目标:(i)平滑地减少二进制基准的数量;(ii)交替优化剩余的二进制基准和相应的坐标。尽管有关二进制和三进制网络的有损量化已经提出[ 14 , 13 , 46],但由于扩展的优化空间,它们不适用于MBN。它们在训练过程中仍需要近似梯度。ALQ是MBN的第一个有损量化方案,消除了近似梯度和保留全精度权重的需求。ALQ还能够在不引起明显准确性损失的情况下量化第一层和最后一层。本文的主要贡献如下。02. 相关工作0•ALQ使得平均比特宽度低于1比特的二进制网络成为可能(以稠密张量形式表示)。在CIFAR10上的实验证明,ALQ可以将VGG压缩到平均比特宽度为0.4比特,同时比其他二进制网络[36, 4]具有更高的准确性。02.1. 二值网络的量化0ALQ遵循使用离散基准来量化深度神经网络以减少昂贵的浮点运算的趋势。常用的基准包括定点数[ 47 ],二的幂[ 16 ,45 ]和{− 1 , 0 , +1 }[ 4 , 36]。我们关注使用二进制基准,即{− 1 , +1}等等,出于以下考虑。(i)如果权重和激活都使用相同的二进制基准进行量化,可以在32位微处理器上用3个指令进行32次乘累加运算(MACs),即位运算xnor,popcount和累加。这将显著加速卷积运算[ 16 ]。(ii)将网络量化为定点数需要专门的整数算术单元(具有不同的位宽)进行高效计算[ 1 , 18],而使用多个二进制基准量化的网络采用与二进制网络相同的操作。使用二进制基准量化的流行网络包括二进制网络和多位网络。0BNN [ 4]是第一个同时具有二值化权重和激活的网络。它显著减少了内存和计算量,但通常会有明显的准确性损失。为了恢复二值化带来的准确性下降,XNOR-Net [ 36]在BNN中引入了逐层的全精度缩放因子。然而,XNOR-Net将第一层和最后一层保持为非量化状态,这会消耗更多的内存。SYQ [ 6]研究了二值化/三值化过程中不同结构的效率。LAB [ 14]是第一个通过直接最小化损失函数来优化权重的有损量化方案。02.2. 多比特网络的量化0MBN是使用多个二进制基来权衡存储和准确性的网络。Gong等人提出了一种残差量化过程,通过最小化残差重构误差来贪婪地搜索下一个二进制基 [8]。Guo等人通过最小二乘细化改进了贪婪搜索 [9]。Xu 等人[42]将这个搜索分为两个交替步骤,先固定坐标然后用穷举法搜索最优基,然后固定基再用[9]中的方法改进坐标。LQ-Net[43]扩展了[42]的方案,引入了移动平均更新,同时量化权重和激活。然而,类似于 XNOR-Net [36],LQ-Net[43]不对第一层和最后一层进行量化。ABC-Net[26]利用所有权重的统计信息构建了整个网络的二进制基。0所有最先进的 MBN量化方案都是通过最小化权重重构误差而不是网络的损失函数来实现的。它们还依赖于梯度近似,如STE,在反向传播量化函数时。此外,它们都为所有参数预先确定了统一的比特宽度。间接的目标、近似的梯度和全局比特宽度导致了次优的量化结果。ALQ是第一个明确优化损失函数并在没有梯度近似的情况下逐步训练自适应比特宽度的方案。minˆwgℓ ( ˆwg)(1)s.t.ˆwg =i=1αiβi = Bgαg(2)799003. 自适应损失感知量化03.1. 权重量化概述0符号表示。我们的目标是进行自适应比特宽度的 MBN量化。为了允许自适应比特宽度,我们将权重分为不相交的组。具体来说,对于给定层 l的向量化权重 w,其中 w ∈ R N × 1,我们将 w 分成 G个不相交的组。为简单起见,我们省略了下标 l。每个权重组由 w g 表示,其中 w g ∈ Rn × 1。0其中 N = n × G。然后,每个组的量化权重,ˆ w g = � I g i =1 α i β i = B g α g。β i ∈{− 1 , +1 } n × 1 和 α i ∈ R + 是第 i 个二进制基和相应坐标;I g 表示组 g的比特宽度,即二进制基的数量;B g ∈ {− 1 , +1 } n × I g 和 α g ∈ R I g × 1 +是二进制基和坐标的矩阵形式。我们进一步将 α 表示为向量化坐标 { α g } G g =1,B表示连接的二进制基 { B g } G g =1,层 l 的量化结果得到平均比特宽度 I = 1。0G ≤ G g =1 I g。我们在第 5.1 节讨论了组大小 n的选择,以及初始的 B g、α g、I g。0问题建模。ALQ通过直接最小化损失函数而不是重构误差来量化权重。对于第 l 层,该过程可以被表示为以下优化问题。0I g≤0card( α ) = I × G ≤ I min × G (3)0其中 ℓ 是损失函数;card( . ) 表示集合的基数,即 α中元素的总数;I min是期望的平均比特宽度。由于每一层中的组大小 n相同,card( α ) 与存储消耗成正比。ALQ通过以下两个子问题的迭代求解来解决公式(1)-公式(3)中的优化问题。整体伪代码见附录 B.3 的算法 5。0• 第一步:α 域中的剪枝(第 3.2节)。在这一步中,我们通过剪枝 α域中最不重要(相对于损失)的坐标来逐步减小层 l的平均比特宽度 I。注意,删除一个元素 α i也会导致二进制基 β i 的删除,从而导致组 g 的比特宽度 Ig减小。这样,不会引入稀疏张量。稀疏张量可能导致有害的不规则计算。由于每个权重组的重要性不同,导致的 I g在组之间有所变化,从而为每个组贡献了自适应比特宽度 Ig。在这一步中,我们只将 α 的一些元素设为零(同时从α 中删除它们,导致 I g 减小),而不改变其他元素。0Step 1的优化问题是:0min α ℓ ( α ) (4)0s.t. card(α) ≤ Imin × G (5)0• Step2:优化二进制基Bg和坐标αg(第3.3节)。在这一步中,我们重新训练剩余的二进制基和坐标,以恢复由位宽减小引起的精度下降。与[42]类似,我们采用一种替代方法来提高精度恢复。具体来说,我们首先在给定坐标的情况下搜索一组新的二进制基。然后我们通过固定二进制基来优化坐标。Step 2的优化问题是:0min ˆwg ℓ ( ˆwg ) (6)0s.t. ˆwg =0Ig �0i =1 αiβi = Bgαg (7)0优化器框架。我们将上述两个子问题都视为具有域约束的优化问题,并使用相同的优化框架进行求解:具有投影更新的次梯度方法[5]。Eq.(6)-Eq.(7)中的优化问题对Bg施加了域约束,因为它们只能是离散的二进制基。Eq.(4)-Eq.(5)中的优化问题可以被视为具有平凡域约束的问题:输出α应该是输入α的子集(子向量)。此外,Bg和α的可行集都是有界的。具有投影更新的次梯度方法对于解决形式为min x (ℓ(x)) s.t. x∈X的问题非常有效[5]。我们在两个步骤中都应用AMSGrad[37],一种具有投影更新的自适应随机次梯度方法,作为通用的优化器框架。在第s次迭代中,AMSGrad生成下一个更新如下,0xs+1 = ΠX, √0ˆVs ( xs - as ms /√0ˆvs)0= argmin x ∈X ∥ ( �0ˆVs)1/2 (x - (xs - as ms0√0ˆvs)) ∥ (8)0其中Π是投影算子;X是x的可行域;as是学习率;ms是(无偏)一阶动量;ˆvs是(无偏)最大二阶动量;ˆVs是ˆvs的对角矩阵。在我们的上下文中,Eq.(8)可以写成,0ˆwsg+1 = argmin ˆwg ∈ F fs ( ˆwg ) (9)0fs = (as ms)T ( ˆwg - ˆwsg)+ 102 ( ˆwg - ˆwsg )T �0ˆV s ( ˆwg -ˆwsg ) (10)iteratively updated by the loss gradient of ˆwsg. Thus, the79910其中F是ˆwg的可行域。根据它们的目标,Step 1和Step2具有不同的可行域F(详见第3.2节和第3.3节)。Eq.(10)在域约束下将ˆwg在当前点ˆwsg附近的损失增量近似为二次模型函数[5, 37]。为简单起见,我们用gs替换as ms,并用�0∂ˆwsg。由于ˆwsg在前向传播过程中用作中间值,因此可以在反向传播过程中直接获得。03.2. 在α域中进行修剪0如第3.1节介绍的那样,我们通过修剪α中的元素来减小I的位宽,以达到所需的损失。如果α中的一个元素αi被修剪,则相应的维度βi也从B中删除。现在我们解释如何实例化Eq.(9)中的优化器来解决Step1中的Eq.(4)-Eq.(5)。所选子集的基数(即平均位宽)在迭代过程中均匀减小。例如,假设总共有T次迭代,初始平均位宽为I0,T次迭代后的期望平均位宽为IT,Imin。然后在每次迭代t中,这一层中的αti的M个元素(Mp = round((I0 - Imin)× G/T))被修剪。这样,T次迭代后的基数将小于Imin ×G。请参见附录B.1中的Alg.2以获取伪代码。在α域中进行修剪时,B被视为不变。因此,Eq.(9)和Eq.(10)变为,0α t +1 = argmin α ∈ P f t α ( α ) (11)0f t α = ( g t α ) T ( α - α ) + 102 ( α - α t ) T H t α ( α - α t ) (12)0其中 g t α 和 H t α 与 Eq.(10) 中类似,但在 α 域中。如果α t i 被修剪,则上述 Eq.(11) 和 Eq.(12) 中的 α 的第 i个元素设置为 0。因此,约束域 P 被取为 α t 中具有 M p个零元素的所有可能向量。AMSGrad在二次模型函数中使用 H t α 的对角矩阵,这使得 α t中的每个元素解耦。这意味着由几个 α t i引起的损失增量等于它们分别引起的增量的总和,计算如下:0f t α ,i = - g t α ,i αt i + 102 H t α ,ii ( α t i ) 2 (13)0对 f t α ,i 的所有项按升序排序。然后从排序列表中删除前M p 个项 ( α t i ),结果是一个较小的基数 I t ×G。AMSGrad 步骤中 α 域的输入是 α t g的损失梯度,可以使用链式法则计算,0∂ α t g = B t g T ∂ℓ t0∂ ˆ w t g (14)0ˆ w t g = B t g α t g (15)0我们的流水线允许平滑地减小位宽,因为平均位宽可以是浮点数。在 ALQ中,由于不同的层具有相似的组大小(参见第 5.1节),由修剪引起的损失增量在所有层之间排序,因此只需要确定一个全局修剪数量。全局修剪数量由修剪的 α i0l card( α l ) 在修剪之前和修剪之后。更多细节请参见附录B.1 和B.3。这个修剪步骤不仅提供了一种有损失感知的自适应位宽,还寻求了一个更好的初始化,以训练以下较低位宽的量化,因为量化权重可能与其原始全精度值相对较远。03.3. 优化二进制基和坐标0修剪后,需要恢复损失降级。根据 Eq.(9),第 2 步的目标是0ˆ w s +1 g = argmin ˆ w g ∈ F f s ( ˆ w g )(16)0约束域 F由二进制基和全精度坐标决定。因此,直接搜索最优的 ˆ wg 是 NP-hard 的。相反,我们以交替的方式优化 B g 和 αg,就像之前的 MBN 量化一样,关于重建误差 [42,43]。优化 B g。我们使用 AMSGrad直接搜索最优基。在每个优化迭代 q 中,我们固定 α qg,并更新 B qg。我们找到每组权重的最优增量,使其转换为一组新的二进制基 B q +1 g。这个优化步骤基于损失减少搜索 B q +1g所张成的新空间,防止修剪空间始终是前一个空间的子空间。详细的伪代码请参见附录 B.2.1 中的 Alg. 3。根据 Eq.(9)和 Eq.(10),最优的 B g 关于损失的更新为:0B q +1 g = argmin B g ∈{− 1 , +1 } n × Ig fq ( B g ) (17)0f q = ( g q ) T ( B g α q g - ˆ w q g )+ 1 2 ( B gα q g - ˆ w q g ) T H q ( B g α q g - ˆ w q g )(18)0其中 ˆ w q g = B q g α q g。由于 AMSGrad 中的 H q是对角矩阵,所以 B q +1 g中的每个行向量可以独立确定。例如,第 j 行计算如下:0B q +1 g,j = argmin B g,j ∥ B g,j α q g - ( ˆ w q g,j -g q j /H q jj ) ∥ (19)0一般来说,n >> I g。对于每个组,我们首先计算所有 2 I g可能的值0b T α q g , b T ∈ {− 1 , +1 } 1 × I g (20)79920然后通过穷举搜索,可以直接通过最优的 b T来分配每个行向量 B q +1 g,j。0优化 α g。上述得到的二进制基集合 B g张成一个新的线性空间。当前的 α g不太可能是该空间中损失的(局部)最优解,因此现在我们优化 α g。由于 α g 是全精度的,即 α g ∈ R I g ×1,没有域约束,因此不需要投影更新。优化全精度 w g在原始的 n维全空间中采取增量步骤(由正交基张成)。类似地,优化α g 在一个 I g 维子空间(由 B g张成)中搜索步骤。因此,常规的训练策略可以直接用于优化 α g。详细的伪代码请参见附录 B.2.2 中的 Alg.4。类似于 Eq.(11) 和 Eq.(12),我们在 α 域中构造了一个AMSGrad 优化器,但没有投影更新,对于第 p次迭代中的每个组,它的更新为:0αp+1g = αpg −apαmpα / �0ˆvpα (21)0我们还对αg添加了L2范数正则化,以将不重要的坐标强制设置为零。如果αg中存在负值,则将相应的基设置为其负补数,以保持αg半正定。优化Bg和αg不会影响二进制基数Ig的数量。0优化加速。由于αg是全精度的,更新αqg比穷举搜索Bq+1g要便宜得多。即使第3.3节中第一步的主要目的是优化基,我们也在每个优化迭代q中为αqg添加了一个更新过程。我们固定Bq+1g,更新αqg。两个更新过程中量化权重的总增量为0ˆwq+1g − ˆwqg = Bq+1gαq+1g − Bqgαqg (22)0将Eq.(22)代入Eq.(9)和Eq.(10),我们有0αq+1g =−((Bq+1g)T0((Bq+1g)T(gq−HqBqgαqg))(23)0为了确保Eq.(23)中的逆存在,我们在(Bq+1g)THqBq+1g上加上λI,其中λ=10^(-6)。04.激活量化0为了利用位操作加速,每层的输入(即上一层的激活输出)也需要以多位形式进行量化。与以前的工作[43]不同,该工作使用{−1,+1}对激活进行量化。这样,我们只需要3个指令而不是5个指令来替换原始的32个MACs(见第2节)。我们的激活量化遵循[2]中提出的思想,即对固定点激活进行参数化剪裁。0量化,但它适应于多位形式。特别地,我们用一个阶跃激活函数替换了ReLu。第l层的向量化激活x被量化为0x. = ˆx = xref + Dγ = D'γ' (24)0其中D∈{−1,+1}Nx×Ix,γ∈RIx×1+。γ'是由[xref,γT]T形成的列向量;D'是由[1Nx×1,D]形成的矩阵。Nx是x的维度,Ix是激活的量化位宽。xref是引入的逐层(正浮点)参考,以适应ReLu的输出范围。在推理过程中,xref与下一层的权重进行卷积,并加上偏置。因此,引入xref不会导致额外的计算。最后一层的输出不进行量化,因为它不再涉及计算。对于其他设置,我们直接采用了[43]中使用的设置。γ和xref在前向传播过程中通过运行平均值进行更新,以最小化平方重建误差,如下所示:0γ'new = (D'TD')^(-1)D'Tx (25)0γ' = 0.9γ' + (1−0.9)γ'new (26)0(量化)权重还通过我们的优化器进行了进一步微调,以恢复准确性下降。在激活量化中,我们只为所有层设置了全局位宽。05.实验0我们使用Pytorch [30]实现了ALQ,并在MNIST[22]、CIFAR10[19]和ILSVRC12(ImageNet)[38]上使用LeNet5[21]、VGG [14,36]和ResNet18/34[11]进行了性能评估。有关更多实现细节,请参见附录C。05.1. ALQ初始化0我们采用[9]中提出的网络草图来进行初始化,并实现了结构化草图(见附录A.1中的算法1)。Alg.1中的一些重要参数选择如下。组大小n。我们通过在重量重建误差和存储压缩率之间进行权衡,经验性地确定了组大小n的范围。组大小从32到512可以取得良好的平衡。因此,对于卷积层,通道方向(wc,:,:,:),核方向(wc,d,:,:)和像素方向(wc,:,:h,w)的分组似乎是合适的。通道方向wc,:和子通道方向wc,d:d+n的分组适用于全连接层。此外,当前流行网络的最常用结构是像素方向(卷积层)和(子)通道方向(全连接层),这与[31]中的位打包方法相一致。有关分组的更多详细信息,请参见附录A.2。组g的最大位宽Imax。初始Ig由预定义的初始重建精度或最大位宽设置。我们注意到准确度下降01020304050epoch8990919293Top-1 accuracy(%)2-bit VGGALQSTE with rec. errorSTE with loss-aware010203040epoch40506070Top-1 accuracy(%)2-bit ResNet18ALQSTE with rec. errorSTE with loss-aware010203040epoch55606570Top-1 accuracy(%)4-bit ResNet18ALQSTE with rec. errorSTE with loss-aware010203040epoch55606570Top-1 accuracy(%)6-bit ResNet18ALQSTE with rec. errorSTE with loss-awareResNet18. ALQ converges faster, but the validation accu-racy trained with STE gradually exceeds ALQ after about20 epochs. For training a large network with ≤ 2 bitwidth,the positive effect brought from the high precision trace maycompensate certain negative effects caused by gradient ap-proximation. In this case, keeping full precision parameterswill help calibrate some aggressive steps of quantization,resulting in a slow oscillating convergence to a better localoptimum. This also encourages us to add several epochs ofSTE based optimization (e.g. STE with loss-aware) after lowbitwidth quantization to further regain the accuracy.79930由于初始化引起的性能下降可以在几个优化周期后完全恢复,如果最大位宽为8。例如,在ILSVRC12上,经过这样的初始化,ResNet18可以重新训练到70.3% /89.4%的Top-1/5准确率,甚至高于其全精度对应物(69.8% /89.1%)。对于较小的网络,如CIFAR10上的VGG,最大位宽为6就足够了。05.2. 收敛性分析0设置。该实验对我们在第3.3节中的优化步骤进行了消融研究。我们展示了我们的优化器在收敛性方面的优势,对使用统一位宽量化的网络进行了比较。我们比较了使用速度提升(也是算法3)优化Bg的效果,因为它采用了与之前的工作[42,43]类似的交替步骤。回顾一下,我们的优化器(i)没有梯度近似,(ii)直接最小化损失。我们使用学习率为0.001的AMSGrad 1进行比较,并与以下基准线进行比较。0•带重构误差的STE:该基准线通过在前向传播期间最小化重构误差(而不是损失)来量化维持的全精度权重,并通过STE近似梯度进行反向传播。这种方法在一些最佳性能的量化方案中被采用,如LQ-Net [43]。0•带损失感知的STE:该基准线通过STE近似梯度,但通过更新损失感知投影(改编自我们的ALQ)进行更新。它可以被认为是二进制和三进制网络的多位扩展的先前损失感知量化器。详见附录B.4中的伪代码。0图1. 使用ALQ/基准线训练的验证准确率。0结果。图1显示了不同优化器在统一位宽MBN上随着迭代次数的增加而增加的Top-1验证准确率。ALQ不仅收敛更稳定更快,而且准确率更高。唯一的例外是2位ResNet18。ALQ收敛更快,但在大约20个周期后,使用STE训练的验证准确率逐渐超过ALQ。对于使用≤2位位宽训练大型网络,高精度跟踪带来的积极效果可能会弥补由梯度近似引起的某些负面影响。在这种情况下,保持全精度参数将有助于校准量化的一些激进步骤,从而导致对更好的局部最优解的缓慢振荡收敛。这也鼓励我们在低位宽量化之后添加几个周期的基于STE的优化(例如,带损失感知的STE)以进一步恢复准确性。01 AMSGrad也可以优化全精度参数。05.3. 自适应位宽的有效性0设置。该实验演示了ALQ中逐步训练的自适应位宽的性能,即我们在第3.2节中的修剪步骤。将统一位宽量化(在所有层的所有组中均分位宽分配)作为基准线。基准线与位宽减小期间所有迭代次数之和相同的次数进行训练。ALQ和基准线都使用相同的学习率衰减计划进行训练。0结果。表1显示,使用ALQ进行自适应位宽训练和使用统一位宽(基准线)之间存在较大的Top-1准确率差距。除了整体平均位宽(IW)之外,我们还在图2中绘制了平均位宽和各层权重数量的分布(表1中的两个模型)。一般来说,前几层和最后一层对损失更敏感,因此需要更高的位宽。ResNet架构中的快捷层(例如ResNet18中的第8层、第13层、第18层)也需要更高的位宽。我们认为这是因为快捷传递有助于信息在块之间的前向/后向传播。由于自适应位宽的平均值可以有小数部分,ALQ可以实现比统一位宽更高分辨率的压缩率,这不仅可以控制存储和准确性之间更精确的权衡,还有利于我们的增量位宽减小(修剪)方案。0表1. 基线(统一位宽)和ALQ(自适应位宽)之间的比较。0方法 I W Top-1。0基线VGG(统一)91.8% ALQ VGG 0.6692.0% 基线ResNet18(统一)66.2% ALQResNet18 2.00 68.9%0值得注意的是,ALQ中的优化步骤和剪枝步骤遵循相同的度量标准,即由二次函数建模的损失增量,使它们能够协同工作。我们用STE步骤(具有重构前向,见第5.2节)替换了ALQ中优化B g 的步骤,并在流水线中保持其他步骤不变。02.557.5100510106avg. bitwidthnum. of weights02.557.51002410679940ALQ VGG(0.66位)01 2 3 4 5 6 7 8 9 层。0平均位宽。0权重数量。0ALQ ResNet18(2.00位)02 4 6 8 10 12 14 16 18 20 层。0平均位宽。0权重数量。0图2. 不同层之间的平均位宽和权重数量的分布。0当VGG模型的平均位宽降低到0.66位时,仅使用STE步骤与我们的剪枝步骤的简单组合只能达到90.7%的Top-1准确率,明显低于ALQ的92.0%。05.4. 与最先进技术的比较。05.4.1 MNIST上的非结构化剪枝。0设置。由于ALQ可以被视为α域中的(结构化)剪枝方案,我们首先将ALQ与两种广泛使用的非结构化剪枝方案进行比较:DeepCompression(DC)[10]和ADMM-Pruning(ADMM)[44],即在原始w域中进行剪枝。为了公平比较,我们在MNIST数据集[22]上实现了一个修改后的LeNet5模型,就像[10,44]中一样,并比较了Top-1预测准确率和压缩率。注意,存储消耗仅计算权重,因为与其他因素(例如偏置、激活量化器、批量归一化等)相比,权重在存储上(即使在量化之后)占据了最大的比重。ALQ中权重的存储消耗包括每个组中生成的I g 的查找表(后续实验也是如此)。0表2.与最先进的非结构化剪枝方法(LeNet5在MNIST上)的比较。0方法 权重(CR) Top-1。0FP 1720KB(1×)99.19% DC [10]44.0KB(39×)99.26% ADMM [44]24.2KB(71×)99.20% ALQ22.7KB(76×)99.12%0结果。与其他两种剪枝方法相比,ALQ在保持可接受的Top-1准确率的同时显示出最高的压缩率(见表2)。FP代表全精度,原始全精度LeNet5中的权重消耗为1720 KB[10]。CR表示压缩率。0存储权重的速率。值得一提的是,DC [10]和ADMM[44]都依赖于稀疏张量,这需要特殊的库或硬件来执行[24]。它们的操作数(共享的量化值)仍然是浮点数。因此,它们几乎不利用位运算来加速。相比之下,ALQ在没有稀疏张量的情况下实现了更高的压缩率,这更适合于通用的现成平台。ALQ的平均位宽低于1.0位(1.0位对应的压缩率略低于32),表明一些组被完全移除。实际上,这个过程导致了一个包含每层较少输出通道的新网络架构,因此下一层的相应输入通道可以安全地移除。原始配置20-50-500-10现在是18-45-231-10。05.4.2 CIFAR10上的二进制网络。0设置。在这个实验中,我们将ALQ与最先进的二进制网络[3,36,14]的性能进行比较。二进制网络是具有最低位宽的MBN,即单比特。因此,二进制网络的存储消耗可以被视为(多比特)二进制网络的下界。为了公平比较,我们在CIFAR10数据集[19]上实现了来自[40]的VGG的一个小版本,就像许多最先进的二进制网络[3, 14, 36]一样。0表3.与最先进的二进制网络(VGG在CIFAR10上)的比较。0方法 I W 权重(CR) Top-10FP 32 56.09MB(1×) 92.8% BC [3] 11.75MB(32×) 90.1% BWN [36]* 11.82MB(31×) 90.1% LAB [14] 11.77MB(32×) 89.5% AQ [18] 0.271.60MB(35×) 90.9% ALQ 0.661.29MB(43×) 92.0% ALQ 0.400.82MB(68×) 90.9%0*: 第一层和最后一层都未量化。0结果。表3显示了与流行的二进制网络的性能比较。IW代表权重的量化比特宽度。由于ALQ具有自适应的量化比特宽度,所报告的ALQ比特宽度是所有权重的平均比特宽度。对于统计信息,我们在附录C.2中绘制了多个训练损失曲线。ALQ可以将网络压缩到低于1-bit,从而显著减少存储和计算。与所有权重二值化方法BC [3]、BWN [36]、LAB[14]相比,ALQ实现了最小的权重存储和最高的准确性。与LeNet5上的结果类似,ALQ生成了一个新的网络架构,每层的输出通道更少,进一步将我们在表3中的模型减少到1.01MB(0.66-bit)甚至0.62MB(0.40-bit)。计算和运行时内存也可以减少。ResNet18FP [30]32/3246.72MB69.8%TWN [23]2/322.97MB61.8%LR [39]2/324.84MB63.5%LQ [43]*2/324.91MB68.0%QIL [17]*2/324.88MB68.1%INQ [45]3/324.38MB68.1%ABC [26]5/327.41MB68.3%ALQ2.00/323.44MB68.9%ALQe2.00/323.44MB70.0%BWN [36]*1/323.50MB60.8%LR [39]*1/323.48MB59.9%DSQ [7]*1/323.48MB63.7%ALQ1.01/321.77MB65.6%ALQe1.01/321.77MB67.7%LQ [43]*2/24.91MB64.9%QIL [17]*2/24.88MB65.7%DSQ [7]*2/24.88MB65.2%GroupNet [48]*4/17.67MB66.3%RQ [27]4/45.93MB62.5%ABC [26]5/57.41MB65.0%ALQ2.00/23.44MB66.4%SYQ [6]*1/83.48MB62.9%LQ [43]*1/23.50MB62.6%PACT [2]*1/23.48MB62.9%ALQ1.01/21.77MB63.2%ResNet34FP [30]32/3287.12MB73.3%ALQe2.00/326.37MB73.6%ALQe1.00/323.29MB72.5%LQ [43]*2/27.47MB69.8%QIL [17]*2/27.40MB70.6%DSQ [7]*2/27.40MB70.0%GroupNet [48]*5/112.71MB70.5%ABC [26]5/513.80MB68.4%ALQ2.00/26.37MB71.0%TBN [41]*1/24.78MB58.2%LQ [43]*1/24.78MB66.6%ALQ1.00/23.29MB67.4%79950此外,我们还与AQ[18]进行了比较,它是最先进的自适应定点量化器。它根据参数的敏感性为每个参数分配不同的比特宽度,并且还实现了对0-bit参数的修剪。我们的ALQ不仅消耗更少的存储空间,而且比AQ[18]获得更高的准确性。此外,AQ中的非标准量化比特宽度由于其不规则性而无法在通用硬件上高效运行[18],而ALQ则不同。05.4.3 ILSVRC12上的MBNs0
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功