焦点简讯:知识蒸馏研究综述

来源:哔哩哔哩   2023-02-01 04:56:49

Keywords

知识蒸馏

模型压缩

模型增强


(相关资料图)

知识迁移

深度学习

摘要

本文从基础知识,理论方法和应用等方面对近些年知识蒸馏的研究展开全面的调查,具体包含以下内容:(1)回顾了知识蒸馏的背景知识,包括它的由来和核心思想;(2)解释知识蒸馏的作用机制;(3)归纳知识蒸馏中知识的不同形式,分为输出特征知识、中间特征知识、关系特征知识和结构特征知识;(4)详细分析和对比了知识蒸馏的各种关键方法,包括知识合并、多教师学习、教师助理、跨模态蒸馏、相互蒸馏、终身蒸馏以及自蒸馏;(5)介绍知识蒸馏与其它技术融合的相关方法,包括生成对抗网络、神经架构搜索、强化学习、图卷积、其它压缩技术、自动编码器、集成学习以及联邦学习;(6)对知识蒸馏在多个不同领域下的应用场景进行了详细的阐述;(7)讨论了知识蒸馏存在的挑战和未来的研究方向.

引言

知识蒸馏是一种教师-学生(Teacher-Student)训练结构,通常是已训练好的教师模型提供知识,学生模型通过蒸馏训练来获取教师的知识. 它可以以轻微的性能损失为代价将复杂教师模型的知识迁移到简单的学生模型中.

复杂的教师网络简单的学生网络  模型压缩

复杂的教师网络复杂的学生网络 模型增强

知识蒸馏的提出

知识蒸馏更强调的是知识的迁移,而非权重的迁移。早期的工作都涉及到小网络利用大网络的输出知识(如逻辑单元和类概率)。

Hinton 等人[2]在 2015 年引入软目标(即带有参数 T 的类概率)并提出知识蒸馏概念。

其中,T 为温度系数,用来控制输出概率的软化程度.不难看出,当 T=1 时,公式(2)表示网络输出 Softmax的类概率. 当 T 为正无穷大时,Hinton 等人[2]在论文中证明了公式(2)此时表示网络输出的逻辑单元.

通过软目标,可以解决在使用逻辑单元时噪声信息作为监督信号的过拟合问题以及在使用类概率时导致负标签信息丢失等问题。

知识蒸馏的作用机制

Hinton 等人认为,学生模型在知识蒸馏的过程中通过模仿教师模型输出类间相似性的“暗知识”来提高泛化能力. 软目标携带着比硬目标更多的泛化信息来防止学生模型过拟合. 虽然知识蒸馏已经获得了广泛的应用,但是学生模型的性能通常是仅接近于教师模型. 特别地,给定学生和教师模型相同的大小却能够让学生模型的性能超越教师模型,性能越差的教师模型反倒教出了更好的学生模型.

蒸馏的知识形式

原始知识蒸馏(Vanilla Knowledge Distillation)仅仅是从教师模型输出的软目标中学习出轻量级的学生模型. 然而,当教师模型变得更深时,仅仅学习软目标是不够的. 因此,我们不仅需要获取教师模型输出的知识,还需要学习隐含在教师模型中的其它知识,比如中间特征知识.

输出特征知识

输出特征知识通常指的是教师模型的最后一层特征,主要包括逻辑单元和软目标的知识. 输出特征知识蒸馏的主要思想是促使学生能够学习到教师模型的最终预测,以达到和教师模型一样的预测性能.

中间特征知识

如果网络较深的话,单单学习教师的输出特征知识是不够的.复杂教师和简单学生模型在中间的隐含层之间存在着显著的容量差异,这导致它们不同的特征表达能力.

教师的中间特征状态知识可以用于解决教师和学生模型在容量之间存在的“代沟”(Gap)问题,其主要思想是从教师中间的网络层中提取特征来充当学生模型中间层输出的提示(Hint). 这一过程称之为中间特征的知识蒸馏,它不仅需要利用教师模型的输出特征知识,还需要使用教师模型隐含层中的特征图知识.

在网络层的迁移点上,可以隔层,逐层和逐块地将教师的中间特征知识转移到学生模型中,或者仅迁移教师模型较高的隐含层和最后一个卷积层的特征知识.

