Distilling the Knowledge in a Neural Network

Neural Networks Are More Productive Teachers Than Human Raters

我们研究了如何通过从黑匣子教师模型中提炼知识,以数据高效的方式训练学生深度神经网络进行视觉识别。在这个问题上的进展可以大大降低学习高性能视觉识别模型对大规模数据集的依赖性。有两个主要的挑战,一是应尽量减少对教师模型的查询次数,以节省计算和/或财务成本。另一个挑战是,用于知识提炼的图像数量要少,否则就违背了我们减少对大规模数据集的依赖性的期望。为了应对这些挑战,我们提出了一种混合和主动的方法学习前者通过从原始图像的凸包中提取大量合成图像,有效地增强了少数未标记的图像,后者主动选择池中的硬例子作为学生神经网络,并从教师模型中查询标签。我们通过大量实验验证了我们的方法

1. Introduction

数据处理是学习高性能视觉识别模型的重要步骤之一。然而,收集对推理时间场景有足够覆盖范围的大规模相关数据通常是乏味的,有时是令人望而生畏的。此外,对收集到的数据进行标记既费时又费钱。

给定一个新的任务,我们如何以更高效的方式学习高质量的机器学习模型?我们认为,答案因具体应用场景而异。在本文中,我们主要讨论了一个黑箱教师模型,它的能力涵盖了我们感兴趣的任务。事实上,在我们的智能设备中,有许多高性能的通用视觉识别模型可以作为基于Web的api使用,甚至可以作为我们不久前构建的过时模型使用。然而,挑战在于,我们往往对模型的具体情况了解有限,例如,不知道确切的网络结构或权重。

为此,我们研究了如何以一种数据有效的方式将用于视觉识别的黑箱教师模型提取为学生神经网络。我们的目标是三个方面。首先,我们希望经过提炼的学生网络在推理时尽可能地表现出良好的教师模型。此外,为了节省成本,我们尽量减少对blackbox教师模型的查询次数。最后,我们还将尽可能使用少量示例来节省数据收集工作。很难为稀有类或隐私关键应用程序收集大量数据。

我们建议将主动学习[44,28]和图像合成[49]相结合,以解决从黑箱教师模型中提取数据效率高的知识的问题。其主要思想是将少量训练样本中的大量图像进行合成,然后利用主动学习从中选择最有用的子集来查询教师模型。之后读出教师模型的输出,我们简单地把它们当作查询图像的“基本真值标签”,并用它们训练学生神经网络。

图像合成[49,13,1]最初是为了提高神经识别网络的泛化性能而提出的数据增强方法。它通过两个训练图像的凸组合来合成虚拟图像。虽然合成的图像可能变得杂乱无章,语义上毫无意义,但它位于自然图像的流形附近。我们推测,大量的合成图像可以很好地覆盖自然图像的多样性。因此,我们期望在混合图像上模仿黑盒教师的学生网络可以在测试图像上产生与教师模型相似的预测。

我们采用主动学习的方法来提高查询效率,而不是通过所有的混合图像来查询黑盒教师模型。我们首先从blackbox教师模型中获取少量原始图像的标签,并将其用于学生网络的训练。然后,我们将学生网络应用于所有的合成图像,以识别当前学生网络最不确定的子集。

据我们所知,我们首先从blackbox教师模型中提取知识,同时强调数据效率和查询效率的需要。我们通过对比少/零射程知识蒸馏,实证验证了我们的方法方法、实验表明,尽管我们的工作中有黑箱老师,我们的方法表现得与从白箱老师那里学习的竞争方法不相上下或更好。

请注意,合成图像通常在语义上是没有意义的,这使得人们几乎不可能给它们贴上标签。然而,不管怎样,blackbox-teacher模型都会为他们返回预测,而学生网络仍然可以从这些虚假的图像标签对中获益。从这个意义上讲,我们认为在学生网络教学中,黑箱教师模式比人类评分者更有成效。

2. Related Work

Knowledge Distillation.

文[16]提出了知识蒸馏的方法来解决模型压缩问题,从而减轻集成学习的负担。这项工作表明,作为“暗知识”的类概率对于保持原始网络的性能是非常有用的,因此,可以训练轻量级替代模型来提取这种知识。这种方法非常有用,并且已经被证明可以解决各种复杂的应用问题,例如姿势估计[37、46、33]、车道检测[17]、实时流媒体[31]、对象检测[6]、视频表示[41、10、11]等等。此外,这种方法能够提高深度神经网络的性能,提高效率[35]和精度[25]。因此,从训练策略[45,20]、蒸馏方案[15,4]或网络性质[34]等角度对其性能进行了大量的研究。

