Data-Free Network Quantization With Adversarial Knowledge Distillation
1. Introduction
在本文中,我们提出了一个对抗性知识提炼框架,在无法获得原始训练数据的损失时,通过对抗性学习使最坏情况下的可能损失(最大损失)最小化。与[36]的关键区别在于,给定任何元数据,我们利用它们来约束对抗性学习框架中的发生器。为了避免额外的努力来制作新的元数据来分享,我们使用存储在批量规范化层中的统计数据来约束生成器,使其产生模仿原始训练数据的合成样本。此外,我们建议通过使用多个生成器来产生不同的合成样本。我们还通过经验表明,对多个学生同时进行对抗性KD会产生更好的结果。图1概述了拟议的无数据对抗性KD框架。
图1:无数据的对抗性知识提炼。我们最小化教师和学生输出之间的Kullback-Leibler(KL)分歧的最大值。在训练生成器产生对抗性图像的最大化步骤中,生成器被约束为通过匹配教师的批量归一化层的统计数据来产生与原始数据类似的合成图像。
对于模型压缩,我们在两种情况下进行了实验,(1)无数据KD和(2)无数据网络量化。与之前的工作[35, 36, 41]相比,所提出的方案在SVHN[39]、CIFAR-10、CIFAR-100[40]和Tiny-ImageNet1的残差网络[37]和wide residual networks[38]上表现出最先进的无数据KD性能。据我们所知,无数据网络量化(无数据量化感知训练)以前还没有被研究过。
我们使用TensorFlow的量化感知训练[24, 42]作为基线方案,我们评估了在各种数据集上训练的残差网络、宽残差网络和MobileNet的性能,此时量化感知训练是用我们的无数据KD框架产生的合成数据进行的。实验结果显示,与使用原始训练数据集的情况相比,拟议的无数据框架的性能损失不大。
2. Related work
Data-free KD and quantization. 无数据KD吸引了人们的兴趣,因为需要压缩预训练的模型,以便在资源有限的移动或边缘平台上部署,而由于隐私和许可问题,共享原始训练数据往往受到限制。
一些解决这个问题的早期尝试建议使用元数据,即从预训练的模型中收集的中间特征的统计数据。从一个预先训练好的模型中收集的元数据[33,34]。例如。例如,建议收集选定的中间层的激活输出的平均值和方差,并假定其为 提供,而不是原始数据集。鉴于任何 元数据,他们通过直接推断图像域中的样本,找到有助于训练学生网络的样本,这样 当它们产生类似于元数据的统计数据时 送给老师。
然而,最近的方法旨在解决这个问题,没有专门为无数据KD任务设计的元数据。在[43]中,类的相似性是从最后一个全连接层的权重计算出来的,它们被用来代替元数据。最近,有人提议使用存储在批量规范化层中的统计数据,而不需要额外的成本来制作新的元数据[41]。
另一方面,以前的一些方法引入了另一个网络,称为生成器,产生用于训练学生网络的合成样本[35, 36, 44]。他们优化生成器,使生成器的输出在送入预训练的教师时产生高精确度。引入对抗性学习是为了产生动态样本,对于这些样本,教师和学生的分类输出不匹配。在他们的分类输出中不匹配,并在这些对抗性样本上执行 对这些对抗性样本进行KD[36]。
就我们所知,关于无数据网络量化的工作很少。在[45]中提出了无数据权重量化的权重均衡和偏差校正,但没有考虑无数据激活量化。权重均衡是一个程序,通过在各层重新分配(均衡)其权重,将预训练的模型转化为量化友好的模型,使其在各层的偏差更小,量化误差更小。
由于权重量化而在激活中引入的偏差是在没有数据的情况下计算和修正的,而是基于存储在批量归一化层的统计数据。我们注意到,[45]中没有产生合成数据,[45]中也没有考虑data-free quantization-aware training。我们在表1中比较了无数据KD和量化方案。
表1:无数据KD和网络量化方案的比较,基于(1)它们如何产生合成数据和(2)它们是否依赖元数据。
Robust optimization. 稳健优化是优化的一个子领域,解决优化问题中的数据不确定性(例如,见[46,47])。在这个框架下,目标函数和约束函数被假定为属于某些集合,称为“不确定性集合”,目标是做出一个无论约束结果如何都可行的决策,并且对于最坏情况下的目标函数是最优的。在不提供数据的情况下,我们将无数据KD问题转化为一个鲁棒优化问题,而不确定性集是基于预先训练好的教师在其BN层使用统计信息来确定的。
Adversarial attacks. 生成愚弄预先训练模型的合成数据与对抗性攻击问题密切相关(例如,见[48])。尽管他们的目的与我们完全不同,但生成合成数据(或对抗性样本)的方法遵循类似的程序。在对抗性攻击中,还有两种方法,即:(1)直接在图像域生成敌对图像[49–51]和(2)使用生成器生成对抗图像[52–54]。
Deep image prior. 我们还注意到,由一系列卷积层组成的生成器网络可以作为一个很好的正则器,我们可以将其作为先验[55]施加于图像生成。因此,我们采用生成器,而不是添加任何先验的正则化[56],在[41]中采用这种方法来获得没有生成器的合成图像。
Generative adversarial networks (GANs). 对抗性学习在GANs中也是众所周知的[57]。GANs对图像合成问题的深入学习非常感兴趣。模式崩溃是GANs中众所周知的问题之一(例如,见[58])。克服模式崩溃的一个简单而有效的方法是引入多个发生器和/或多个鉴别器[59–62]。我们还发现,使用多个生成器和/或多个学生(在我们的案例中,一个学生充当鉴别器)有助于产生不同的样本,并避免在我们的无数据KD框架中过度拟合。
3. Data-free model compression
3.1. Knowledge distillation (KD)
让tθt_{θ}tθ 是一种用于分类的通用非线性神经网络,其目的是产生一个分类概率分布Pθ(y∣x)P_θ(y|x)Pθ(y∣x)表示标签集C上输入x的标签y,即tθ(x)=[Pθ(y∣x)]y∈Ct_θ(x) =[P_θ(y | x)]_{y∈\mathcal C}tθ(x)=[Pθ(y∣x)]y∈C。让y成为输入x的集合C上的one-hot code的ground truth标签y。网络tθt_θtθ 用用概率分布p(x, y)的标记数据集(称为训练数据集)进行预训练,如下所示:
其中Ep(x,y)\mathbb E_{p(x,y)}E