在网络层的迁移手段上,可以借助于构造的网络块使学生模型通过模仿学习来获得教师模型的中间层特征,如可学习的投影矩阵和定义的注意力映射图.

关系特征知识

关系特征指的是教师模型不同层和不同数据样本之间的关系知识. 关系特征知识蒸馏认为学习的本质不是特征输出的结果,而是层与层之间和样本数据之间的关系.

基于网络层的关系蒸馏仅关注每个样本在网络层间的关系知识,忽略了不同样本之间的关系知识,而该知识也存在于教师模型的空间结构中. 基于样本间的关系特征知识蒸馏是额外利用了不同样本之间的关系知识,即把教师模型捕捉到的数据内部关系迁移到学生模型中.

结构特征知识

结构特征知识是教师模型的完整知识体系,不仅包括教师的输出特征知识,中间特征知识和关系特征知识,还包括教师模型的区域特征分布等知识.

知识蒸馏的方法

知识合并

知识合并(Knowledge Amalgamation,KA)是将多个教师或多个任务的知识迁移到单个学生模型中,从而使其可以同时处理多个任务. 知识合并的重点是学生应该如何将多个教师的知识用于更新单个学生模型参数,并且训练结束的学生模型能处理多个教师模型原先的任务.

一种方法是将多个教师模型的特征知识进行融合,然后将所获得的融合特征作为学生模型学习参数的指导.另一种方法是学生模型同时向多个教师模型学习多个任务的特征.

多教师学习

知识合并和多教师学习(Learning from Multiple Teachers)都属于“多教师-单学生”的网络训练结构.

它们的相同点是,知识合并和多教师学习都是学习多个教师模型的知识,但是它们的目标却是不一样的. 知识合并是要促使学生模型能同时处理多个教师模型原先的任务,而多教师学习是提高学生模型在单个任务上的性能.

教师助理

教师和学生模型由于容量差异大导致它们存在着“代沟”. “代沟”既可以通过传递教师的特征知识去缓解,也可以使用教师助理(Teacher Assistant)网络去协助学生模型学习.

较早的一个工作是 Wang等人使用 GAN 的判别器充当教师助理. 该工作将学生模型当做生成器,判别器促使学生模型对输入数据生成和教师模型同样的特征分布.随后,Mirzadeh 等人使用一个中等规模的网络(介于教师和学生模型之间)充当教师助理来弥合学生和教师之间的差距,即教师助理先从教师模型中学习到知识后,再传递到学生模型中.

上述工作仅使用了教师模型的软目标,均没利用中间特征.

跨模态蒸馏

在许多实际应用中,数据通常以多种模态存在,一些不同模态的数据均是描述同一个事物或事件,我们可以利用同步的模态信息实现跨模态蒸馏(Cross Modal Distillation).

互相蒸馏

相互蒸馏(Mutual Distillation)是让一组未经训练的学生模型同时开始学习,并共同解决任务. 它是一种在线的知识蒸馏,即教师和学生模型是同时训练并更新的.

相互蒸馏避免了对强大教师模型的依赖,同时学生模型能通过相互学习受益.

在实际应用中,相互蒸馏并不一定要使用多个网络进行相互学习,也可以在同一个网络上以相互学习的方式同时训练多个分支点的特征提取器或分类器,各个分支通过补充多样化的信息来生成推理能力更强的模型.

终身蒸馏

深度学习网络在学习新任务时,对旧任务的性能就会急剧下降,这个现象被称为灾难性遗忘.这就需要使用终身学习来减轻这种影响,终身学习也称为持续学习或增量学习.

终身蒸馏就是通过知识蒸馏来保持旧任务和适应新任务的性能,其重点是训练新数据时如何保持旧任务的性能来减轻灾难性遗忘.

自蒸馏

自蒸馏(Self-Distillation)是单个网络被同时用作教师和学生模型,让单个网络模型在自我学习的过程中通过知识蒸馏去提升性能. 它也是一种在线的知识蒸馏.

自蒸馏主要分为两类。

第一类是使用不同样本信息进行相互蒸馏. 其它样本的软标签可以避免网络过度自信的预测,甚至能通过最小化不同样本间的预测分布来减少类内距离[90]. 另外一些工作使用增强样本的信息,如利用数据在不同失真状态下的特征一致性来促进类内鲁棒性学习.

