Up or Down? Adaptive Rounding for Post-Training Quantization(记录)
adaround就是优化量化取整的操作,正常量化公式如下:
那么,[],到底是四舍五入还是取最近还是随机是个值得思考的问题。
首先,提高量化效果就是优化下面这项:
作者利用泰勒展开,展开为一阶项和二阶项,其中因为是PTQ量化,模型已训练收敛,故第一项可以忽略。那么优化公式改为
根据这个公式作者举了个例子来证明不同的取整方式对于精度的影响;
假设一个layer只有两个权重w1和w2,同时假设海森矩阵如图
故上面的公式可以化简为:
根据这个公式,如果我们取最近,那么第一项和第二项确实会小,但是第三项不确定,并且第三项是影响精度的,我们不能放任不管。同时对于n个weight值,并不是单独的每个weight的量化损失越少则整体损失就越小,weight之间的是存在相互的影响的,并且最终影响量化损失。
然后作者做了个小实验进行验证
可以看到随机还是有可能会高的。
然后,那么如果优化这个取整呢?
首先作者做了如下三种假设
- scale值是一个固定值。
- 对于一个weight,其round方法只可能是floor round和ceil round二者中之一。
- 只考虑同layer内weight之间的相互影响,忽略了layer和layer之间weight的关系。
但是直接优化上面那个公式会存在一下两个问题
1.weight的海森矩阵非常巨大,求解很困难。
2. 求解也是一个NP-hard问题,无法直接求解。
什么是np-hard问题
然后就到了重要的部分(一堆推导和假设)
作者首先假设一个模型最后输出层l是一个只有两个weight的全连接,对weight计算二阶偏导即为:
这里z(l)表示当前层的输入也就上一层w和x的乘,所以我们可以计算得出第l层权重的海森矩阵即为:
可以看出计算第L层weight的海森矩阵,需要借助第L-1层的二阶导信息,也就是这个原因导致直接计算每一层的海森矩阵是极其困难的,于是作者引入了一个假设:关于L-1层(也就是z(L))的海森矩阵是一个对角矩阵也就是L-1层的weights之间的相互关联对第L层weights的海森矩阵求导是不相关的。
然后,作者引入了第二个假设:
可以推导出
也就是说,作者假设在对第L层计算量化损失时,认为第L-1层对L层的量化损失影响是一个不依赖于校准数据集输入的常量,所以在公式(18)中可以直接省略。(在论文的实验中证明了该假设对最终结果的影响)。
于是通过多个假设,我们要求解的公式简化成了公式(20)。观察公式(20),可以发现此时待求解公式变成了一个每个layer独立的、不依赖于其它layer和task loss的求解公式。问题变成了找到可以使∆WX的MSE loss值最小的∆W。(转载)
而为了求解∆W,引出本文核心四个公式
乍一看很复杂,其实非常好理解,我理解的就是在量化的[ ] 后加一个可训练的参数并且被限制在0-1,也就是相当于到底是up还是down,模型自己学,也就是h(v),这里引入了一个叫rectified sigmoid的东西,据说是可以解决传统的sigmoid梯度消失的问题。然后就很好理解了,练就完事,具体可以参考一篇知乎的讲解,侵删
同时,因为这里的量化是逐层计算的,并且不考虑其他层的影响,那么就会带来一个问题无法避免量化误差的不断累积也没有考虑到激活函数,所以最终公式如下:
如有错误,欢迎批评指正!
Up or Down? Adaptive Rounding for Post-Training Quantization(记录)相关推荐
- 模型量化论文阅读#3----Up or Down? Adaptive Rounding for Post-Training Quantization
前言 在量化中,常用的量化函数一般的四舍五入函数,即在量化时以0.5为阈值,当超过0.5时,结果为1:不超过0.5时,结果为0.这就是所谓的四舍五入函数.很多时候,直接进行四舍五入量化,结果往往不是最 ...
- Up or Down? Adaptive Rounding for Post-Training Quantization个人理解
Up or Down? Adaptive Rounding for Post-Training Quantization个人理解 亮点 核心公式 推导 核心推导 实验结果 亮点 提出一个新的无需重训练 ...
- Fast Adaptive Similarity Search through Variance-Aware Quantization (ICDE 2022)
随着高维数据的爆炸性增长,最近邻搜索中出现了很有前途的近似方法.其中,量化方法因其快速的查询响应和较低的编码和存储成本而受到关注.量化方法将数据维度分解为不重叠的子空间,并对每个子空间使用不同的字典进 ...
- QDROP: RANDOMLY DROPPING QUANTIZATION FOR EXTREMELY LOW-BIT POST-TRAINING QUANTIZATION
QDROP:用于极低比特训练后量化的随机丢弃量化 Xiuying Wei 1, 2 ∗ , Ruihao Gong 1, 2 ∗ , Yuhang Li 2 , Xianglong Liu 1 , F ...
- 一文详解目标跟踪中的相关滤波
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文来源:AI干货知识库 / 导读 / 目标跟踪是计算机视觉领域的一个重要问题,目前广泛应用在体育赛事 ...
- MTCNN论文翻译 人脸检测
原理:参考 Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks 多任务级联卷积网络进 ...
- 单目标跟踪——个人笔记
单目标跟踪--个人笔记 以<Handcrafted and Deep Trackers: A Review of Recent ObjectTracking Approaches>为主线看 ...
- 论文阅读:CVPR2016 Paper list
原文地址:http://blog.csdn.net/xizero00/article/details/51386667 在过几天CVPR2016就要召开了,先放个list. ORAL SESSION ...
- CVPR 2016 摘要阅读
为了说明看过CVPR2016全部文章的摘要,总结一下,摘要只保留了创新点部分. ORAL SESSION Image Captioning and Question Answering Monday, ...
最新文章
- 10.LeetCode第九题--有效的数独--哈希表的经典应用
- mac命令行用sublime,vscode,atom打开目录或文件的方法
- 【TensorFlow】笔记4:图像识别与CNN
- Touch事件UIControlEvents详解
- JUNOS Olive GRE Tunnel Configuration
- 二分检索函数lower_bound()和upper_bound()
- linux ssh禁止用户访问任何目录,怎么限制远程ssh用户访问特定的文件
- vue 插值表达式,v-cloak,v-text,v-html,以及v-bind,v-on
- SSL的4阶段握手过程
- ASP.NET 页面双向静态化
- VoLTE SIP代码意义及流程图解
- 几点思考-人生哲学,生活方式---ShinePans
- 基于质谱的蛋白质鉴定,第3节:基于MALDI-MS肽指纹图谱的蛋白质质谱鉴定
- Elasticsearch 父子关系
- SPSS学习笔记【一】-检验相关性
- 焦距相关的基本概念及焦距对摄影效果的影响
- python r语言 作图_科学网—生物信息绘图之python绘图 - 孙朋川的博文
- 2023年西南交通大学马克思主义理论考研上岸前辈备考经验
- go-map数据类型详解
- yuv与rgb图像格式转换
热门文章
- 【医学+深度论文:F23】2018 symmetry Dense Fully Convolutional Segmentation of the Optic Disc and
- 《人在影途》----2010摄影之家年会贺岁片
- kettle 使用java版本_Kettle日常使用汇总整理
- PLS-00103: 出现符号 “BEGIN“在需要下列之一时: := . ( @ % ; not null range default character
- sql查询字段不等于某值,会忽略该字段为null的数据
- Android Studio实现飞机大战
- 推特色情机器人账号泛滥,马斯克的“治推谋略”何在?
- SpringCloud Gateway——请求转发源码分析
- 30岁程序员转行做管理:没经验焦虑不安怎么办?
- html页面禁止右键、禁止复制、禁止图片拖动、禁止复制和剪切禁止IOS长按复制粘贴实现