Incremental Network Quantization: Towards Lossless CNNs with Low-precision Weights论文

英特尔中国研究院

现有的量化压缩方法有两点不足:1.量化过程中的精度损失仍然不可忽视;2.大多数量化压缩方法只适用于处理特定的模型结构和特定类型的层,一定程度限制了泛化能力和量化压缩的性能(这里指的是很多方法对fc层的压缩比较有效,最终得到的比较大的压缩率很大一部分贡献是fc);另外还有重训练时间长等问题;

INQ (Incremental network quantization)。該方法可以將全精度 CNN 轉化為低精度網路,在不損失甚至提高精度的情況下,使得權重均為 0 或 2 的冪次(在 FPGA 等嵌入式裝置上可以進行移位操作)。

提出了渐进式神经网络量化的思想,引入了三种操作:参数分组,量化,重训练
在这里插入图片描述
首先利用一定準則(後面會提到,隨機的或者基於剪枝的)將每一層的權重分成互補的兩部分(圖 1 (b)),其中一部分直接量化為低精度(圖 1 (b) 綠色),另一部分用於重訓練(圖 1 (b) 藍色)以彌補量化帶來的精度損失。

量化

量化的目的是给定一个训练好的全精度的CNN网络模型,将全部的weights从32位浮点数转为2的整数次幂或者0,而不损失精度。

量化后W的每个值是和Pl中的值对应的,也就是2的整数次幂或0
第L层全精度权重在这里插入图片描述,量化为在这里插入图片描述,属于在这里插入图片描述
其中 n_1 和 n_2 是兩個整數,並且 n_2 <= n_1,設位寬為 b,則 n_2 可以由 n_1 和 b 來確定

在这里插入图片描述
絕對值小於2n_2 的權重均被量化為 0

量化规则

在这里插入图片描述
其中 alpha 和 beta 是 P_l 中相鄰的兩個元素

权重分组

在这里插入图片描述
其中,A_l^(1) 為需要量化的部分,A_l^(2) 為需要重訓練的部分。
這裡分組的依據參考文獻“Dynamic network surgery for efficient dnns”,從中挑選了兩種方法:隨機分組和剪枝分組(pruning-inspired partition)。
隨機分組,顧名思義,就是隨機的進行劃分。等概率
剪枝分組,通過比較權重的絕對值,逐层确定每层自己的thresholds,即給定的分割率(splitting ratio)進行劃分。實驗發現,剪枝分組效果好於隨機分組,故本文中均採用剪枝分組。
在这里插入图片描述

另外,構造一個二值矩陣 T_l作为索引flag,指示划分后的元素是A1还是A2里面的元素
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
值大的那组做量化

重训练

以第 l 層為例,優化函式為
在这里插入图片描述
转化为
在这里插入图片描述
在这里插入图片描述
其中,Pl是由前面的分组量化所确定的取值;Tl是一个mask,他代表了每一步weights的分组:T=0表示是已经quant的部分,T=1表示需要retrain的部分;
在retrain时只更新retrain部分(T=1)对应的部分也就是还保持32位的weights。(和韩松只更新没有被remove的连接的思想类似)

扫描二维码关注公众号,回复: 10450643 查看本文章

算法流程

在这里插入图片描述
梳理:
n应该是l
1.输入是training data,pre-trained model,每层的threshold;
2.输出每层的量化结果
3.根据sigma逐层确定weights的分组,更新分组A1,A2,Tl;
4.在A1上逐层确定每一层自己的Pl集合;
5.逐层量化;
6.计算loss,更新A2部分的参数;

INQ渐进式网络量化示例:第一行:依次为参数分组、量化、重训练;第二行:迭代过程
(绿色区域表示当前已经被量化的网络参数,浅紫区域表示需要重新训练的网络参数)
在这里插入图片描述
vector quantization (Gong et al., 2014)、韩松方法最后的weights还是浮点数,但是INQ得到的是二进制化的参数,可以用简单的二进制移位运算代替原来的浮点数乘法运算,简化硬件计算

REF
https://blog.csdn.net/cookie_234/article/details/75386737
https://www.itread01.com/content/1544467885.html
https://www.itread01.com/content/1546293635.html

发布了452 篇原创文章 · 获赞 271 · 访问量 73万+

猜你喜欢

转载自blog.csdn.net/qq_35608277/article/details/104891277