申请试用
登录
核心技术
以原创技术体系为根基,SenseCore商汤AI大装置为核心基座,布局多领域、多方向前沿研究,
快速打通AI在各个垂直场景中的应用,向行业赋能。

CVPR 2021 Oral | “无招胜有招”?北航、耶鲁、商汤提出用于无数据量化的多样化样本生成

2021-08-10

近年来,量化被视为一种高效实用的神经网络压缩加速方法,无数据量化方法也开始被应用于数据隐私场景。本文将介绍 CVPR 2021 oral 关于无数据量化的最新工作,一种多样性的数据生成方法 DSG。


相比现有的 SOTA 方法,DSG 对极低比特量化的性能改善明显,部分场景下可以媲美甚至超越使用真实数据的效果。这项研究由北京航空航天大学刘祥龙教授团队、耶鲁大学、商汤研究院工具链团队共同完成。


论文名称:Diversifying Sample Generation for Accurate Data-Free Quantization


图片 1.png


Part 1 背景与概述


近年来,量化已经成为了一种获取高效神经网络的有效方法。离线量化不需要重新训练或者微调,作为一种实用而有前景的方案得到了广泛研究。然而,这种方法仍然需要真实的训练数据去校准量化后的模型。有时这些真实数据例如医疗或用户数据因为隐私或者安全问题难以获得。近期的很多工作提出了无数据的量化方法。


一些工作(如 ZeroQ)用全精度模型的 BN 统计量来生成最拟合BN统计量的合成数据,解决了对数据的依赖问题。然而,这些方法生成的数据存在两个明显的同质化问题。


首先是数据分布上的同质化现象:由于合成数据是去匹配批标准化(BN)统计量参数,每层的特征分布容易过拟合,而真实的数据通常具有更加多样的分布(见图1(a))。


其次是样本层面上的同质化现象:合成数据的所有样本都是通过同样的目标函数被优化的,即直接将网络每层的损失累加来优化所有样本。这样的话,样本的特征分布统计量会趋于中心化但真实数据往往是分散的(见图1(b))。


这两个同质化问题导致生成数据的分布与真实数据有很大差异,从而导致了量化模型精度的下降。


图片 1.png

 图1.生成数据的两种同质化问题


我们提出了一种多样化的样本生成方式(DSG)来解决上述两个同质化问题,采用松弛对齐分布(SDA)来松弛对 BN 层参数的约束,采用层级样本增强(LSE)来加强特定的生成样本对特定层的约束。DSG 方法适用于各种离线量化方法,并且可以获得接近用真实数据校准的模型的性能,甚至在4bit 上超过了真实数据。


图片 1.png

图2.多样化样本生成(DSG)方法


Part 2 方法


Slack Distribution Alignment


我们提出了一种松弛对齐批标准化的数据分布的方法(SDA)。我们分别为激活的均值和标准差统计引入松弛量,以带来丰富的分布变化。具体来说,将松弛常数添加到原始的批标准化统计量损失函数中,以解决分布同质化问题。第i个批标准化层的损失项变为如下形式:

image.png

松弛量image.pngimage.png允许合成数据的统计量与批标准化层的统计参数之间存在差距。 在特定范围内,合成数据的统计量会在宽松的约束下波动。因此,合成数据的特征分布变得更加多样化。


一个重大的挑战是在不使用真实数据的条件下确定松弛量image.pngimage.png的值。真实数据的特征统计量与批标准化统计量参数之间的差距可以作为合理的参考。由于无法获取真实数据,根据中心极限定理,我们可以使用高斯假设作为一个通用的近似值。因此,我们使用从高斯分布中随机采样的合成数据来确定image.pngimage.png


首先,我们从 μ=0,σ=1 的高斯分布中采样1024个合成样本。然后将合成样本输入模型,并保存所有特征统计信息,即均值和标准差。


然后计算保存的统计数据与相应的批标准化层的参数之间的差。采用差的绝对值的分位点作为image.pngimage.pngimage.pngimage.png的定义如下:

image.png

其中,image.png和 image.png是高斯分布中采样的合成样本image.png在第i个批标准化层的激活值的均值和标准差。image.pngimage.png分别表示image.pngimage.pngimage.png百分位点。image.png这个在0与1之间的数决定了和的取值,即决定了合成数据统计量对齐批标准化统计量参数的松弛程度,当该值较大时,对合成数据的约束更加松散。


