当前位置:网站首页>华南理工 | 基于生成式的低比特无数据量化

华南理工 | 基于生成式的低比特无数据量化

2021-08-08 15:40:45 作者:Juli

论文题目:Generative Low-bitwidth Data Free Quantization

论文来源:ECCV2020

论文作者:Shoukai Xu , Haokun Li

作者单位:华南理工&鹏城实验室&莫纳什大学

下载链接:https://arxiv.org/abs/2003.03603

代码地址:https://github.com/xushoukai/GDFQ

 

【推荐理由】

针对无数据量化问题,本文从预训练全精度模型中挖掘分类边界知识和数据分布信息,用来训练一个生成器以生成能有效微调量化模型的伪数据,在训练生成器时引入BN层统计量对数据分布进行约束,是生成数据更加符合真实分布;再使用生成的伪数据监督量化模型进行微调,该算法性能表现优越。

【主要内容】

问题定义:针对无数据问题,构造伪数据,对于量化模型Q,得到如下优化目标

最近,一种无数据量化方法ZeroQ利用带有梯度更新信息的线性算子构造伪数据,在其帮助下提高量化性能。但是ZeroQ用来提高量化的性能的信息并不充分,存在以下两个问题:首先,它在构造假数据时没有考虑标签信息,从而忽略了从预训练模型中包含的分类边界知识。其次,它对单个数据点进行批归一化统计,而不是对整个数据进行归一化统计,导致伪数据的分布远离真实的数据分布。

为了解决这些问题,本文设计了知识匹配生成器。

知识匹配生成器

预训练的DNN包含训练数据的一些知识信息,如分类边界信息和分布信息。

分类边界信息匹配:

为了生成假数据,我们引入一个噪声向量z以及控制条件标签y,噪声z服从N(0,1)的高斯分布,标签。生成器将先验输入噪声向量z和给定标签y映射生成伪数据全精度模型应当能够分辨具有相同标签的伪数据。因此我们引入如下交叉熵损失

数据分布信息匹配:

此外,预训练模型中的BN层包含训练数据的分布信息。在全精度模型训练时会动态计算批归一化统计量(BNS),即均值和方差。对于每个批次,批次归一化(BN)层仅计算当前批次输入的统计信息,并以动量累积它们。最后,将获得指数移动平均(EMA)批次归一化统计数据,然后将其用于网络验证和测试过程中。

为了保留BNS信息,生成分布的均值和方差应与真实数据分布的均值和方差相同。为此,我们使用BNS信息训练了一个生成器G:是伪数据的均值和方差。

伪数据驱动的低比特量化

借助生成器,无数据量化问题可以转变为监督量化问题。因此,我们能够使用生成的数据来量化模型。但是一把很难将知识从预训练模型转移到量化的模型上,本文提出一种伪数据驱动的量化方法,并利用来自预训练模型的知识来解决优化问题。

量化:我们使用一种简单而有效的量化方法,对权值和激活值进行量化。对于给定的全精度权值θ和量化精度k,在对称k位范围内将θ量化为的

其中θ'是线性量化映射的离散值,即,L和u可分别设为浮点权重θ的最小值和最大值。

优化:我们的目标是通过微调训练量化模型使其近似全精度模型。一个经过微调的量化模型Q应该正确地对假数据进行分类。为此,我们使用交叉熵损失函数CE(·,·)来更新Q:

其次,由于数据是合成的,传统的基于普通分类损失函数不足以微调好模型。因此,我们采用知识蒸馏的方法来恢复量化模型的性能,因此量化模型可以通过损失函数KL(·,·)进行微调

通过BNS统计量微调:为了稳定微调过程,我们借助固定的BNS,量化模型始终保持真实数据的分布信息,以提高量化性能。

版权声明
本文为[作者:Juli]所创,转载请带上原文链接,感谢
https://hub.baai.ac.cn/view/9139

随机推荐