论文题目:Zero-shot Adversarial Quantization

论文来源:CVPR2021 oral

论文作者:Yuang Liu , Wei Zhang, Jun Wang

作者单位:华东师范大学

下载链接:https://arxiv.org/pdf/2103.15263.pdf

代码地址:https://github.com/FLHonker/ZAQ-code

[推荐理由]

为了在无法获得原始数据情况下实现模型量化,现有方法采用训练量化或BN层统计量引导生成的合成样本对网络进行微调,但两者存在性能低下的问题,本文提出了一个零样本对抗量化(ZAQ)框架,以对抗学习的方式优化量化模型,引入新的特征图信息监督提高生成样本质量,促进了从全精度模型到其量化模型的知识迁移,算法性能SOTA

[主要内容]

如图所示,该框架只要包括两部分,第一部分是训练生成器生成匹配原始训练数据的样本;第二部分是利用合成样本引导量化模型进行fine-tune;两个部分交替进行,利用对抗式方法优化模型。

该框架的优化函数由输出损失 Do 和中间通道内特征图损失 Df 组成;此外针对生成器,增加了激活正则化 La 鼓励G生成更具信息丰富性和多样性的样本。

构建优化目标:

一般使用用KL散度衡量模型差异,但在训练生成器G时,KL散度不足以使差异最大化。这是因为一些样本的

预测结果可能是相似的,使得负的KLD太小而无法优化。因此我们采用 L1 损失来更直接地测量输出损失:

测量中间层差异的传统方法依赖于P(全精度模型)和Q(量化模型)的相关特征图,受利用中间特征图提高知识蒸馏性能的想法的启发,我们考虑不同通道之间特征图的相似关系,利用CRM捕获同一个模型的同一层中不同通道之间的关系。它既能消除不同数值跨度的特征图的影响,又能代表样本的高维特征。定义中间层内部差异为:.

L是层数,R表示提取出的通道关系图,表示该层的自适应权重,C是该层的通道数。

式中 EMA为指数移动平均,T为每个epoch的训练步长,L为ZAQ所利用的层数。通过这种方式,将更多的注意力放在在中有较大差异的模型层上。此外,为了避免在长期训练中打破平衡,需要在新的epoch开始时重新以1/L初始化。

对抗知识迁移

误差估计阶段(训练生成器)

知识迁移阶段(训练学生)

激活正则化

虽然L1损失函数可以缓解模型在误差估计中陷入一些异常样本点的情况,但这些异常样本点始终存在,干扰了发生器对原始输入样本域的探索,因此我们进一步利用激活正则化来约束生成器来探索和合成有价值的样本。表示网络P的最后一层卷积层提取的第i个通道激活图。那么激活正则化可以表示为:。根据直觉,高激活值意味着给定的输入示例和训练数据之间更好的匹配,因此训练生成器的损失表示为

 

 

内容中包含的图片若涉及版权问题,请及时与我们联系删除