论文总结:Incremental Network Quantization

论文地址:https://arxiv.org/pdf/1702.03044.pdf

主要内容

作者提出了一种新的神经网络量化方法——INQ,可以将训练好的全精度的CNN模型转换为权重为2的幂次方或0的低精度模型。INQ引入了三个操作:权重划分、分组量化和再训练。大致步骤为通过某种策略(随机划分或剪枝启发)将权重分为不相交的两组,先将第一组量化作为低精度模型的基,而第二组用于补偿量化带来的精度损失,所以要通过再训练,一直重复上述步骤直至全部量化。最后通过几组实验验证了该算法的有效性。

三个操作

CNN的量化存在两个关键问题:一是量化会带来一定的精度损失,二是为保证收敛需要增加迭代次数。
基于这两个问题,作者采用了包含权重划分,分组量化和再训练的INQ方法。
1. 权重划分
权重划分一般有随机划分和剪枝启发(pruning-inspired)两种策略,作者基于实验结果,选择了准确率更高的剪枝启发。
在这里插入图片描述
随机划分即随机将权重分为不相交的两组;而剪枝启发则是通过将权重的绝对值与分层阈值比较划分为两组(分层阈值则是由给定的分割比确定),该策略认为绝对值大的权重更重要,即将绝对值大的一组作为低精度模型的基。

2. 分组量化
全精度的CNN模型最终需要量化为权重为2的幂次方或0的低精度的模型,即量化后的权重 W ^ l \widehat W_l W l中的每个数都对应于 P l P_l Pl
在这里插入图片描述
其中, n 2 ≤ n 1 n_2 \leq n_1 n2n1,且均为整数。 n 1 n_1 n1的取值如下:
在这里插入图片描述在这里插入图片描述
由于位宽 b b b是给定的,所以由 n 1 n_1 n1 b b b就能确定 n 2 n_2 n2 n 2 = n 1 + 1 − 2 b − 1 2 n_2=n_1+1-\frac{2^{b-1}}{2} n2=n1+122b1

最终的权重由下式确定:
在这里插入图片描述
其中, α \alpha α β \beta β P l P_l Pl中的相邻元素。
3. 再训练
两组权重其中一组先量化作为低精度模型的基,另一组则需要通过训练再分组量化,直至权重全部量化完成。需要注意的是,已量化的组在训练过程保持不变。
在这里插入图片描述
如上图所示,(1)先进行权重划分为量化组和训练组,黑色部分为量化组;(2)然后分组量化,将量化组量化;(3)接着训练组进行再训练;(4)重复权重划分、量化;(5)继续迭代;(6)量化完成。

INQ算法

将优化问题表示如下:
在这里插入图片描述
其中, T l ( i , j ) = 0 T_l(i,j)=0 Tl(i,j)=0表示权重属于量化组, T l ( i , j ) = 1 T_l(i,j)=1 Tl(i,j)=1表示权重属于训练组。
参数更新公式:
在这里插入图片描述
具体算法如下:
在这里插入图片描述

实验

  1. 在ImageNet上的实验结果如下:
    在这里插入图片描述
    显然,对于常用的AlexNet等网络,INQ量化损失的精度可以忽略不记,甚至比未量化的准确率略高。
  2. 量化为不同位宽:
    在这里插入图片描述
    量化的位宽越低,准确率会小幅降低。
  3. 基于ResNet与其他二元、三元模型比较:
    在这里插入图片描述
    由实验结果可知INQ算法准确率更高。

总结

INQ量化方法最大贡献在于能够在很大程度上减少量化带来的精度损失,对于其他量化方法有一定的优势。不过具体效果还是要亲自实验才能知道,在此不加赘述。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值