模型反演的目标是从预先训练好的模型中恢复训练数据,最近已被证明是可行的。然而,现有的反转方法通常存在模式崩溃问题,即合成的实例彼此高度相似,因此对下游任务(如知识提炼)的有效性有限。在本文中,我们提出了对比性模型反演(CMI),其中数据多样性被明确地建模为一个可优化的目标,以缓解模式塌陷问题。我们的主要观察结果是,在相同数据量的约束下,更高的数据多样性通常表明更强的实例辨别能力。
为此,我们在CMI中引入了一个对比性学习目标,鼓励合成的实例与前几批已经合成的实例区分开来。在CIFAR-10、CIFAR-100和Tiny-ImageNet上进行的预训练模型的实验表明,CMI不仅产生了比现有技术水平更多的视觉上可信的实例,而且当所产生的数据被用于知识提炼时,也取得了明显的优越性。代码可在https://github.com/zju-vipa/DataFree。
现有的KD方法在很大程度上依赖于大量的训练数据,将知识从预先训练好的教师模型转移到学生身上。然而,在许多情况下,由于隐私或传输的原因,训练数据不会与预先训练好的模型一起发布,这使得这些方法无法适用。因此,无数据KD被提出来以解决这个问题。无数据KD的重要步骤是模型反转,其目标是从预训练的教师模型中恢复训练数据。有了得出的综合数据,学生模型就可以通过直接利用数据驱动的KD方法轻松地学习。
模型反演本身已被研究了很长时间,用于各种目的。例如,[Mahendran和Vedaldi,2015]研究了模型反转以更好地理解深层表征。[Fredrikson等人,2015]研究了模型反转攻击来推断敏感信息。最近,随着无数据KD获得更多关注,模型反转的研究再次出现[Yin等人,2020;Lopes等人,2017;Fang等人,2019] 。具体来说,无数据KD对模型反演提出了更高的要求,原因如下:第一,导出的数据应该遵循与原始训练数据相同的分布,否则学生模型几乎无法从教师那里继承这些非分布数据的知识。第二,派生数据应该具有丰富的多样性,这样学生模型就能够通过这些不同的数据掌握全面的知识。
遗憾的是,现有的反转方法仍然不能满足这种要求。例如,[Chen et al.,2019]的工作通过拟合 "单热 "预测分布来反转分类模型。Yin等人,2020]则是通过使用存储在教师模型的批量归一化层中的统计数据对中间特征图的分布进行正则化来合成图像。这两种方法都依赖于对真实数据分布的一些假设,并通过拟合先验分布独立优化每个实例。由于没有明确的约束条件来鼓励数据的多样性,这些方法受到模式崩溃问题的影响,生成的实例变成了彼此高度相似。
Fang等人,2019年;Choi等人,2020年]的作品提出通过挖掘更难的或对抗性的例子来产生更多的判别数据进行训练。虽然对于无数据的KD来说,取得了一些性能上的提高,但生成的数据往往缺乏自然的图像统计,容易被识别为不真实的。
在本文中,我们试图通过促进数据多样性的角度来缓解无数据KD中的模式崩溃问题。通过实验,我们发现在相同的数据量下,更高的数据多样性表明了更强的实例区分能力。在这一现象的启发下,我们首先提出了一个基于实例判别(instance discrimination)的数据多样性定义,然后提出了对比模型反转(CMI)来解决模式崩溃问题,同时使生成的数据分布更接近真实数据分布。通过这种方式,生成的数据变得更加多样化和真实。
具体来说,在CMI中,我们引入了另一个对比性学习目标,其中positive图像对包括同一数据实例的剪裁图像和整体图像,而negative图像对包括两个不同的数据实例。通过鼓励positive图像对相互靠近,negative图像对相互隔离,CMI大大改善了图像的多样性和真实性,从而促进了无数据KD的性能。在CIFAR-10、CIFAR-100和Tiny-ImageNet上进行的预训练模型的实验表明,CMI不仅确保了比现有技术水平更多的视觉上合理的实例,而且在生成的数据用于知识提炼时,也取得了明显的优越性能。
因此,我们的贡献被总结为以下几点。
Model Inversion (MI) 旨在从预训练模型的参数中重新构建输入,最初是为了理解神经网络的深度表示而提出的[Mahendran和Vedaldi,2015]。给定一个函数映射φ(x)和输入x,一个标准的模型反转问题可以被形式化为寻找一个 x ′ x' x′来实现最小的 d ( φ ( x ) , φ ( x ′ ) ) d(φ(x), φ(x')) d(φ(x),φ(x′)),其中 d ( ⋅ , ⋅ ) d(\cdot, \cdot) d(⋅,⋅)是一个误差函数,例如,均方误差。这种范式被称为模型反转攻击[Wu et al., 2016],被广泛用于模型安全[Zhang et al., 2020]和可解释性[Mahendran and Vedaldi, 2015]等多个领域中。最近,反演技术在知识转移中显示出其有效性[Lopes等人,2017;Yin等人,2020],导致无数据的知识提炼。
Data-Free Knowledge Distillation 最近作为知识提炼领域内的热门任务出现[Ye et al., 2019; Shen et al., 2019; Yang et al., 2020; Ye et al., 2020],旨在从教师那里学习学生模型,而不获取真实世界的数据[Lopes et al., 2017; Chen et al., 2019; Ma et al., 2020],从而实现模型压缩[Yu et al., 2017]。现有的无数据工作的贡献可以大致分为两类:对抗性训练和数据先验。对抗性训练的动机是鲁棒性优化,其中最坏情况下的样本被合成用于学生学习[Micaelli和Storkey,2019;Fang等人,2019]。数据先验为无数据KD提供了另一个视角,即合成数据被迫满足预先定义的先验,如total variance prior [Mahendran和Vedaldi,2015]和Batch normalization statistics[Yin等,2020]。
对比学习 在自我监督学习领域取得了巨大的进展[Chen et al., 2020; He et al., 2020]。其核心思想是将每个样本作为一个不同的类别,并学习如何区分它们[Wu et al., 2018; Liu et al., 2021]。在这项工作中,我们从另一个角度重新审视对比学习框架,它的实例判别能力被用来为模型反转中的数据多样性建模。
对比学习在自我监督学习领域取得了巨大的进展[Chen et al., 2020; He et al., 2020]。其核心思想是将每个样本作为一个不同的类别,并学习如何区分它们[Wu et al., 2018; Liu et al., 2021]。在这项工作中,我们从另一个角度重新审视对比学习框架,它的实例判别能力被用来为模型反转中的数据多样性建模。
模型反演作为无数据知识提炼的重要步骤,旨在从预先训练好的教师模型 f t ( x ; θ t ) f_t(x; θ_t) ft(x;θt)中恢复训练数据 X ′ \mathcal X' X′,以替代无法获得的原始数据 X \mathcal X X。在这一部分,我们讨论三种典型的反转技术。
统一框架 结合上述的 技术将导致一个统一的反演框架[Choi 等人, 2020],用于无数据的知识提炼
其中α、β和γ是不同标准的平衡项。然而,模型反演实际上是一个条件不足的问题,满足上述标准的合成数据并不唯一。由于在这个框架中没有明确的多样性约束,传统的反演方法可能倾向于 “偷懒”,重复合成重复的样本。为了克服这个问题,我们提出了一种多样性感知的反演技术,即对比性模型反演(CMI)。
Overview 有了预先训练好的教师模型 f t ( x ; θ t ) f_t(x; θ_t) ft(x;θt),对比性模型反转的目标是产生一组具有强烈多样性的 x ∈ X ′ x∈\mathcal X' x∈X′,有了它就可以从教师那里提取全面的知识。在这一节中,我们为数据多样性制定了一个有趣的定义,并在此基础上介绍了所提出的对比性模型反演(CMI)。我们的动机是直观的:在相同数据量的约束下,更高的多样性通常表示更强的实例可区分性。为此,我们用实例判别问题对数据多样性进行建模[Wu et al.,2018],并通过对比性学习构建一个可优化的目标。
Definition of Data Diversity 给定一组数据 X ′ \mathcal X' X′,对数据多样性的直观描述是 “数据集中的样本有多大的可区分性(how distinguishable)”,这显示了多样性和实例可区分性之间的正相关关系。因此,如果我们有一定的度量 d ( x 1 , x 2 ) d(x_1, x_2) d(x1,x2)来估计实例对 { x 1 , x 2 } \{x_1, x_2\} {x1,x2}的可区分性,那么我们可以为数据多样性制定一个明确的定义,如下所示。
其中 d ( x 1 , x 2 ) d(x_1, x_2) d(x1,x2)将应用于X中所有可能的 ( x 1 , x 2 ) (x_1, x_2) (x1,x2)对。有各种方法来定义metric d ( ⋅ , ⋅ ) d(\cdot, \cdot) d(⋅,⋅),导致不同的多样性标准。例如,预训练模型 f t ( x ; θ t ) f_t(x; θ_t) ft(x;θt)实际上是一个embedding函数,它将数据x映射到一个高级特征空间,其中一个直观的度量可以定义为 d ( x 1 , x 2 ) d(x_1, x_2) d(x1,x2) = ∣ ∣ f t ( x 1 ) − f t ( x 2 ) ∣ ∣ ||f_t(x_1)-f_t(x_2)|| ∣∣ft(x1)−ft(x2)∣∣,这被称为感知距离[Li等人, 2003]。然而,由于以下问题,这种距离对于多样性估计可能是有问题的。1)函数 f t f_t ft实际上并没有明确地被训练来测量实例之间的相似性,其中欧氏距离的含义对我们来说是未知的。2)、embedding f t ( x ) f_t(x) ft(x)可能编码了关于输入的结构化信息,而这些信息不能被这个度量所捕获。3)、这个距离度量是无界的,我们无法弄清楚它应该有多大才能表明一个好的多样性。在这种情况下,在metric上最大化这种距离度量可能只会导致不正常的结果。因此,需要一个更合适的embedding 空间来构建一个有意义的可区分性度量。在下文中,我们提出了一个基于学习的数据多样性度量,它是通过解决一个对比性学习目标而建立的。
Data Diversity from Contrastive Learning 对比学习最初是为了以自我监督的方式从数据中学习有用的表征,其中通过将每个样本视为一个不同的类别来建立样本级的歧视问题[Wu et al., 2018]。通过对比学习,网络可以学习如何区分不同的样本,这与我们对度量 d ( ⋅ , ⋅ ) d(\cdot,\cdot) d(⋅,⋅)的要求完全一致。在此基础上,我们引入另一个网络 h ( ⋅ ) h(\cdot) h(⋅)作为教师网络 f t f_t ft的实例判别器,接受特征 f t ( x ) f_t(x) ft(x)作为输入并将其投射到一个新的嵌入空间。为了简化,我们用v = h(x)来表示 v = ( h ∘ f t ) ( x ) v = (h \circ f_t)(x) v=(h∘ft)(x),因为教师网络是固定的。在 h ( ⋅ ) h(\cdot) h(⋅)的新嵌入空间中,我们用简单的余弦相似度来描述数据对x1和x2之间的关系,如下所示。
然后,可以用对比学习框架[Chen et al., 2020]的形式来表述实例判别问题,每个实例将被随机转化为不同的views ,并应被正确匹配。对于每个实例 x ∈ X ′ x∈\mathcal X' x∈X′,我们通过随机增强构建一个正视图x+,并将其他实例x-视为负视图。对比性学习损失的形式化为:
其中常数Z(x-)指的是每个实例xi的负样本量。因此,我们可以通过最小化对比性损失 L c r \mathcal L_{cr} Lcr来直接最大化多样性 L d i v \mathcal L_{div} Ldiv。
图1:提议的对比性模型反转方法的说明图。在每个时间戳中,一个新初始化的生成器被训练为在实例判别的指导下合成可区分的样本。
Model Inversion 在上一部分中,我们将数据多样性与对比性学习目标衔接起来,可以直接优化,使数据更加多样化。本节将对比性学习整合到模型反演中,形成我们最终的算法,即对比性模型反演。
如图3所示,我们的方法由四个部分组成:生成器 g ( ⋅ ; θ g ) g(\cdot;θ_g) g(⋅;θg)、教师网络 f t ( ⋅ ; θ t ) f_t(\cdot;θ_t) ft(⋅;θt)、实例判别器 h ( ⋅ ; θ h ) h(\cdot;θ_h) h(⋅;θh)和记忆库 B \mathcal B B。判别器是一个简单的多层感知,如[Chen et al., 2020]中使用的,它接受倒数第二层的表征以及中间特征的 global pooling作为输入。
CMI的核心思想是逐步合成一些新的样本,这些样本可以很容易地与存储库中的历史样本区分开来。因此,模型反转过程是以 "case-by-case "策略处理的,这意味着在每个时间戳T中,生成器将只合成一批数据。具体来说,在时间戳T的开始,我们重新初始化生成器,并迭代优化其latent code z和参数θg用于合成。
在这种情况下,生成器只负责数据分布的一小部分。与[Yin等人,2020]中使用的独立更新不同像素的像素更新策略相比,“case-by-case”生成器可以对像素提供更强的正则化,因为它们是由共享权重生成的 θ g θ_g θg。在合成过程中,对合成图像进行随机增强,生成局部视图x和全局视图x+,用于对比学习。但是,请注意,单个批次将不足以训练鉴别器训练。因此我们让存储在记忆库B中的历史图像也参与到学习过程中。现在,对比性模型反转的目标可以被形式化为以下内容。
其中 L i n v ( ⋅ ) \mathcal L_{inv}(\cdot) Linv(⋅)指的是方程4中广泛使用的反演准则,它只适用于图像的全局视图, L c r \mathcal L_{cr} Lcr指的是提议的数据多样性的对比性损失。请注意, L c r \mathcal L_{cr} Lcr同时考虑了合成批次g(z; θg)和B的历史数据,其中历史数据将为当前图像合成提供有用的指导。在对比学习过程中,**我们在全局视图上停止梯度,只允许在局部视图上进行反向传播,正如[Chen and He, 2020]中所做的那样。**我们发现,这种操作可以为局部模式的合成提供更清晰的梯度。
对比性模型反演的完整算法总结在Alg中。1. 存储在存储库B中的合成图像将被用于下游的蒸馏任务。
有了inverted数据X,很容易用Kullback-Leibler散度来训练学生。然而,合成也许不是知识转移的最佳方式,其中一些重要的模式被遗漏。对抗性蒸馏法是一种流行的提高学生成绩的技术,它将学生纳入到图像合成中,用公式10使教师和学生之间的散度最大化。然而,大的散度可能并不总是对应于有价值的样本,因为它们可能只是一些异常值。在这项工作中,我们更加关注那些边界样本,并引入决策对抗性损失。
函数 1 { − } \mathbb 1\{-\} 1{−}是一个指标,当教师和学生对x产生相同的预测时,启用对抗性学习,否则禁用。与公式10中的无界损失项不同,我们的决策对抗性损失将使x接近决策边界,这可以提供更多关于教师网络的信息。
表1为现有的无数据知识提炼方法提供了一个基准。T.和S.指的是教师和学生在原始训练数据上的抓取精度。我们将我们的方法与以下基线进行了比较。DAFL [Chen et al., 2019], ZSKT [Micaelli and Storkey, 2019], ADI [Yin et al., 2020], DFQ [Choi et al., 2020] 和 LS-GDFD [Luo et al., 2020]。
它们都遵循第3.1节中讨论的统一框架。我们的方法和ADI都采用 case-by-case 策略[Yin等人,2020]进行模型反演,而其他基线则将其作为一个生成问题来处理。我们的方法与基线方法的主要区别在于对比学习的使用,即额外的损失项Lcr。结果表明,与大多数基线方法相比,我们的方法取得了卓越的或相当的性能。此外,请注意wrn40-2包含的参数比resnet-34模型少10倍左右,其中存储的关于训练数据的先验信息较少。在这种情况下,与基线方法相比,CMI仍然可以取得令人满意的性能。
在图2中,我们进一步可视化了来自DeepInversion(没有对抗性蒸馏的ADI)、DFQ和我们的方法的合成数据。结果显示,我们的方法能够合成更多可信的和多样化的数据。DeepInversion和DFQ都存在模型崩溃的问题。例如,DeepInversion中合成的青蛙在颜色和背景上都很相似。值得注意的是,生成器通常可以产生比像素更新更好的视觉质量,尽管它可能遭受更严重的模式塌陷,如DFQ的图像所示。相比之下,我们的方法能够恢复更加多样化和合理的结果,具有更好的局部细节,如眼睛和纹理。
Figure 2: Inverted data from a pre-trained ResNet-34 on CIFAR-10. DeepInversion adopts pixel updating for image synthesis, while DFQ uses a generator for generation. Our approach can achieve better visual quality and diversity than the baselines. Besides, the background, style, and pose in our results are very plausible.