然而,还有一个重要的问题。传统的知识提取需要大量原始的训练数据,这些数据很难获得。为了缓解这一数据需求,提出了用对抗性生成的伪样本来保留教师模型性能的少量知识提取方法[21]。另一种称为无数据知识蒸馏的方法利用教师模型中的额外激活记录来重建原始数据集,从而恢复教师模型[30]。近年来,提出了一种基于教师网络梯度信息的零知识提取方法[32]。然而,这些方法都需要教师网络的梯度信息,这使得它们在现实世界中难以实现。

Blackbox Optimization.

Blackbox优化是基于查询模型梯度信息中的零知识而发展起来的,广泛应用于解决实际问题。近年来,这项工作被广泛应用于深度学习,尤其是模型攻击。通过访问分类器的输入输出对,探索了一种丰富的黑盒攻击方法[3,18,36,2,29],这些方法大多集中在访问数据所引起的攻击上。[8] 相反,研究对手能够通过模型反演恢复敏感数据。然而,目前还没有对黑箱知识进行提炼的工作。

Active Learning.

主动学习是oracle和学习者代理之间通过交互进行学习的过程。该策略可以有效地利用现有的数据信息来改进所得到的模型,从而减少查询次数,因此被广泛地应用于解决数据标注代价高昂的学习问题。为了优化这一过程,人们提出了许多有效的方法,如基于不确定性的方法[28,48,9]和基于边际的方法[7,38]。从文献[12]的回顾来看,基于不确定性的方法虽然简单,但能够获得良好的性能。

Mixup.

Zhang等人。首先提出了改进深度神经网络泛化的混合算法[49]。提出了基于类间学习(BC-learning)的深层声音识别方法,并将其推广到图像分类中。随后,提出了配对样本[19]作为一种数据增强方法,对每个像素取两个图像的平均值。最近,一种叫做AutoAugment[5]的方法探索通过自动搜索来改进数据扩充策略。

3. Approach

在本节中,我们详细介绍了从黑箱教师模型中提取数据有效知识的方法。在给定一个黑盒教师模型和少量未标记图像的情况下,该方法迭代如下三个步骤:1)从少量未标记图像中构造合成图像的大候选池;2)从当前学生网络最不确定的池中主动选择一个子集,3) 查询blackbox教师模型以获取该子集的标签并重新训练学生网络。

3.1. Constructing a Candidate Pool

在实际应用中,由于各种原因,如隐私问题、稀有类、数据质量等,数据收集可能会耗费大量时间。我们不再依赖真实图像的大数据集,而是从少量未标记的图像开始,并使用最近提出的mixup[49]来扩充这个初始图像池。

给定两个图片 x i x_i xi x j x_j xj ,mixup通过两个不同系数的凸组合生成多个合成图像,

x ^ i j ( λ ) = λ x i + ( 1 − λ ) x j \hat{x}_{ij}(\lambda)=\lambda x_i+(1-\lambda)x_j x^ij(λ)=λxi+(1λ)xj (1)

系数 λ ∈ [ 0 , 1 ] \lambda \in[0,1] λ[0,1]。这项技术对我们的工作。它可以指数扩展初始图像池的大小。假设我们收集了1000幅自然图像,并且通过改变系数 λ \lambda λ 为每对图像生成10幅合成图像。然后我们得到总共约 1 0 6 10^6 106幅图像的集合。此外,这一合成图像库还提供了对自然图像的多种多样性的良好覆盖。实际上,这个池可以看作是我们收集的自然图像的凸包的密集采样。如果采集到的图像具有多样性和代表性,则测试图像可能落入或接近该凸壳。因此,我们期望学生神经网络能够很好地推广到推理时间数据,通过强制它模拟混合图像上的黑盒教师模型。

3.2. Actively Choosing a Subset to Query the Teacher Model

让 $ {\hat{x}_{ij}(\lambda),\lambda \in[0,1],i\neq j}$ 表示图像的增强池。查询教师模型以获得这些合成图像的(软)标签,然后用它们训练学生网络是很简单的。然而,这种暴力策略会带来很高的计算和财务成本。相反,我们采用主动学习来降低成本。

我们定义学生神经网络对输入x的置信度为