另一类是单个网络的网络层间进行自蒸馏. 最通常的做法是使用深层网络的特征去指导浅层网络的学习,其中深层网络的特征包括了网络输出的软目标. 在序列特征的任务中,则是将先前帧中的知识传递给后续帧进行学习.

知识蒸馏与其它技术的融合

近几年,研究人员发现知识蒸馏结合其它主流技术通常能够提高其性能. 目前这些主流技术主要有:生成对抗网络、神经架构搜索、强化学习、图卷积、其它压缩技术、自动编码器、集成学习以及联邦学习。

生成对抗网络

知识蒸馏和 GAN 的结合就是要在知识蒸馏的学习中引入对抗性学习策略. GAN 是通过对抗性学习来生成新图像,即学习生成无法被判别器网络区分的图像。它的主要结构包括一个生成器和一个判别器,生成器用来生成尽可能接近真实数据的样本来使判别器无法辨别。

在知识蒸馏中,GAN 判别器的主要任务是区分不同网络的特征映射分布或数据分布,而生成器的主要任务是生成给定实例的相关特征映射分布或数据分布。生成器一般是学生模型或师生模型共同担任。具体来说,基于 GAN 的知识蒸馏使用判别器来实现教师和学生模型的知识趋于一致,从而使判别器无法辨别知识是来自教师还是学生模型。

在实际应用中,教师和学生模型能共同担任生成器去欺骗判别器。例如,它们在知识蒸馏的过程中生成伪标签去欺骗拥有真实标签的辨别器,即促使学生模型能够学习到教师模型所生成的伪标签。另外,GAN 可以通过传递样本的知识来提高知识蒸馏的性能,如决策边界相关知识。

神经架构搜索

NAS 在给定的搜索空间下,使用某种策略搜索出最优网络结构。与普通的 NAS 相比,基于知识蒸馏的 NAS 产生的软目标包含着更多的信息。通过利用软目标的附加信息,能够加快 NAS 搜索网络结构的速度。例如,Bashivan 等人通过评估候选网络与已知高性能教师模型内部激活特征的相似性来提高 NAS 搜索网络架构的速度。Li 等人从教师模型中提取神经结构的分块知识作为分块结构搜索的指导来提高搜索速度。

知识蒸馏产生的附加信息也能指导 NAS 搜索到最佳的学生模型框架,即提高学生模型的性能.在实际的应用中,神经网络的运行速度性能不仅取决于计算量等网络本身的消耗,还需要根据具体的部署环境. 因此一些工作在设定的资源条件约束和知识蒸馏的指导下,通过动态调整的 NAS 去挑选出最好的学生模型。

强化学习

强化学习(Reinforcement Learning)的目的是使智能体根据环境状态、行动和奖励,学习出最佳策略. 强化学习的环境在已设置完毕的情况下,使用知识蒸馏传递的知识能产生性能更好的学生智能体.

基于强化学习的知识蒸馏主要有两种目的,第一种是用来加强深度学习网络模型的策略,其主要思想是通过知识蒸馏结合一个或多个教师的策略.教师和学生模型都需要在环境的约束下,最大程度地获得学生模型的回报. 从而,学生模型能从多个教师智能体中获得更高性能的策略,不同策略的学生模型也能在相互蒸馏中继续强化策略.

第二种目的是用来获取更轻量级的网络模型.强化学习和知识蒸馏的结合能将强化学习网络模型中的策略知识迁移到轻量级的单个网络中,或利用教师的策略知识来逐步减少学生模型中的冗余.

图卷积

图卷积(Graph Convolutional Network,GCN)是以一组节点及节点间的关系为特征的卷积网络,由于其具有强大的建模能力而受到广泛的应用. 图卷积的网络模型具有拓扑结构,知识蒸馏可以将图卷积教师模型的拓扑结构知识传递到学生模型中.同时,图卷积也能促进知识迁移.

知识蒸馏主要利用了图卷积强大的建模能力,将图卷积捕捉到教师模型某些领域的知识迁移到学生模型中,如空间的几何形状,目标在空间和时间上的相互作用和多教师间的互补性知识. 另外,通过图卷积强调数据的可靠性,使学生模型专注于对可靠知识的学习.

