Incremental-Network-Quantization增量网络量化论文详解

笔者将从以下几个方面分析该论文的原理及其实现,由于笔者能力有限,如有错误望诸公指正。
论文作者代码:https://github.com/AojunZhou/Incremental-Network-Quantization

1. 基本概念

2. 权重分组

3. 权重量化

4. 再训练

5. Imagenet上错误率比较

6. INQ的其他比较

7.总结

1.基本概念

该论文总体上要实现的功能主要是:将训练好的全精度卷积神经网络参数模型通过量化权值为2或0的幂次,将其转换为低精度模型。用以解决网络权重量化精度损失严重的问题和网络模型在硬件上实现的复杂度过大的问题。

大致步骤如下所述:首先对网络进行训练得到初始化的权值参数模型,按照预先设定的分割率和权值的绝对值大小确定一个阈值,以此阈值将权值分为两组。一组进行量化,另一组保持权值不变。其中量化的一组需要在选取量化位宽后,再通过比较原始权值与量化权值的差值将其量化为2的幂次方或0;另一组进行再训练,更新原始的权值参数。将为量化的一组再次根据分割率和阈值进行分组,重复上述步骤,直到所有权值均被量化。

下面将对每一步骤进行细化分析。

2.权重分组

首先是将训练好的网络模型参数进行分组,一组进行量化,另一组准备继续进行再训练。论文给出了两种分组方法,分别是:
1.随机分区:随机的把权值分为两个不重叠的部分。
2.基于Pruning-inspired的策略:对于绝对值大的权重先进行量化,即把绝对值大的权重先挑一半处理。

通过比较看出第二种分组方法的准确率要高于第一种,因此选择第二种方法进行训练。

3.权重量化

权重量化即将原始的权值模型量化成为逾期差值最小的2的幂次方或0,笔者简单画了示意图表示如下:

蓝色标记为原始权值,红色标记为将要量化成的2的幂次方或0。
对于权重量化范围的n1、n2的选择依据如下:

其中s为权值的绝对值的最大值,由此来确定量化的位宽上限n1,b为自行设定的需要量化的位宽,根据b和n1得位宽下限n2,从而量化后的权值取值范围为Pl集合。

4.再训练

将之前一组量化过的权值固定不变(在之后的训练过程中也不再改变),将整个参数模型放回原网络模型中再次进行训练,更新另一组未量化的权值参数。

如图中所示黑色部分为根据第二组分组方法分组出的需量化的权值绝对值较大的部分,量化之后为绿色方框所示,灰色的则是经过再训练的权值参数,周而复始,不断地分组、量化、再训练,知道所有的权值均被量化。

5.Imagenet上错误率的比较


可以看到对于Alexnet、VGG-16等常用的网络模型上,该量化方法将32位全精度模型量化为5bit后准确率损失并不算大,甚至说是可以接受的。

6.INQ不同量化位宽的比较


以ResNet-18网络为例,可以看到随着量化位宽越小,准确会出现小幅下降。

7.总结

该论文最大的贡献在于一定程度上解决了量化过后网络模型精度下降过大的问题,以及其将权重量化为2的幂次方后使得网络模型在硬件上的实习更加便利。
笔者顺着论文的思路在caffe上使用ImageNet2012数据集对Alexnet和VGG-16等网络模型进行了训练并量化,基本实现了论文所述的内容,但是在Alexnet上的量化后的准确率和该论文所述的准确率仍相差2%~3%左右,至今仍在寻找原因,希望能与各位读者交流讨论,一同解决问题。

Incremental-Network-Quantization增量网络量化论文详解相关推荐

  1. 7.Deep Interest Network for Click-Through Rate Prediction论文详解

    一.总述 这是2018年阿里Guorui Zhou等人发表在KDD上的一篇论文.论文提出在CTR任务中,丰富的用户历史行为数据包含了用户多种兴趣,对于不同的候选广告,起作用的用户历史行为数据表示应该不 ...

  2. 8.Deep Interest Evolution Network for Click-Through Rate Prediction论文详解

    一.背景总述 2017年6月阿里妈妈的精准定向检索及基础算法团队放出了论文Deep Interest Network(DIN),用于解决电子商务的CTR预估,再次基础上,最近又放出了改进版本Deep ...

  3. (摘要)ICLR 2017 神经网络压缩,Incremental Network Quantization: Towards Lossless CNNs with Low-Precision Weig

    目录 目录 原文 摘要 原文 原文:https://arxiv.org/abs/1702.03044 代码:https://github.com/Zhouaojun/Incremental-Netwo ...

  4. 图注意力网络GAT - 《Graph Attention Networks》论文详解

    目录 前言 正文 图注意力机制层(Graph Attentional Layer) 层的输入 注意力系数 归一化注意力系数 通过邻居节点更新自身节点 层的输出 GAT相比于先前研究的优势 附作者简介 ...

  5. ShuffleNetv2论文详解

    ShuffleNet v2 论文详解 近期在研究轻量级 backbone 网络,我们所熟悉和工业界能部署的网络有 MobileNet V2.ShuffleNet V2.RepVGG 等,本篇博客是对 ...

  6. KernelGAN论文详解分享

    KernelGAN- Blind Super-Resolution Kernel Estimation using an Internal-GAN论文详解 论文地址:https://arxiv.org ...

  7. Spark RDD 论文详解(三)Spark 编程接口

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  8. GeniePath:Graph Neural Networks with Adaptive Receptive Paths 论文详解 AAAI2019

    文章目录 1 相关介绍 1.1 感受野的定义 贡献 2 图卷积网络GCN GCN.GraphSAGE.GAT Discussions 3 GeniePath 3.1 Permutation Invar ...

  9. Spark RDD 论文详解(七)讨论

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

最新文章

  1. 6、UmbracoNewsSite:添加新闻分类
  2. 用户计算机通过连入局域网上网时,重庆市职称计算机考试理论题库05
  3. 区分中英文字符的两种方法: 正则和charCodeAt()方法
  4. python笔试常见题
  5. [Swift]LeetCode1153. 字符串转化 | String Transforms Into Another String
  6. Android系统(50)----Android窗口机制
  7. NLP之路-查看获取文本语料库
  8. Pycharm中更改镜像源
  9. VMware下安装win7教程
  10. CV识别图片背景主要颜色
  11. 头像/证件照抠图与圣诞背景替换
  12. java 阳历日期时间获取年月日时干支
  13. html鼠标移动到图片上显示冒泡框,Bootstrap 教程 - 提示冒泡(Tooltip)
  14. 二元加权电容器阵列的构造性共质心布局与布线
  15. ACO蚁群算法(附MATLAB源码)
  16. 小程序之 一个方法中的值怎么传递到另一个方法中
  17. C/C++ 内使用贝塞尔函数
  18. 单、双精度浮点型转换为十六进制方法
  19. 【Hard to Park】Estimating Parking Difficulty at Scale
  20. 熊市定投,牛市才有收获

热门文章

  1. 基于tornado实现web camera
  2. 我的微信群里有一个外国人
  3. 个人客户网上银行开户
  4. 华为手表升级鸿蒙名单,华为鸿蒙升级名单流出,首批支持8款机型,但不见荣耀手机?...
  5. 小学生都能学会的Python基础语法——代码规范判断语句循环语句
  6. 76运输机观测到白色漂浮物
  7. spring boot +mybatis plus +html 最佳实践项目
  8. jenkins+git+maven+docker持续集成部署
  9. 软件危机(含通俗理解帮助记忆)
  10. 我的世界神秘时代安卓java版_我的世界神秘时代MOD