Data-Free Adversarial Distillation

Data-Free Adversarial Distillation

最近,Dosovitskiy和Brox[11]通过将自动编码方式与GAN的对抗性训练相结合,训练了能够从高度压缩的特征表示生成图像的网络。我们利用这些图像发生器网络作为先验产生合成的首选图像。这些生成器网络接近但不是真实的生成模型,因为它们在训练时没有像变分自动编码器[14]或GANs[17]那样对隐藏分布施加任何先验,也没有像去噪自动编码器[18]那样添加噪声。因此,在数据空间上既没有自然采样过程,也没有隐式密度函数。

我们引入模型差异来量化衡量学生和教师模型之间的差异,并构建一个可优化的上界。在我们的工作中,学生和教师共同扮演鉴别器的角色,以减少这种差异,当生成器对抗性地产生一些 "硬样本 "来扩大这种差异。广泛的实验表明,所提出的无数据方法产生了与现有数据驱动方法相当的性能**。更引人注目的是,我们的方法可以直接扩展到语义分割,这比分类更复杂,我们的方法取得了最先进的结果。该代码将被发布。**

无数据蒸馏目前是一个新的研究领域,由于缺乏真实数据,传统的生成技术,如GANS[11]和VAE[19]不能直接应用。Nayak等人[27]和Chen等人[6]对这个问题做了一些试验性研究。在Nayak的工作[27]中,一些“Data Impressions”是从教师模型构建的。此外,在陈的工作[6]中,他们还提出生成一些ont-hot样本,可以高度激活教师模型的神经元。这些探索性研究在分类任务上取得了令人印象深刻的成果,但仍存在一些局限性。例如,他们的生成约束是基于假设的经验设计的,即一个适当的样本通常对教师模型有高度的信心。实际上,该模型将样本从数据空间映射到一个非常小的输出空间,大量的信息被丢失。在这样一个有限的空间上,很难构建具有固定标准的样本。此外,这些现有的无数据方法[6, 27]只考虑了固定的教师模型,忽略了学生的信息。这意味着生成的样本不能根据学生的模型进行定制。

为了避免经验设计的约束条件的片面性,我们提出了一个无数据的对抗性提炼框架,以适应性地定制学生模型和教师模型的训练样本。在我们的工作中,引入了一个模型差异来证明模型之间的功能差异。我们为差异构建了一个可优化的上界,这样它就可以减少对学生模型的训练。训练学生模型。我们提出的框架的贡献 框架的贡献可以归纳为三点。

我们提出了一个用于无数据知识提炼的对抗性训练框架。据我们所知,这是第一个可以应用于语义分割的方法。

我们引入了一种新的方法,在没有任何真实数据的情况下定量测量模型之间的差异。

广泛的实验表明,所提出的方法不仅在表现上明显优于无数据的方法,而且还产生了与一些数据驱动的方法相当的结果。

3. Method

利用预先训练好的教师模型T(x, θt)的知识,我们的目标是制作一个更轻量级的学生模型S(x, θs),而不需要获得任何真实世界的数据。为了达到这个目的,我们通过最小化模型差异D(T , S),用参数化的S来近似模型T,D表示教师T和学生S之间的差异。

在这里插入图片描述

在数据驱动的提炼中,我们设计一个损失函数,例如平均平方误差,并用真实数据对其进行优化。这个过程中的损失函数可以被看作是对模型差异的具体测量。然而, 当原始训练数据不可用时,测量就变得很困难了。为了解决这个问题,我们引入了 我们的无数据对抗性蒸馏(DFAD)框架来 近似估计差异,这样就可以对其进行优化以实现无数据蒸馏。

3.1. Discrepancy Estimation

给定一个教师模型T(x,θt),一个学生模型S(x,θs)和一个特定的数据分布p,我们首先定义一个数据驱动的模型差异D(T , S; p)。

在这里插入图片描述

公式2中的常数因子n表示模型输出中的元素数量。这个差异只是衡量所有数据点上模型输出的平均绝对误差(MAE)。请注意,当且仅当它们对任何输入x产生相同的输出时,S与T在功能上是相同的。因此,如果p是一个覆盖整个数据空间的均匀分布 p u p_u pu,我们可以得到真正的模型差异D∗。

优化这样的差异等同于用从整个数据空间抽样的随机输入进行训练,由于维度的诅咒,这显然是不可能的。为了避免估计难以解决的D∗,我们引入了一个生成器网络 G ( z , θ g ) \mathcal G(z, θ^g) G(z,θg)来控制数据分布。与GANs一样,生成器从分布 p z p_z pz中接受一个随机变量z,并生成一个假的样本x,然后用生成器评估差异。

在这里插入图片描述

我们框架的关键思想是用D(T, S; G)来近似D∗。换句话说,我们用有限的生成样本估计教师模型和学生之间的真实差异。在这项工作中,我们把生成的样本分为两种类型。"硬样本 "和 “简易样本”。硬样本能够与模型T和模型S产生相对较大的输出差异,而简易样本对应的是小的差异。假设我们有一个生成器 G h \mathcal G^h Gh,它总是可以生成硬样本,根据Eqn。3,我们可以得到“硬样本差异” D h \mathcal D^h Dh。由于硬样本总是导致较大的输出差异,很明显以下不等式是正确的:

在这里插入图片描述

在这个不等式中,pu是覆盖整个数据空间的均匀分布,它包括大量的硬样本和易样本。这些容易的样本使D∗在数值上低于在硬样本上估计的Dh。当生成的样本被保证为硬样本时,该不等式总是成立的。在这个常数下, D h \mathcal D^h Dh为真实模型差异D∗提供了一个上限。请注意,我们的目标是优化真实模型差异D∗,这可以通过优化其上界 D h \mathcal D^h Dh来实现。

然而,在训练学生模型S的过程中,难的样本会被学生掌握并转化为易的样本。因此,我们需要一种机制来推动生成器不断生成硬样本,这可以通过对抗性蒸馏法来实现。

在这里插入图片描述

3.2. Advserarial Distillation

为了保持生成硬样本的约束,我们在本节中引入了两阶段对抗性训练。与GANs类似,我们的框架中也有一个生成器和一个鉴别器。如前所述,生成器 G ( z , θ g ) G(z, θ^g) G(z,θg)被用来生成硬样本。学生模型 S ( x , θ s ) S(x, θ^s) S(x,θs)和教师模型 T ( x , θ t ) T(x, θ^t) T(x,θt)被共同视为判别器,用于测量硬样本的差异D(T, S; G)。

对抗性训练过程包括两个阶段:模仿阶段使差异最小化,生成阶段使差异最大化,如图2所示。

3.2.1 Imitation Stage

在这个阶段,我们固定生成器G,只更新判别器中的学生S。我们从高斯分布中抽取一批随机噪声z,用生成器G构建假的样本x。然后每个样本x被送入教师和学生模型,产生输出 q t q^t qt q s q^s qs。在分类任务中,q是一个表示不同类别分数的向量。在其他任务中,如语义分割,q可以是一个矩阵。

事实上,有几种方法可以定义差异D来驱动学生的学习。Hinton等人利用KD损失来训练学生模型,KD损失可以是KullbackLeibler散度(KLD)或均方误差(MSE)。这些损失函数在数据驱动的KD中非常有效,但如果直接应用到我们的框架中,则会出现问题。一个重要的原因是,当学生收敛到生成的样本上时,这两个损失函数会产生衰减的梯度,这将使生成器的学习失效,导致一个死亡的minmax博弈。

因此,qt和qs之间的平均绝对误差(MAE)被用作损失函数。现在我们可以定义模仿阶段的损失函数如下:
在这里插入图片描述

在这里插入图片描述

直观地说,这个阶段与KD非常相似,但目标略有不同。在KD中,学生可以贪婪地从教师产生的软目标中学习,因为这些目标是从真实的数据中获得的[14],包含了对具体任务有用的知识。然而,在我们的环境中,我们无法获得任何真实数据。由生成器合成的假样本不能保证是有用的,尤其是在训练的开始阶段。

如前所述,生成器需要产生硬样本来衡量教师和学生之间的模型差异。除了向老师学习知识之外,模仿阶段的另一个重要目的是构建一个更好的搜索空间,迫使生成器找到新的硬样本。

3.2.2 Generation Stage

生成阶段的目标是推动硬样本的生成并保持公式4的约束。在这个阶段,我们固定鉴别器,只更新生成器。它受到人类学习过程的启发,在这个过程中,基础知识从一开始就被学习,然后通过解决更具挑战性的问题来掌握更先进的知识。因此,在这个阶段,我们鼓励生成器生成更混乱的训练样本。实现这一目标的一个简单方法是将负MAE损耗作为优化生成器的目标:

在这里插入图片描述

在产生损失的情况下,误差首先通过鉴别器,即教师和学生模型,然后通过发生器反向传播,产生梯度以优化发生器。在对抗性训练开始时,来自教师模型的梯度是必不可少的,因为随机初始化的学生实际上没有为探索硬样本提供有用的信息。

然而,如果学生的学习速度相对慢得多,那么具有公式7所示目标的训练程序可能是不稳定的。通过最小化公式7中的目标,生成器倾向于产生 "非正常 "的训练样本,这些样本在反馈给教师和学生时产生极其不同的预测结果。

它恶化了对抗性训练过程,并使数据分布发生剧烈变化。因此,必须确保生成的样本是正常的。为此,我们建议将MAE的对数值作为生成阶段的自适应损失函数。

在这里插入图片描述

L G E N \mathcal L_{GEN} LGEN总是鼓励生成器产生大差异的硬样本不同,在公式8中提出的新目标中,当差异变大时,生成器的梯度会逐渐衰减为零。它减缓了生成器的训练速度,使训练更加稳定。如果没有对数项,我们必须仔细调整学习率,使训练尽可能稳定。

3.2.3 Optimization

在这里插入图片描述

Two-stage training. 整个提炼过程在算法1中得到了总结。我们的框架通过重复这两个阶段来训练学生和生成器。它从模仿阶段开始,以最小化 L I M \mathcal L_{IM} LIM。然后在生成阶段,我们更新生成器以最大化 L G E N \mathcal L_{GEN} LGEN