其它压缩技术

网络参数在正常的情况下为 32 位的浮点数,也称为全精度网络. 网络量化是使用更低的精度去代替全精度的网络参数,例如使用 2 位或 8 位的整数来替代浮点数. 但是,网络量化压缩之后的准确率通常会稍微下降. 基于量化压缩的知识蒸馏方法是通过知识蒸馏来处理因量化压缩而导致的网络准确率下降问题. 通常,全精度的教师模型通过知识蒸馏来指导低精度的学生模型训练.

除了量化,其它较为常用的压缩技术如剪枝.剪枝是把网络中“不重要”的连接删除,然后微调稀疏网络以恢复准确性,其要点是减少剪枝带来的性能误差.

在现有的工作中,Bai 等人通过教师和学生的交叉蒸馏来减少逐层剪枝带来的误差. Li等人则在每个要剪枝的网络块后添加一个 1×1卷积层,并通过知识蒸馏使学生的参数与教师对齐.在其它的方法中,学生模型也可以是卷积核低秩分解后的网络. 全精度教师和低精度学生模型存在的“代沟”问题,除了上述方法之外,还可以通过它们间的预先共同训练来解决.

自动编码器

自动编码器(Autoencoder, AE)是一种无监督的神经网络模型. 由于它在压缩比和迁移学习的性能较好,已被广泛应用在降维和生成模型的训练.自动编码器通过特征的重构,从数据样本中自动学习隐含的特征,它的这一特性可协助知识蒸馏提高学生网络的性能.

在知识蒸馏的训练过程中,可以使用自动编码器实时地判断学生网络是否已经学习到丰富的特征知识.同样,知识蒸馏作为一种辅助性的技术,能帮助自动编码器学习到更具有鲁棒性的特征表示.

集成学习

集成学习(Ensemble Learning)的核心思想是“三个臭皮匠,顶一个诸葛亮”. 它使用多个网络对同一个任务进行处理,其性能通常会比单个网络好.

集成学习和知识蒸馏相融合的一个重要应用方向是:使一个简单模型的性能能够和多个集成的网络相媲美,即“多教师学习”.

此外,知识蒸馏也能用于增强具有多个学生网络组成的集成模型. 它主要是使多个学生网络通过同伴教学的方式,从头开始进行相互指导学习,最后融合成推理性能更强的集成网络.

一个集成的网络也可以通过知识蒸馏压缩为多个不同架构的学生模型,每个学生模型学习独特的知识,训练结束后的各个分支学生网络能重新组合成性能更强的集成网络.集成模型融合了各个学生的多样性信息,并能通过知识蒸馏继续强化其性能

联邦学习

联邦学习(Federated Learning)是一种保障数据隐私的模型训练方法,能够打破传统企业等机构的数据边界,在医疗、金融等行业中具有广泛的应用前景. 联邦学习支持数据在本地训练,训练后局部模型的参数通过加密机制被发送到服务器. 服务器聚合所有参与者的局部模型,然后将更新好的全局模型通过加密机制再发送给每个参与者进行下一次训练,直到全局损失函数收敛或达到所需的训练精度为止. 然而,各个参与者的局部模型与服务器的全局模型之间需要频繁交换训练信息将导致通信开销剧增. 如果参与者的带宽有限或通信成本高昂,会导致联邦学习效率低下,甚至无法进行.

知识蒸馏可用于减少分布式的联邦学习训练时所占用的带宽,它在联邦学习的各个阶段,通过减少部分参数或者样本的传输的方式实现成本压缩.一些工作通过只传输模型的预测信息而不是整个模型参数,各个参与者利用知识蒸馏,学习服务器聚合全局模型的预测信息来提高性能. 知识蒸馏和联邦学习通过只传输各个局部模型和全局模型的预测值,可以减少网络带宽、允许模型异构和保护数据的隐私.

知识蒸馏的应用进展

