TQT
本文为Xilinx的量化工做,发表在 MLSys 2020,论文题目:Trained Quantization Thresholds for Accurate and Efficient Fixed-Point Inference of Deep Neural Networks. 本文提出了一种基于标准反向传播和梯度降低的均匀对称量化器量化阈值训练方法,为了便于硬件部署量化器被限制为使用2的幂比例因子。TQT可以在困难网络(如MobileNets)上实现接近浮点精度,而量化(8位)retrain 时间少于5个 epochs。node
论文连接:https://arxiv.org/abs/1903.08066v3 量化工具 Graffitist:https://github.com/Xilinx/graffitist
背景与动机
量化的自由度
Asymmetric & Symmetric
-
Asymmetric: -
Symmetric:
Per-Channel & Per-Tensor
-
Per-Channel 指同一层网络中不一样卷积核有不一样的缩放因子。 -
Per-Tensor 指同一层网络中不一样卷积核共享同一个缩放因子。
Real-valued scaling & Power-of-2 scaling
-
Real-valued scaling 表示量化缩放因子为实数值 -
Power-of-2 scaling 表示量化缩放因子为2的次幂形式(硬件实现可移位完成)
结合量化方法和对硬件部署的友好程度,本文总结量化方法与特色以下图所示:可见,
Asymmetric & Per-Channel & Real-valued scaling
方法对量化的表达最为灵活,不管是简单网络仍是难网络均能保证良好的量化精度偏差,可是硬件部署不友好;反之,针对Symmetric & Per-Tensor & Power-of-2 scaling
方法对量化表达不够灵活,简单网络实施量化较灵活,可是,针对如MobileNet类型的紧凑型网络结构量化后的损失严重。可是,对硬件的部署十分友好。git
MobileNet难量化的缘由

经过上图对 MobileNet 权重数据范围的可视化,咱们发现,对于 depth-wise 卷积层,参数的分布范围很是不对称;这致使了均匀量化过程会产生严重的量化误差。github
方法
TQT——前向量化

TQT——反向传播

梯度的解释


阈值梯度的做用
从下图中 与 的曲线图中能够看出,在限幅阈值 内,阈值梯度为正,不然为负。当大部分输入分布落在 范围内时,累积阈值梯度为正,致使 减少()。换句话说,极限值 向内拉,以得到更高的精度。相似地,当大多数输入分布落在 以外时,累积阈值梯度为负, 增大,极限值 向外推,有利于更大的动态范围。该技术经过基于梯度的优化实现了对精度的权衡,对具备长尾或离群值的分布具备自然的鲁棒性(收敛时,正梯度和负梯度抵消)。web

输入梯度的做用
使用相似于阈值梯度的分析,咱们看到输入梯度 对于落在 以外的 值是非零的,偏向于防止它们被截断。这会导致权重和激活的分布更紧密。微信
总之,阈值梯度有助于训练截断权值和激活的最优阈值,而输入梯度则将权值和激活推到更严格的边界。本文采用在全局损失中联合(相互)优化,经过反向传播同时训练截断阈值和量化网络的权重。网络
实验结果


本文分享自微信公众号 - AI异构(gh_ed66a0ffe20a)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。编辑器