在这里插入图片描述

表1:实验中使用的数据集和模型结构。REL和UNR分别对应相关替代数据和不相关数据。

根据学生模型的学习进度,生成器制作硬样本以进一步估计模型的差异。这种对抗性游戏中的竞争促使生成器发现缺失的知识,从而获得完整的知识。经过几个步骤的训练,系统最好达到一个平衡点,即学生模型已经掌握了所有的硬样本,而生成器无法区分两个模型S和T。在这种情况下,S与T在功能上是相同的

Training Stability 在对抗性训练中,保持稳定性是至关重要的。在模仿阶段,我们对学生模型进行k次更新,以确保其收敛性。然而,由于生成的样本不能保证对我们的任务有用,k的值不能设置得太大,因为它会导致一个非常有偏见的学生模型。我们发现将k设置为5可以使训练稳定。此外,我们建议使用自适应损失LGEN−ADA在密集预测任务中,如分割,其中每个像素将提供统计信息来调整梯度。在分类任务中,仅使用少量样本计算生成损失,统计信息不准确,因此更倾向于使用LGEN。

Sample Diversity 与GANs不同,我们的方法自然地保持了生成样本的多样性。当模式崩溃发生时,学生很容易在我们的框架中拟合这些重复的样本,从而导致非常低的模型差异。在这种情况下,生成器被迫生成不同的样本以扩大差异。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pOC5sHVl-1619342709448)(012.jpg)]

4.2. KD in Classification Models

表2提供了我们的方法和比较基线的测试精度。为了消除随机化的影响,我们将每个实验重复5次,并记录最高精度的平均值和标准偏差。表的第一部分给出了数据驱动的蒸馏方法的结果。KD-ORI需要原始训练数据,而KD-REL和KD-UNR使用一些无标签的替代数据进行训练。在KD-REL中,训练数据应该与原始训练数据相似。

然而,替代数据和原始数据之间的领域差异是不可避免的,这将导致不完整的知识。如表所示,KD-REL的准确性略低于KD-ORI。请注意,在我们的实验中,原始训练数据是可用的,所以我们可以很容易地找到一些类似的数据进行训练。然而,在现实世界中,我们对领域信息一无所知,这使得我们无法收集到类似的数据。在这种情况下,盲目收集的数据可能包含许多不相关的样本,导致KD-UNR方法的出现。发生的数据偏差使训练非常困难,并使学生模型的性能恶化。

表格的第二部分显示了无数据蒸馏方法的结果。我们使用他们发布的代码将我们的方法与DALF[6]进行比较。在我们的实验中,我们将CIFAR的批处理量设置为256,Caltech101的批处理量设置为64,对每个模型进行500 epoch训练。我们的对抗性学习方法在无数据方法中取得了最高的准确性,其性能甚至可以与那些数据驱动的方法相媲美。请注意,我们将Caltech101的批次大小设置为64,DAFL方法在这种情况下失败了,而我们的方法仍然能够从教师那里学到学生模型。不同批次大小的影响可以在补充材料中找到。

Visualization of Generated Samples. 随着分类难度的增加,教师模型变得更有知识,因此在对抗性学习中,生成器可以恢复更复杂的图像。如上所述,生成样本的多样性是由对抗性损失保证的。在我们的结果中,生成器确实保持了完美的图像多样性,几乎每个生成的图像都是不同的。

A. 模型结构和超参数

表7总结了每个数据集的基本配置。在我们的实验中,教师模型是从标记的数据中获得的,而学生模型和生成器是在没有获得真实世界数据的情况下训练的。我们每50次迭代验证我们的模型。为了简单起见,我们把这样的时期看作是一个 “epoch”。

A.1. Generators

如图4所示,我们在实验中采用了两种生成器的结构。第一种生成器,表示为 “生成器-A”,使用最近邻接插值进行上采样。第二种,表示为 “Generator-B”,与DCGAN[31]提出的发生器同构,它用deconvolutions代替插值。我们对MNIST和CIFAR使用Generator-A,而对其他数据集则使用更强大的Generator-B。LeakyReLU的斜率被设置为0.2以获得更稳定的梯度。在蒸馏过程中,所有的生成器都用Adam[18]进行优化,学习率为1e-3。betas被设置为其默认值,即0.9和0.999。

在这里插入图片描述

表4:生成器架构。矢量输入首先被投射到特征图上[31],然后被上采样到所需的大小。

B. Influence of Different Batch Sizes

存中…(img-soEACNep-1619342709449)]

表4:生成器架构。矢量输入首先被投射到特征图上[31],然后被上采样到所需的大小。

B. Influence of Different Batch Sizes

在我们的方法中,需要一个大的批次规模来训练发生器[2]并确保差异估计的准确性。为了探索不同批次规模的影响,我们在分类和语义分割数据集上进行了几次实验。我们还发现,增加批量大小可以给我们的方法带来巨大的好处。造成这种现象的一个重要原因是,大批量可以为硬样本生成提供足够的统计信息,使训练更加稳定。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值