知识蒸馏的最初目的是压缩深度学习网络模型,这在资源受限的终端设备上具有广泛的应用.但随着研究的新进展,知识蒸馏不仅可以用于压缩模型,还可以通过神经网络的互学习、自学习等优化策略和无标签、跨模态等数据资源对模型的性能增强也具有显著的提升效果. 目前知识蒸馏的主要应用领域有计算机视觉、自然语言处理、语音识别、推荐系统、信息安全、多模态数据和金融证券. 知识蒸馏在计算机视觉、自然语言处理、语音识别和推荐系统上的应用根据其目的的不同,可以分为模型压缩和模型增强. 模型压缩是为了获得简单而高效的网络模型,以方便部署于资源受限的设备. 而模型增强通常是利用其它资源(如无标签或跨模态的数据)来获取复杂的高性能网络.

计算机视觉

计算机视觉的模型压缩

计算机视觉领域有目标分类,目标检测和目标分割这三个主要的任务. 根据任务的研究热度,本小节将详细分析深度估计、密集预测(Dense Prediction)和低分辨率网络.

深度估计是估计图像中每个像素相对于拍摄源的距离,它在 3D 重构、自动驾驶和姿势估计等问题上具有重要的作用. 单目深度估计是仅通过一张或者一个视角下的 RGB 图像来评估深度,由于成本低和设备便利等优点而受到广泛的关注. 虽然单个RGB 图像可能会有无数个真实的场景,但是人类却能根据自身丰富的经验来推断出单个图片的场景深度. 根据这一基本事实,可以将丰富经验的教师模型的知识迁移到单个 RGB 图像的场景深度估计中.基于知识蒸馏的单目深度估计的核心思想是通过利用强大教师模型的知识重构出单个 RGB 图像的深度.

密集预测是预测出图像中每个像素点标签的任务统称,如语义分割和目标检测. 基于知识蒸馏的密集预测是将每个像素充当软标签并对其单独进行知识蒸馏,但是由于需要空间上下文的结构语义,密集预测通常被认为是结构化预测的问题. 样本内部的特征关系可以作为结构特征知识. 多种蒸馏的知识形式能充当结构特征知识,例如师生网络间的中间特征,关系特征和输出特征的结构化知识能应用于目标分割.

高分辨率的大尺寸图片包含着目标更详细的信息,因而可以使深度学习网络获得更好的性能. 但是高分辨率图片在深度学习网络中的计算量和内存量是巨大的,导致在资源受限的边缘计算设备上运行困难. 同时,在高分辨率图片上训练的网络模型无法用于预测低分辨率的图片. 因此,使用低分辨率的小尺寸图片作为输入进行训练出来的网络模型在多种场合下都有使用的价值. 借助于知识蒸馏的方法,可以将高分辨率的复杂教师模型所学习到的知识迁移到低分辨率的高效学生模型中.

计算机视觉的模型增强

知识蒸馏在计算机视觉上的应用除了可以获取到高效的网络模型外,还可以通过加入其它知识来提高某个复杂网络的性能. 另外有一些工作关注于利用任务的相关性来实现模型的增强.

自然语言处理

自然语言处理的模型压缩

高效的自然语言处理(Natural Language Processing, NLP)网络模型主要包括高效的预训练语言模型和压缩的 NLP 任务. 预训练语言模型是通过大规模文本语料库训练而来. 由于预训练的语言模型包含丰富的句法和语义等信息,只需要使用少量的数据集对特定任务进行微调就能获得高性能的 NLP 模型. 因此在NLP 领域,预训练语言模型具有重要的地位并取得了一些显著的进展,如 BERT. 但是这些预训练语言模型是计算密集的而难以应用于资源受限的环境,因此需要对其进行压缩以满足具体任务的要求. BERT从提出开始就在 11 项 NLP 基准任务上取得了最高的性能,从而使得 BERT 成为热门的研究方向. 表 5中归纳了基于知识蒸馏的方法来加速 BERT 模型的主流工作,PD的对比模型为 BERT_LARGE,其余对比模型为

BERT_BASE. 表中的“-”表示作者在原文中没有显示的,他们的一些工作要么只显示模型大小,要么只显示参数量. 然而参数量和模型大小并不直接等价,即模型大小并不是只存储参数量.

高效的 NLP网络既可以通过高效预训练语言模型的迁移学习获得,也可以通过压缩高性能的复杂NLP 教师模型来获得. 这里压缩 NLP 任务只介绍关于知识蒸馏方法的,即通过模仿高性能复杂 NLP 教师模型的知识来获得高效的 NLP 学生模型.另外,BERT 还可以充当教师模型来指导轻量级语言模型的训练,如mBERT直接用于获取轻量级的多语言序列标记模型[150]和多语言命名实体识别模型.

