【阅读笔记】KDGAN: Knowledge Distillation with Generative Adversarial Networks

       知识蒸馏(KD)的目标是训练一种轻量级分类器,能够在多标签学习资源受限的情况下提供精确的推理。分类器不是直接使用特征标签对,而是由教师进行训练,即这是一个高能力的模型,它的培训可能需要大量资源。这种方法训练的分类器的精度通常不是理想的,因为很难从教师那里学习到真实的数据分布。另一种方法是在类似于生成对抗性网络(GAN)的二人博弈中,对分类器进行对抗性训练,以保证分类器在博弈均衡状态下学习到真实的数据分布。然而,由于高方差梯度更新,这类双人游戏可能需要很长时间才能达到平衡。为了解决这些限制,我们提出了一个名为KDGAN的三人游戏,它由一个分类器、一个老师和一个识别器组成。分类器和教师通过蒸馏损失相互学习,并通过对抗性损失对分类器进行对抗性训练。通过对精馏过程和对抗性损失的同时优化,使分类器能够获得平衡状态下的真实数据分布。我们用一个具体的分布来近似分类器(或老师)学习到的离散分布。从具体分布出发,生成连续样本,得到低方差梯度更新,加快了训练速度。实际数据集的大量实验验证了KDGAN在精度和训练速度上的优越性。

       在机器学习中,通常在训练模型的阶段比在运行已部署模型的阶段(即,推理阶段)。图1显示了图像标记推荐的一个示例应用程序,其中训练阶段比推理阶段有更多的输入特性(称为特权信息[47])可用。具体来说,训练阶段可以访问图1a所示的图像以及图像标题和注释(文本信息),而推理阶段只能访问图1b所示的图像本身。在智能手机用户上传图像后并将给图像提供标签,类型标签在电话里是不合适的并且考虑标签的图片也需要时间,所以它是非常有用的为图像推荐标签如图1b所示。另一个例子是通过人脸识别解锁手机。我们通常在手机上部署人脸识别模型,这样合法的用户就可以解锁手机,而无需依赖远程服务或互联网连接。训练阶段可以在功能强大的服务器上完成,其计算资源要比在移动电话上完成的推理阶段多得多。这里的一个关键问题是如何使用特权条款,即,资源只能用于训练,训练出的模型具有很大的推理性能[29]。解决这一问题的典型方法是基于知识蒸馏(KD)[7,9,23]。

【阅读笔记】KDGAN: Knowledge Distillation with Generative Adversarial Networks_第1张图片

       如图2的左半部分所示,KD由一个分类器和一个教师[29]组成。要对资源的限制推理进行操作,分类器不使用特权提供。另一方面,教师使用特权提供,例如,有一个更大的模型容量或采取更多的功能作为输入。一旦培训完成,教师将为每个培训实例输出一个名为“软标签[29]”的标签分布。然后,教师训练分类器通过蒸馏损失(如logits[7]上的L2损失)来预测软标签。这种训练过程通常被称为“提炼”教师的知识到分类器[23]。由于教师通常不能很好地对真实数据分布进行建模,分类器很难从教师那里学习真实数据分布。 

【阅读笔记】KDGAN: Knowledge Distillation with Generative Adversarial Networks_第2张图片

        生成式对抗网络(GAN)提供了一种学习真实数据分布的替代方法。受王等人[49]的启发,我们首先介绍了一个天真的GAN(NaGAN)和两名玩家。如图2的右侧所示,NaGAN由一个分类器和一个鉴别器组成。分类器作为一个生成器,在给定的实例中生成相关的标签,而鉴别器的目的是将真实的标签与生成的标签区分开来。分类器向判别器学习,通过对抗性损失对均衡时的真实数据分布进行完美的建模。NaGAN的一个限制是,通常需要大量的训练实例和循环才能达到平衡[15],这限制了它在收集标记数据开销较大的领域的适用性。训练速度慢是因为在这样一个两方框架中,从识别器到更新分类器的梯度往往在对位训练[4]中消失或爆炸。训练分类器在有限的训练实例和时间范围内学习真实的数据分布是一项具有挑战性的工作。

       为了解决这一挑战,我们提出了一个名为KDGAN的三人框架,该框架利用生成的对抗网络来提取知识。如图2所示,KDGAN由一个分类器、一个教师和一个鉴别器组成。除了KD中的蒸馏损失和NaGAN中的对抗性损失外,我们还定义了从分类器到教师的蒸馏损失和教师与鉴别器之间的对抗性损失。具体来说,分类器和教师作为生成器,目的是通过生成类似于真实标签的伪标签来欺骗鉴别器。与此同时,分类器和教师试图通过将他们的知识提炼成彼此的知识,从而就生成什么伪标签达成一致。通过将精馏和对抗性损失表示为极小极大对策,我们使分类器能够学习均衡时的真实数据分布(见第3.2节)。此外,分类器通过蒸馏损失从老师那里接收梯度,而鉴别器通过对抗性损失接收梯度。教师的梯度往往方差较小,这就减少了梯度的方差,从而加快了对抗性训练(见3.3节)。

       进一步考虑减小判别器梯度的方差,以加快KDGAN的训练。通过广泛使用的政策梯度法得到的判别器的梯度可能存在较大的方差[49,52]。由于分类器和教师生成的离散样本是不可微的,因此从判别器获得低方差梯度是非平凡的。我们建议使用Gumbel-Max技巧将分类器和教师学习到的离散分布松弛为具体分布[25,31][20,30]。我们使用具体的分布来生成连续样本,使端到端可微性和充分控制梯度的方差。在给定连续样本的情况下,我们从判别器得到低方差梯度,以加速KDGAN的训练。总而言之,我们的贡献如下:

       提出了一种用于多标签学习的KDGAN框架,该框架利用仅用于训练的资源来训练适合于资源约束推理的轻量级分类器。

       通过减小梯度的方差来减少收敛所需的训练时间,这是通过KDGAN的设计和Gumbel-Max技巧实现的。

       在图像标签推荐和深度模型压缩两方面进行了广泛的实验。实验验证了KDGAN相对于现有方法的优越性。

实验结果如下:

【阅读笔记】KDGAN: Knowledge Distillation with Generative Adversarial Networks_第3张图片

你可能感兴趣的:(知识蒸馏)