C 1 ( x ) : = m a x y P S ( y ∣ s ) C_1(x):=max_yP_S(y|s) C1(x):=maxyPS(ys) (2)

P S ( y ∣ x ) P_S(y|x) PS(yx)为当前学生网络预测的输入图像x属于y类的概率。直观地说,学生网络对输入x的信心越小,学生网络从教师模型的输入标签中获得的信息就越多。

因此,我们可以根据学生网络对候选池中所有合成图像的信任度对其进行排序,然后选择最上面的图像作为查询子集。然而,这个简单的策略导致了接近重复的图像,例如 x ^ i j ( λ = 0.5 ) \hat{x}_{ij}(\lambda=0.5) x^ij(λ=0.5) x ^ i j ( λ = 0.55 ) \hat{x}_{ij}(\lambda=0.55) x^ij(λ=0.55)。我们通过从任何一对图像中最多选择一个图像来避免这种情况。

特别是,我们在候选池中对图像对进行排序,而不是对合成图像进行排序。我们将学生网络对图像对 x i x_i xi x j x_j xj的信心定义如下:

C 2 ( x i , x j ) : = m i n λ C 1 ( x ^ i , j ( λ ) ) , λ ∈ [ 0 , 1 ] C_2(x_i,x_j):=min_{\lambda}C_1(\hat{x}_{i,j}(\lambda)),\lambda\in[0,1] C2(xi,xj):=minλC1(x^i,j(λ)),λ[0,1] (3)

这取决于图像对的系数 λ ∗ \lambda^* λ。因此,我们得到了对任意一对原始图像的置信分值及其对应系数。合成的图像 x ^ i j ( λ ∗ ) \hat{x}_{ij}(\lambda^*) x^ij(λ)如果置信得分 C 2 ( x i , x j ) C_2(x_i,x_j) C2(xi,xj) 是最低k个,则选择到查询集。我们在实验中研究了查询集的大小。

3.3. Training the Student Network

利用主动选择的图像查询集,我们查询blackbox教师模型,并读出其作为图像标签的软预测。然后,我们将它们与先前的训练集(如果有的话)合并,以使用交叉熵损失训练学生网络。教师模型返回的软概率标签比硬标签的效果稍好,因此我们在下面的实验中使用软标签。

3.4. Overall Algorithm

在这里插入图片描述

算法1给出了数据有效黑盒知识提取方法的总体过程。由一个教师模型 M T \mathcal{M}^T MT和一些没标签的图片 X = { x 1 , x 2 , . . . , x n } X=\{x_1,x_2,...,x_n\} X={x1,x2,...,xn},我们首先我们首先训练一个初始的学生网络 M 0 S \mathcal{M}_0^S M0S ( X , Y 0 ) (X,Y_0) (X,Y0),其中 Y 0 Y_0 Y0包含X中图像的标签,通过查询教师模型获得。然后我们用mixup构建一个大的合成图像库 P \mathcal{P} P促进积极的学习阶段。我们重复以下步骤,直到学生网络的准确性收敛。1)从合成图片集 P \mathcal{P} P积极选择置信度得分最低的一个 C 2 ( x i , x j ) C_2(x_i,x_j) C2(xi,xj)子集 Δ P t s \Delta \mathcal{P}_t^s ΔPts 。如当前学生网络所预测的那样,生成子集 Δ P t s \Delta \mathcal{P}_t^s ΔPts 包含当前学生网络 M t − 1 S \mathcal{M}^S_{t-1} Mt1S的困难样本。2)通过查询教师模型获取合成图像的选定子集 Δ P t s \Delta \mathcal{P}_t^s ΔPts 的标签 Δ Y t \Delta\mathcal{Y}_t ΔYt 3)培养一个新的学生网络 M t S \mathcal{M}^S_{t} MtS用到目前为止标记的所有图像, ( P t s , Y t ) (\mathcal{P}_t^s,\mathcal{Y}_t) (Pts,Yt)。注意,在算法1的第6行中,我们仅为任何一对 ( x i , x j ) (x_i,x_j) (xi,xj)保留一个合成图像减少原始图像的冗余。

athcal{P}_t^s,\mathcal{Y}_t) 。 注 意 , 在 算 法 1 的 第 6 行 中 , 我 们 仅 为 任 何 一 对 。注意,在算法1的第6行中,我们仅为任何一对 16(x_i,x_j)$保留一个合成图像减少原始图像的冗余。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值