自然语言处理的模型增强

与计算机视觉上的应用类似,可以使用知识蒸馏的方法来提高某个具体 NLP 任务的性能. 表 6 给出了这部分工作所使用的主流方法和类别.

语音识别

语音识别的模型压缩

语音识别主要是依靠 RNN(Recurrent Neural Network)的序列化建模,尤其是 LSTM(Long Short Term Memory)网络. 然而 LSTM 是计算量密集型的,导致在低资源的环境下很难使用. 因此,一个重要的研究方向是使用知识蒸馏压缩 LSTM 网络.表 7 给出了这部分工作所使用的主流方法和类别.

RNN 的计算是顺序的,即 RNN 的相关算法只能从从左到右或从右到左的单向运算,这限制了模型的并行能力和难以缓解特别长期的依赖问题.Transformer提出使用注意力机制在长时序列建模上的优势来解决 RNN 顺序计算的上述两个问题.由于预测的精度高等优点,Transformer 已成为最热门的研究方向之一,如 BERT. 然而,Transformer的参数量大会增加内存的消耗并减慢了推理的过程. 为方便Transformer 的部署,Aguilar 等人把教师的多个 Transformer 层的特征知识压缩到学生的单个 Transformer 层中. Gaido 等人通过引入自适应层来压缩 Transformer 结构.除了将大规模语音识别网络的知识迁移到小型语音识别网络中之外,基于跨模态的知识蒸馏能将其它领域的知识用于协助小型语音识别网络的学习. 在利用语音教师模型知识的方式上,结合其它的技术方法能提高学生模型的性能,如共同利用知识蒸馏和量化来压缩声学事件检测模型.

语音识别的模型增强

同样,可以使用知识蒸馏的方法来提高某个具体语音识别任务的性能. 表 8 给出了这部分工作所使用的主流方法和类别.

知识蒸馏的研究趋势展望

知识蒸馏是一个新兴的研究领域,它仍有许多值得深入探索和亟待解决的问题. 在这一节中,我们提出一些值得进一步深入探讨的研究点,也是我们今后需要解决完善的研究方向.

如何确定何种知识是最佳的. 知识蒸馏中的知识是一个抽象的概念,网络参数,网络的输出和网络的中间特征等都可以理解为知识. 但是何种知识是最佳的,或者哪些知识以互补的方式能成为最佳的通用知识表示?为了回答这个问题,我们需要了解每种知识以及不同种类组合知识的作用. 比如说,基于特征的知识通常用于模仿教师特征产生的过程,基于关系的知识常用于捕获不同样本之间或网络层之间特征的关系. 当教师和学生的模型容量(“代沟”)较小的时候,学生只模仿教师的软目标就可以获得有竞争力的性能. 而当师生的“代沟”较大时,需要将多种蒸馏的知识形式和方法结合来表示教师模型. 虽然能明白多种知识的组合方式通常能提高学生网络的性能,但是使用哪些知识形式,方法和技术的组合是最优的,还尚无定论.

如何确定何处的知识是最佳的. 一些工作随机选择中间网络的某层特征作为知识,比如FitNets将教师前几层的网络特征作为特征蒸馏的位置. 然而他们都没有提供一个理由,即为什么能够成为代表性知识. 这主要是由于教师和学生模型结构的不一致导致的,即教师模型通常比学生模型拥有更多的网络层. 因此,需要筛选教师模型中最具有代表性的特征. 然而教师模型中哪些特征层是最具有代表性的?这也是一个未解决的问题. 在基于关系的知识蒸馏中,也一样无法解释该选择哪些层的关系知识作为学生模仿的对象. 如 FSP 矩阵随机选择教师模型的两个网络层作为关系蒸馏的位置. 关系知识蒸馏是容量无关的,即关系蒸馏仅仅需要获取的是网络层间或样本间的关系知识. 因此这不是师生间的“代沟”问题,而是归咎于知识其实是一个“黑盒”问题.