其中, 和  是高斯分布中采样的合成样本在第i个批标准化层的激活值的均值和标准差。和分别表示和的百分位点。这个在0与1之间的数决定了和的取值,即决定了合成数据统计量对齐批标准化统计量参数的松弛程度,当该值较大时,对合成数据的约束更加松散。


Layerwise Sample Enhancement


为解决样本之间的同质化问题,我们提出了一种层级样本增强的方法(LSE)。

我们分别设计一个 batch 中每个合成图像的损失函数,从而增强每个样本对于特定层的损失。具体地说,对于具有 N 个批标准化层的网络,我们可以提供 N 个不同的损失项,并将它们中的每一个应用于特定数据样本。


假设每次生成 N 个图像,即批大小设置为 N,和模型中的批标准化层的个数相同。我们定义image.png= (image.png)作为增强矩阵,其中I是一个 N 维单位矩阵,1是 N 维全1列向量,L 是包含每层损失项的向量。那么该批次的损失函数定义为:

image.png

其中image.pngL 是 N 维列向量,其第 i 个元素表示该批次中第 i 个图像的损失函数。因此,该批次的每个样本被施加了唯一的损失项,对特定层的损失项进行了增强。对于具有 N 个批标准化层的网络,该方法可以同时批量生成各种样本,每种样本在特定层上进行增强。我们可以将 L 替换为image.png,从而将 SDA 方法与 LSE 方法结合。


如图3所示,通过上述两个方法,我们解决了生成样本的同质化问题,并增强了多样性。

图片 1.png

3.真实样本和生成样本的激活值统计量分布


Part 3 实验


为了验证该多样化样本生成方法在不同网络架构,数据集和不同量化位宽上的效果,我们在 ImageNet 数据集上使用各种模型与离线量化方案进行了实验。


表1中结果表明,在 ResNet-18 和 ResNet-50 上,DSG 在各种比特设置下优于 ZeroQ,尤其是在较低比特下。在某些设置下,甚至取得了超过真实数据的结果。


image.png

表1.在ResNet-18(a)和ResNet-50(b)上的对比实验


表2结果表明,采用各种离线校准方法时,DSG 相比 ZeroQ 有一致的性能提升。


image.png

表2.ResNet-18上采用不同离线校准方法的实验


为了进一步验证 DSG 的有效性,我们验证了使用最先进的离线量化方法(AdaRound)时的性能,如表3所示。实验中,我们也使用了 Label 以及 Image Prior 方法。结果表明,DSG 依然带来了性能上的提升。


image.png

表3.在ResNet-18上使用AdaRound的实验


Part 4 总结


本文展示了一种新颖的用于精确无数据量化的样本生成方法 DSG,该方案针对合成样本在分布和样本层面上的的同质化问题进行了剖析,提出了松弛对齐批标准化层分布 SDA 和层级样本增强 LSE 两个方法,共同增强了生成数据的多样性。


事实表明,DSG 在各种网络训练架构和各种离线量化方法中表现出色,尤其在超低位宽条件下,效果大大优于现有技术。我们的工作揭示了现有无数据量化方法中普遍存在的问题,希望能为未来的研究带来启发。


Part 5 作者介绍


论文共同第一作者张祥国,北京航空航天大学硕士二年级,主要研究方向为模型量化压缩与加速、硬件友好的深度学习,以第一作者发表计算机视觉顶级会议(CVPR)一篇。 论文共同第一作者秦浩桐,北京航空航天大学博士二年级,主要研究方向为模型量化压缩与加速、硬件友好的深度学习。以第一作者发表顶级会议、期刊(ICLR,CVPR,PR)共4篇。个人主页:https://htqin.github.io/


团队信息

北航刘祥龙教授团队近年来围绕模型低比特量化、二值量化、量化训练等方向做出了一系列具有创新性和实用性的研究成果,包括国际首个二值化点云模型 BiPointNet、可微分软量化 DSQ、量化训练、信息保留二值网络 IR-Net 等,研究论文发表在 ICLR、CVPR、ICCV 等国际顶级会议和期刊上。主页:http://sites.nlsde.buaa.edu.cn/~xlliu/


论文链接

https://arxiv.org/abs/2103.01049