如何定义最佳的师生结构. 知识蒸馏传递的并不是参数,而是抽取到的知识. 因此知识蒸馏是网络架构无关的,即任何学生都可以向任何教师学习. 通常,容量更大的学生模型可以学习更多的知识,但复杂度过大会延长推理的时间. 容量更大的教师模型隐含着较多的知识和更强的能力,但是并非能力越强的教师就能产生更佳的学生模型.同时,每一个教师模型都有一个最强学生结构[100].因此,我们只能在给定的教师模型的前提下,找到最佳的学生模型. 然而在未指定教师模型的情况下,目前还无法确定最佳的学生模型.

如何衡量师生间特征的接近程度. 知识蒸馏是要将教师网络中的知识迁移到学生模型中,迁移效果的好坏最终可以通过学生网络性能来体现.然而在网络训练的过程中,只能通过损失函数去判断教师和学生之间特征的接近程度. 因此需要提前设计好知识蒸馏的损失函数,如 KL 散度、均方误差(Mean Squared Error,MSE)和余弦相似性. 而损失函数的选取受算法和离群点等因素的影响,并且,不同损失函数的作用范围是不一样的. 例如,通过KL 散度衡量的两个随机分布上的相似度是非对称的. 余弦相似性强调两个向量的特征在方向上的差异,却没有考虑向量大小. MSE 在高维特征中的作用不明显,且很容易被随机特征混淆. 因此,衡量师生间特征接近程度的方法是多样化的,我们需要根据特定的问题和场景选取最合适的损失函数.

蒸馏的知识形式、方法和融合技术还需要深入探索. 原始知识蒸馏将类间的关系信息作为知识,但这在“代沟”较大的师生网络中效果不佳. 为了解决这一问题,后续的研究者寻找不同形式的“知识”来充实知识的内涵,如关系知识. 其知识的来源应该是多样化的,可以来自于单个或多个的样本和网络本身. 同样,知识蒸馏的方法和融合技术也能缓解甚至解决师生间的“代沟”问题,它们强调充分地利用知识来提高模型的表征能力. 新的知识形式、方法和融合技术的发现可能会伴随着新的应用场景,这将丰富知识蒸馏的理论框架和实践的应用.

模型压缩和模型增强的深度融合. 模型压缩是将强大的复杂教师模型中的“知识”迁移到简单的学生模型中以满足低资源设备的应用要求,而模型增强用于获取高性能的复杂网络. 模型压缩和模型增强的融合是将教师模型中的“特权信息”迁移或继续强化轻量级学生模型的性能. 例如,Liu 等人[206]通过从文本翻译模型中迁移“特权信息”来改进轻量级的语音翻译模型. 在未来的工作中,甚至能将无标签或其它领域数据的“特权信息”来继续加强一个轻量级学生模型的性能.

知识蒸馏在数据样本增强上的应用. 深度学习是数据驱动型的,往往需要大规模的数据集才能避免过度拟合. 由于隐私和法律等原因,在一些领域上,通常无法获取大规模的原始数据集,如医疗数据. 知识蒸馏需要足够的数据,才能将教师网络中的知识迁移到学生网络中. 换句话说,数据是连接教师网络和学生网络的桥梁. 先前的研究已经证明了知识蒸馏在数据样本增强上的广阔应用前景,如通过知识蒸馏产生原始数据集的近似样本、使用其它相关数据的知识来减轻对目标数据集的依赖以及教师和学生间部分网络的共同训练来提高具有小样本学生网络的性能. 未来的工作需要继续探索知识蒸馏在数据样本增强上的应用场景和高效的蒸馏方法来实现小样本学习(Few-Shot Learning)或零样本学习(zero-shot learning).

知识蒸馏在数据标签上的应用. 给数据上标签需要特定领域的专业知识、大量的时间和成本.可以利用知识蒸馏减少标注训练数据的麻烦,解决数据标签的问题. 如果该领域存在着强大的教师网络,能通过知识蒸馏给无标签的数据增加注释. 具体地,教师网络对未标记数据进行预测,并使用它们的预测信息充当学生模型数据的自动标注.以无标签数据作为输入的教师网络会产生软标签,这恰好能为学生网络提供学习的指导信息. 即使该领域没有强大的教师网络,也可以通过跨模态知识蒸馏,将其它领域的知识充当无标签数据的监督信号. 因此,知识蒸馏能够减少对数据标签的依赖,需要继续研究它在半监督或无监督学习上的应用.