论文阅读:Knowledge Distillation: A Survey 知识蒸馏综述2021
近年来,深度神经网络在工业界和学术界都取得了成功,尤其是在计算机视觉任务中。深度学习的巨大成功主要归功于它的可扩展性,可以对大规模数据进行编码,并操纵数十亿个模型参数。然而,在资源有限的设备(如手机和嵌入式设备)上部署这些繁琐的深度模型是一个挑战,这不仅是因为计算复杂度高,而且还因为存储需求大。为此,人们开发了各种模型压缩和加速技术。作为模型压缩和加速的一种典型类型,知识蒸馏有效地从大型教师模型中学习小型学生模型。它受到了社会各界的迅速关注。本文从知识类别、训练方案、提取算法和应用等方面对知识蒸馏进行了综述。此外,简要回顾了知识蒸馏的挑战,并对未来的研究进行了讨论和展望。
关键词 深度神经网络·模型压缩·知识蒸馏·知识转移·师生结构。
在过去几年中,深度学习一直是人工智能许多成功的基础,包括在计算机视觉(Krizhevsky et al.,2012)、强化学习(Silver et al.,2016)和自然语言处理(Devlin et al.,2019)中的各种应用。借助许多最新技术,包括残余连接(He等人,20162020)和批量标准化(Ioffe和Szegedy,2015),很容易在强大的GPU或TPU集群上训练具有数千层的非常深层模型。例如,在拥有数百万张图像的流行图像识别基准上训练ResNet模型只需不到十分钟(Deng等人,2009年;Sun等人,2019年);训练一个强大的语言理解BERT模型不需要超过一个半小时(Devlin等人,2019年;You等人,2019年)。大规模深部模型已经取得了巨大的成功,但是巨大的计算复杂性和巨大的存储需求使得在实时应用中部署它们成为一个巨大的挑战,尤其是在资源有限的设备上,如视频监控和自动驾驶汽车。
为了开发高效的深层模型,最近的工作通常集中于 1)深度模型的高效构建块,包括深度可分离卷积,如MobileNets(Howard等人,2017;Sandler等人,2018)和ShuffleNet(Zhang等人,2018a;Ma等人,2018);2)以下类别的模型压缩和加速技术(Cheng等人,2018)。
参数修剪和共享:这些方法侧重于从深度神经网络中去除不重要的参数,而不会对性能产生任何显著影响。这一类别进一步分为模型量化(Wu等人,2016年)、模型二值化(Courbariaux等人,2015年)、结构矩阵(Sindhwani等人,2015年)和参数共享(Han等人,2015年;Wang等人,2019f)。
低秩因子分解:这些方法通过矩阵和张量分解识别深层神经网络的冗余参数(Yu等人,2017年;Denton等人,2014年)。
转移紧凑卷积滤波器:这些方法通过转移或压缩卷积滤波器来去除不必要的参数(翟等人,2016)。
知识蒸馏(KD):这些方法将知识从一个较大的深层神经网络提取到一个较小的网络中(Hinton et al.,2015)。
关于模型压缩和加速的全面综述不在本文讨论范围之内。本文的重点是知识蒸馏,这一点越来越受到研究界的关注。大型深部模型在实践中往往会取得良好的性能,因为在考虑新数据时,过度参数化会提高泛化性能(Brutzkus and Globerson,2019;Allen Zhu等人,2019;Arora等人,2018;Zhang等人,2018;Tu等人,2020)。在知识蒸馏中,小型学生模型由大型教师模型监督(Bucilua等人,2006年;Ba和Caruana,2014年;Hinton等人,2015年;Urban等人,2017年)。关键问题是如何将知识从教师模式转移到学生模式。图1显示了知识蒸馏的一般师生框架。
尽管在实践中取得了巨大的成功,但关于知识蒸馏的理论或实证理解的著作并不多(Cheng等人,2020年;Phuong和Lampert,2019年;Cho和Hariharan,2019年)。具体而言,为了理解知识蒸馏的工作机制,Phuong& Lampert获得了一个理论上的理由,证明了在深层线性分类器的情况下,学习蒸馏的学生网络的快速收敛具有泛化界(Phuong and Lampert,2019)。这个理由回答了学生学习的内容和速度,并揭示了决定蒸馏成功的因素。成功的蒸馏依赖于数据几何、蒸馏目标的优化偏差和学生分类器的强单调性。Cheng等人量化了从深层神经网络中间层提取的视觉概念,以解释知识蒸馏(Cheng等人,2020年)。Cho& Hariharan对知识蒸馏的有效性进行了详细的实证分析(Cho和Hariharan,2019)。实证结果表明,由于模型能力差距,较大的模型可能不是更好的教师(Mirzadeh等人,2019年)。实验还表明,蒸馏对学生的学习有负面影响。Cho和Hariharan(2019年)没有对不同形式的知识蒸馏进行实证评估,这些知识蒸馏涉及知识、蒸馏以及师生之间的相互影响。还探索了知识蒸馏用于标签平滑、评估教师的准确性以及获得最佳输出层几何结构的先验知识(Tang等人,2020年)。
用于模型压缩的知识蒸馏类似于人类学习的方式。受此启发,最近的知识蒸馏方法已经扩展到师生学习(Hinton等人,2015年)、相互学习(Zhang等人,2018b)、辅助教学(Mirzadeh等人,2019年)、终身学习(翟等人,2019年)和自学习(袁等人,2019年)。大多数知识蒸馏的扩展集中于压缩深层神经网络。由此产生的轻量级学生网络可以轻松地部署在视觉识别、语音识别和自然语言处理(NLP)等应用中。此外,在知识蒸馏中,知识从一个模型转移到另一个模型可以扩展到其他任务,例如对抗性攻击(Papernot等人,2016年)、数据增强(Lee等人,2019a;Gordon和Duh,2019年)、数据隐私和安全(Wang等人,2019a)。
在本文中,我们对知识蒸馏进行了全面的综述。本次综述的主要目的是1)概述知识蒸馏,包括动机背景、基本符号和公式,以及几种典型的知识、蒸馏和算法;2) 回顾知识蒸馏的最新进展,包括算法和在不同现实场景中的应用;3)解决一些障碍,并基于知识转移的不同视角提供知识蒸馏的见解,包括不同类型的知识、训练方案、蒸馏算法和结构,以及应用。本文的结构如图2所示。
在本节中,我们首先介绍了知识蒸馏的背景,然后回顾了制定普通知识蒸馏方法的符号(Hinton et al.,2015)。
深度神经网络已经取得了显著的成功,尤其是在具有大规模数据的真实场景中。然而,由于设备的计算能力和内存有限,在移动设备和嵌入式系统中部署深度神经网络是一个巨大的挑战。为了解决这个问题,Bucilua等人(2006年)首先提出了模型压缩,以将信息从大型模型或模型集合传输到训练小型模型,而不会导致精度显著下降。其主要思想是,学生模型模仿教师模型以获得有竞争力的甚至优越的表现。从大模型学习小模型后来被推广为知识蒸馏(Hinton等人,2015)。
一个普通的知识蒸馏框架通常包含一个或多个大型预训练教师模型和一个小型学生模型。教师模型通常比学生模型大得多。其主要思想是在教师模型的指导下,训练一个高效的学生模型,以获得相当的准确性。来自教师模型的监督信号(通常指教师模型学习到的“知识”)有助于学生模型模仿教师模型的行为。在一个典型的图像分类任务中,逻辑(Logits)(例如深层神经网络最后一层的输出)被用作教师模型知识的载体,而教师模型不是由训练数据样本明确提供的。例如,猫的图像被错误地归类为狗的概率非常低,但这种错误的概率仍然比将猫误认为汽车的概率高很多倍(Liu等人,2018c)。另一个例子是手写数字2的图像更类似于数字3,而不是数字7。这种由教师模型学习的知识被称为暗知识(dark knowledge)(Hinton等人,2015)。
在vanilla知识蒸馏中转移暗知识的方法如下所述。给定一个logits向量 z z z作为深度模型最后一个完全连接层的输出,例如 z i z_i zi是第i类的logit,然后输入属于第i类的概率 p i p_i pi可以通过softmax函数估计,
因此,教师模型得到的软目标预测包含了暗知识,可以作为指导者将知识从教师模型转移到学生模型。类似地,one-hot label被称为硬目标。关于软目标和硬目标的直观示例如图3所示。此外,引入温度因子来控制每个软目标的重要性。
温度越高,各等级的概率分布越软。具体来说,T→ ∞ 所有类别都有相同的概率。T→ 0,软目标成为一个热门标签,即硬目标。教师模型中的软目标和ground truth标签对于提高学生模型的表现都非常重要(Bucilua等人,2006年;Hinton等人,2015年;Romero等人,2015年),这两个模型分别用于蒸馏损失和学生损失。
蒸馏损失定义为匹配教师模型和学生模型之间的logits,如下所示。
其中, z t z_t zt和 z s z_s zs分别是教师和学生模型的logits。教师模型的logits与学生模型的logits的交叉熵梯度相匹配。关于logit z s t z_{st} zstcan的交叉熵梯度可以计算为
如果温度T比logits的温度高得多,公式(4)左侧可以根据泰勒级数近似。
如果进一步假设每个转移训练样本的logit为零均值(即 ∑ j z s t = ∑ j z t j = 0 \sum_jz_{st}=\sum_jz_{tj}=0 ∑jzst=∑jztj=0),则等式(5)可简化为
因此,根据式(6),蒸馏损失等于在高温条件下匹配教师模型和学生模型之间的Logit和零均值Logit,即最小化( z s i − z t i z_{si}-z_{ti} zsi−zti)。因此通过在高温下匹配logtis,教师模型可以传递非常有用的知识信息来训练学生模型。
学生损失被定义为ground truth标签和学生模型软logits之间的交叉熵:
其中,y是一个ground truth向量,其中只有一个元素为1,表示转移训练样本的ground truth标签,其他元素为0。在蒸馏和学生损失中,两者都使用student模型的相同Logit,但温度不同。学生损失中的温度T=1,蒸馏损失中的温度T=t。最后,普通知识蒸馏的基准模型是蒸馏和学生损失的结合:
其中x是转移集上的训练输入,W是学生模型的参数,α和β是调节参数。为了便于理解知识蒸馏,图4显示了教师和学生模型结合的普通知识蒸馏的具体架构。在图4所示的知识提取中,教师模型总是先经过预训练,然后使用来自经过训练的教师模型的知识来训练学生模型。事实上,这就是离线知识的蒸馏。此外,只使用来自预训练教师模型软目标的知识来训练学生模型。当然,还有其他类型的知识和蒸馏将在下一节中讨论。
在本节中,我们将重点介绍用于知识蒸馏的不同类别的知识。香草(vanilla)知识蒸馏使用大型深度模型的logits作为教师知识(Hinton等人,2015年;Kim等人,2018年;Ba和Caruana,2014年;Mirzadeh等人,2019年)。中间层的激活、神经元或特征也可用作指导学生模型学习的知识(Romero等人,2015年;Huang和Wang,2017年;Ahn等人,2019年;Heo等人,2019c;Zagoruyko和Komodakis,2017年)。不同激活、神经元或样本对之间的关系包含教师模型学习到的丰富信息(Yim等人,2017年;Lee和Song,2019年;Liu等人,2019f;Tong和Mori,2019年;Yu等人,2019年)。此外,教师模型的参数(或层之间的连接)也包含另一种知识(Liu等人,2019c)。我们将知识分为以下几类:基于响应的知识、基于特征的知识和基于关系的知识。图5显示了教师模型中不同知识类别的直观示例。
基于响应的知识(Response)通常指教师模型最后一个输出层的神经响应。其主要思想是直接模拟教师模型的最终预测。基于响应的知识提取是一种简单而有效的模型压缩方法,在不同的任务和应用中得到了广泛的应用。最流行的基于响应的图像分类知识称为软目标(Ba和Caruana,2014;Hinton等人,2015)。基于响应的知识可用于不同类型的模型预测。例如,目标检测任务中的响应可能包含logit和边界框的偏移量(Chen等人,2017)。在语义地标定位任务中,例如人类姿势估计,教师模型的响应可能包括每个地标的热图(Zhang等人,2019a)。最近,基于响应的知识得到了进一步探索,以解决ground truth标签作为条件目标(Meng等人,2019年)。
基于响应的知识的概念简单易懂,尤其是在“暗知识”的背景下。从另一个角度来看,软目标的有效性类似于标签平滑(Kim和Kim,2017),即两者都是有效的正则化器(Muller等人,2019年;Ding等人,2019年)。此外,基于响应的知识也可以通过标签平滑来增强。
深度神经网络擅长学习多个层次的特征表示,并具有越来越高的抽象性。这被称为表征学习(Bengio等人,2013年)。最后一层的输出和中间层的输出,即特征图,都被用作指导学生模型训练的知识。
Fitnets(Romero et al.,2015)首次引入了中间表示法,以提供改进学生模型训练的提示。其主要思想是直接匹配教师和学生的特征激活。受此启发,提出了多种其他方法来间接匹配特征(Zagoruyko和Komodakis,2017年;Passalis和Tefas,2018年;Kim等人,2018年;Heo等人,2019c)。具体而言,Zagoruyko和Komodakis(2017)从原始特征图中衍生出了一个“注意力图”,以表达知识。Huang和Wang(2017)利用神经元选择性转移对注意力图进行了推广。Passalis和Tefas(2018)通过匹配特征空间中的概率分布来转移知识。为了更容易转移教师知识,Kim等人(2018年)引入了所谓的“因素”,作为一种更容易理解的中间表征形式。最近,Heo等人(2019c)提出利用隐藏神经元的激活边界进行知识转移。有趣的是,教师模型提示层的参数共享以及基于响应的知识也被用作教师知识(Zhou等人,2018)。表1总结了基于特征的知识类别。
基于响应和基于特征的知识都使用教师模型中特定层的输出。基于关系的知识进一步探索了不同层和数据样本之间的关系。为了探索不同特征图之间的关系,Yim et al.(2017)提出了一种求解流程(FSP),该流程由两层之间的Gram矩阵定义。FSP矩阵总结了特征图对之间的关系。它是使用两层特征之间的内积来计算的。利用特征图之间的相关性作为提取的知识,提出通过奇异值分解进行知识提取,以提取特征图中的关键信息(Lee et al.,2018)。为了使用来自多个教师的知识,张和彭(2018)分别使用每个教师模型的logits和特征作为节点,形成了两个图。具体而言,在知识转移之前,不同教师的重要性和关系通过逻辑图和表示图进行建模(Zhang和Peng,2018)。Lee和Song(2019)提出了从内部数据关系中提取基于图的知识。Park等人提出了一种关系知识蒸馏方法(Park等人,2019年)。
传统的知识转移方法往往涉及个体知识的蒸馏。教师的个人软目标被直接蒸馏为学生目标。事实上,提取的知识不仅包含特征信息,还包含数据之间的相互关系。Liu等人通过实例关系图提出了一种鲁棒有效的知识提取方法(Liu等人,2019f)。实例关系图中的知识转移包含实例特征、实例关系和跨层特征空间转换。基于流形学习的思想,通过特征嵌入学习学生网络,保留了教师网络提示层中特征表示位置的信息(Chen等人,2020b)。通过特征嵌入,将教师网络中数据的相似性转移到学生网络中。Tung和Mori提出了一种保持相似性的知识提取方法(Tung和Mori,2019)。特别是,由教师网络中输入对的相似激活产生的相似性保持知识被转移到学生网络中,并保留成对的相似性。Peng等人提出了一种基于相关性同余的知识提取方法,其中提取的知识既包含实例级信息,也包含实例之间的相关性(Peng等人,2019a)。使用相关同余进行蒸馏,学生网络可以学习实例之间的相关性。
蒸馏出的知识可以从其他角度进行分类,例如数据的结构化知识(Liu等人,2019f;Chen等人,2020b;Tong和Mori,2019;Peng等人,2019a;Tian等人,2020),关于输入特征的特权信息(Lopez-Paz等人,2015;Vapnik和Izmailov,2015),等等。表2总结了基于关系的知识的类别。
![在这里插入图片描述](https://img-blog.csdnimg.cn/1e0a37d68c954359ad20f1fcbfb66846.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow
在本节中,我们将讨论教师和学生模型的训练方案(即蒸馏方案)。根据教师模型是否与学生模型同时更新,知识蒸馏的学习方案可直接分为三大类:离线蒸馏、在线蒸馏和自蒸馏,如图6所示。
以前的大多数知识提取方法都是离线工作的。在香草知识蒸馏(Hinton等人,2015年)中,知识从预先训练的教师模型转移到学生模型。因此,整个训练过程分为两个阶段,即:1)首先在一组训练样本上训练大型教师模型,然后再蒸馏;2)教师模型用于以logit或中间特征的形式提取知识,然后用于指导蒸馏过程中学生模型的训练。
离线蒸馏的第一阶段通常不作为知识蒸馏的一部分进行讨论,即假设教师模型是预定义的。很少有人关注教师模式的结构及其与学生模式的关系。因此,离线方法主要集中在改进教师的不同部分知识转移,包括知识设计(Hinton et al.,2015;Romero et al.,2015)和匹配特征或分布的损失函数(Huang和Wang,2017;Passalis和Tefas,2018;Zagoruyko和Komodakis,2017;Mirzadeh et al.,2019;Li et al.,2018;Heo et al.,2019b;Asif et al.,2019)。离线方法的主要优点是它们简单且易于实现。例如,教师模型可能包含一组使用不同软件包训练的模型,这些软件包可能位于不同的机器上。知识可以提取并存储在缓存中。
显然,离线蒸馏方法通常采用单向知识转移和两阶段训练过程。然而,离线蒸馏需要一个复杂的高容量教师网络,需要耗费大量的训练时间和大量的训练数据,而且蒸馏前教师和学生之间的能力差距总是存在的。
尽管离线蒸馏方法简单有效,但离线蒸馏中的一些问题已经引起了研究界越来越多的关注(Mirzadeh等人,2019年)。为了克服离线蒸馏的局限性,提出了在线蒸馏来进一步提高学生模型的性能,尤其是在没有大容量高性能教师模型的情况下(Zhang等人,2018b;Chen等人,2020a)。在在线蒸馏中,教师模型和学生模型都是同时更新的,整个知识蒸馏框架是端到端可训练的。
人们提出了多种在线知识提炼方法,尤其是在过去两年(张等人,2018b;陈等人,2020a;朱和龚,2018;谢等人,2019;阿尼尔等人,2018;金等人,2019b;周等人,2018)。具体而言,在深度互学习中(Zhang等人,2018b),多个神经网络以协作的方式工作。在训练过程中,任何一个网络都可以是学生模型,其他模型可以是教师。Chen等人(2020a)进一步将辅助同伴和组长引入深度相互学习,以形成一组不同的同伴模型。为了降低计算成本,朱和龚(2018)提出了一种多分支体系结构,其中每个分支表示一个学生模型,不同分支共享同一主干网络。Kim等人(2019b)引入了一个特征融合模块来构建教师分类器,而不是使用Logit集合。Xie et al.(2019)用廉价的卷积运算替换卷积层,形成学生模型。Anilet等人利用在线蒸馏来训练大规模分布式神经网络,并提出了一种在线蒸馏的变体,称为协同蒸馏(Anil等人,2018)。并行协同辨识训练具有相同体系结构的多个模型,任何一个模型都是通过转移其他模型的知识来训练的。最近,提出了一种在线对抗性知识提取方法,通过鉴别器使用来自类别概率和特征图的知识同时训练多个网络(Chung等人,2020)。
在自蒸馏中,教师和学生模型采用相同的网络(袁等)。2019年;张某等人。,2019b;侯等。2019年;Yang等人。,2019b;Yun等人。2019年;Hahn和Choi,2019年;Lee等人。,2019a)。这可以看作是在线蒸馏的一个特殊案例。具体来说,张某等人。提出了一种新的自蒸馏方法,将网络中较深部分的知识蒸馏到其浅段(Zhang等人)。,2019b)。类似于自蒸馏(Zhang等人)。,2019b)提出了一种自注意精馏方法用于车道检测(侯等)。2019年)。该网络利用自身层的注意图作为底层的蒸馏目标。快照蒸馏是自蒸馏的一种特殊变体,在这种变体中,网络早期的知识(教师)被转移到其后期(学生)中,以支持同一网络中的监督训练过程(Yang等人)。,2019b)。
袁等最近提出了另外三种有趣的自蒸馏方法。(2019);Hahn和Choi(2019)andYun等人。(2019年)。元等。在分析标签平滑正则化的基础上,提出了无教师知识蒸馏方法(袁等)。2019年)。Hahn和Choi提出了一种新的自知识蒸馏方法,其中自知识由预测概率组成,而不是传统的软概率(Hahn和Choi,2019)。这些预测概率由训练模型的特征表示来定义。它们反映了特征嵌入空间中数据的相似性。Yunet al。提出了类内自知识蒸馏方法,以匹配同一模型中同一源内样本和增强样本之间训练模型的输出分布(Yun等人)。2019年)。此外,自蒸馏提议的贝利等人。(2019a)数据增强采用自知增强,并将增强的自知识提取到模型本身。同时,采用自蒸馏法对具有相同结构的深部模型(教师或学生网络)进行了逐一优化(Furranello等人)。2018年;Baghinezzhad等人。2018年)。每个网络都使用教师优化来提取前一个网络的知识。
为了进一步直观地理解蒸馏、离线、在线和自蒸馏,也可以从人类的教师学生学习的角度进行总结。离线蒸馏是指知识渊博的教师教给新生知识;在线蒸馏是指师生在教师的主要监督下相互学习;自蒸馏是指学生在没有老师的情况下自主学习知识。而且,就像人类学习一样,这三种蒸馏方式由于自身的优势可以相互补充。
在知识提炼中,师生结构是形成知识转移的一般载体。换句话说,教师和学生之间知识获取和提炼的质量也取决于如何设计教师和学生网络。就人类的学习习惯而言,我们希望学生能找到合适的老师。因此,在知识提炼过程中,如何选择或设计合适的教师和学生结构是一个非常重要但又非常困难的问题。最近,教师和学生的模型设置几乎都是在蒸馏过程中预先固定不变的尺寸和结构,从而容易造成模型容量的差距。然而,如何具体设计教师和学生的体系结构,以及为什么他们的体系结构是由这些模型设置决定的,这些几乎是缺失的。在本节中,我们将讨论教师模型和学生模型结构之间的关系,如图7所示。
知识提炼之前是为了压缩一组深层神经网络而设计的(Hinton等人,2015)。深度神经网络的复杂性主要来自两个维度:深度和宽度。通常需要将知识从更深更广的神经网络转移到更浅更薄的神经网络(Romero et al.,2015)。学生网络通常被选择为:1)教师网络的简化版本,每层的层次和通道更少(Wang等人,2018a;朱和龚,2018);或2)教师网络的量化版本,其中网络的结构得以保留(Polino等人,2018年;Mishra和Marr,2017年;Wei等人,2018年;Shin等人,2019年);或3)具有高效基本操作的小型网络(Howard等,2017;Zhang等,2018a;Huang等,2017);或4)具有优化的全局网络结构的小型网络(Liu等人,2019h;Xie等人,2020;Gu和Tresp,2020);或5)与教师相同的网络(Zhang等人,2018b;Furlanello等人,2018)。
大型深层神经网络和小型学生神经网络之间的模型容量差距会降低知识转移(Mirzadeh等人,2019年;Gao等人,2020年)。为了有效地将知识转移到学生网络中,已经提出了各种方法来控制模型复杂性的降低(Zhang等人,2018b;Nowak和Corso,2018;Crowley等人,2018;Liu等人,2019a,h;Wang等人,2018a;Gu和Tresp,2020)。Mirzadeh等人(2019年)引入了一名教师助理,以缓解教师模式和学生模式之间的训练差距。剩余学习进一步缩小了差距,即使用辅助结构来学习剩余误差(Gao等人,2020)。另一方面,最近的几种方法也关注于最小化学生模型和教师模型的结构差异。例如,Polino等人(2018)将网络量化与知识提炼相结合,即学生模型是教师模型的小型量化版本。Nowak和Corso(2018)提出了一种结构压缩方法,将多层学习到的知识转移到单层。Wang等人(2018a)在保留感受野的同时,逐步执行从教师网络到学生网络的分块知识转移。在在线环境中,教师网络通常是学生网络的集合,其中学生模型彼此具有相似的结构(或相同的结构)(Zhang等人,2018b;Zhu和Gong,2018;Furlanello等人,2018;Chen等人,2020a)。
最近,深度可分离卷积被广泛用于为移动或嵌入式设备设计高效的神经网络(Chollet,2017;Howard等人,2017;Sandler等人,2018;Zhang等人,2018a;Ma等人,2018)。受神经架构搜索(NAS)成功的启发,通过基于高效元运算或块搜索全局结构,小型神经网络的性能得到了进一步改善(Wu等人,2019年;Tan等人,2019年;Tan和Le,2019年;Radosavovic等人,2020年)。此外,动态搜索知识转移机制的想法也出现在知识提炼中,例如,使用强化学习(Ashok等,2018)以数据驱动的方式自动移除冗余层,并在给定教师网络的情况下搜索最佳学生网络(Liu等,2019h;Xie等,2020;Gu和Tresp,2020)。知识提炼中的神经结构搜索,即在教师模型指导下对学生结构和知识转移进行联合搜索,将是未来研究的一个有趣课题。
知识转移的一个简单但非常有效的想法是,在教师模型和学生模型之间直接匹配基于响应的知识、基于特征的知识(Romero等人,2015;Hinton等人,2015)或特征空间中的表示分布(Passalis和Tefas,2018)。人们提出了许多不同的算法来改进在更复杂的环境中传递知识的过程。在这一节中,我们回顾了最近提出的知识提炼领域内知识转移的典型类型的提炼方法。
在知识提炼中,教师模型很难从真实的数据分布中完全学习。同时,学生模型的容量很小,因此无法准确模拟教师模型(Mirzadeh等人,2019)。为了模仿老师的模式,有没有其他方法来训练学生模式?最近,对抗性学习因其在生成性网络(即生成性对抗性网络或GAN)中的巨大成功而备受关注(Goodfello等人,2014)。具体地说,GAN中的鉴别器估计样本来自训练数据分布的概率,而生成器试图使用生成的数据样本愚弄鉴别器。受此启发,为了使教师和学生网络更好地理解真实的数据分布,已经提出了许多对抗性的知识提取方法(Wang等人,2018d;Xu等人,2018a;Micaelli and Storkey,2019;Xu等人,2018b;Liu等人,2018b;Wang等人,2018e;Chen等人,2019a;Shen等人,2019b;Shu等人,2019;Liu等人,2018a;Belagiannis等人,2018)。
如图8所示,基于对抗式学习的蒸馏方法,尤其是使用GANs的方法,可分为以下三大类:1)对抗式生成器经过训练以生成合成数据,这些数据或直接用作训练数据集(Chen等人,2019a),或用于扩充训练数据集(Liu等人,2018b),如图8(a)所示。此外,Micaelli和Storkey(2019)利用对抗性生成器生成知识转移的硬示例。2) 引入了一个鉴别器,通过使用logits(Xu等人,2018a,b)或特征(Wang等人,2018e),将样本与学生和教师模型区分开来,如图8(b)所示。具体而言,Belagiannis等人(2018年)使用未标记的数据样本来形成知识转移。Shen等人(2019b)使用了多个鉴别器。此外,Shu等人(2019)使用了一种有效的中间监督,即压缩知识,以缓解教师和学生之间的能力差距。3) 对抗性知识提炼以在线方式进行,即教师和学生在每次迭代中共同优化(Wang等人,2018d;Chung等人,2020),如图8(c)所示。此外,通过知识提炼来压缩GAN,一个学习过的小型GAN学生网络通过知识转移模仿了一个更大的GAN教师网络(Aguinaldo等人,2019)。
综上所述,从上述对抗性提炼方法中可以总结出三个要点:GAN是通过教师知识转移增强学生学习能力的有效工具;GAN和KD联合生成有价值的数据,有助于提高KD性能,克服数据不可用和不可访问的局限性;KD可用于压缩GANs。
不同的教师架构可以为学生网络提供自己有用的知识。在学生网络训练过程中,可以单独、完整地使用多个教师网络进行精馏。在典型的师生框架中,教师通常有一个大的模型或一个大型模型的集合。从多个教师那里传递知识,最简单的方法是将所有教师的平均响应作为监督信号(Hinton等人)。2015年)。最近提出了几种多师知识蒸馏方法(Sau和Balasubramanian,2016;You等人)。2017年;Chen等人。,2019b;Furranello等人。2018年;杨洁篪等人。,2019a;Zhang等人。,2018b;Lee等人。,2019c;Park and Kwak,2019;Papernot等人。2017年;福田等人。2017年;Ruder等人。2017年;Wu等人。,2019a;Yang等人。,2020b;Vongkulbhisal等人。2019年)。图9示出了多师蒸馏的通用框架。
多个教师网络已经证明,对于通常使用logits特征表示作为知识的学生模型是有效的。除了所有老师的平均logits(2017)进一步纳入中间层的特征,以鼓励不同训练样本之间的差异。为了同时利用logits和中间特性,Chen等人。(2019b)使用两个教师网络,其中一个教师将基于响应的知识传递给学生,另一个教师将基于特征的知识转移给学生。福田等人。(2017)每次迭代时,随机从教师网络池中选择一名教师。为了从多个教师那里转移基于特征的知识,在学生网络中增加额外的教师分支,以模拟教师的中间特征(Park和Kwak,2019;Asif等人)。2019年)。“重生网络”以一步一步的方式向多个教师讲话,即,步骤中的学生被用作学生在第1步的老师(Furlanello等人)。,2018),类似的想法见(Yang等人)。,2019a)。为了有效地执行知识转移并探索多个教师的能力,提出了几种替代方法,通过向给定教师添加不同类型的噪声(Sau和Balasubramanian,2016),或使用随机块和跳过连接(Lee等人)。,2019c)。更有趣的是,由于多师蒸馏的特殊性,其扩展被用于知识自适应的领域自适应(Ruder等人)。2017年),以及保护数据的隐私和安全(Vongkulbhisal等人。2019年;Papernot等人。2017年)。
训练或测试期间可能无法获得某些模态的数据或标签(Gupta等人,2016年;Garcia等人,2018年;Zhao等人,2018年;Roheda等人,2018年)。因此,在不同的模态之间转移知识很重要。以下是使用跨模态知识转移的几个典型场景。
Gupta等人(2016年)给出了一个教师模型,该模型在一种模态(例如RGB图像)上进行了预训练,带有大量注释良好的数据样本,并使用一种新的未标记输入模态(例如深度图像和光流)将知识从教师模型转移到学生模型。具体而言,该方法依赖于涉及两种模态的未标记配对样本,即RGB和深度图像。然后,教师从RGB图像中获取的特征用于学生的监督训练(Gupta等人,2016)。成对样本背后的想法是通过成对样本注册传递注释或标签信息,并已广泛用于跨模态应用(Albanie等人,2018年;Zhao等人,2018年;Thoker和Gall,2019年)。为了通过墙壁或遮挡图像进行人体姿势估计,赵等人(2018)使用了同步无线电信号和相机图像。知识通过基于无线电的人体姿势估计的模态进行传输。Thoker和Gall(2019)从两种模态中获得配对样本:RGB视频和骨架序列。这些配对用于将从RGB视频中学习到的知识转移到基于骨架的人体动作识别模型中。为了提高仅使用RGB图像的动作识别性能,Garcia et al.(2018)对另一种模态(即深度图像)进行了跨模态蒸馏,以生成RGB图像模态的幻觉流。Tian等人(2020年)介绍了一种对比损失,以跨不同模态传递成对关系。为了改进目标检测,Roheda等人(2018年)提出了使用GANs对缺失和可用模型进行跨模态蒸馏的方法。跨模态蒸馏的一般框架如图10所示。
此外,Do等人(2019年)提出了一种基于知识提炼的可视化问答方法,即其中将以图像问题答案为输入的三线性互动教师模型中的知识提炼为以图像问题为输入的双线性互动学生模型的学习。Alis和Tefas(2018)提出的概率知识提取也用于从文本模态到视觉模态的知识转移。Hoffman等人(2016)提出了一种基于跨模态蒸馏的模态幻觉架构,以提高检测性能。此外,这些跨模型蒸馏方法在多个领域之间传递知识(Kundu等人,2019年;Chen等人,2019c;Su和Maji,2016年)。
大多数知识提取算法都侧重于根据单个训练样本将知识从教师传递给学生,最近提出了几种利用图表探索数据内部关系的方法(罗等人,2018年;陈等人,2020b;张和彭,2018年;李和宋,2019年;朴等人,2019年;刘等人,2019f;董和森,2019年;彭等人,2019a;南美等人,2019年;姚等人,2019年;马和梅,2019年)。这些基于图形的提取方法的主要思想是:1)利用图形作为教师知识的载体;或2)使用图形控制教师知识的信息传递。图11显示了基于图形的蒸馏的通用框架。如第3节所述。3.基于图形的知识符合基于关系的知识。在本节中,我们将介绍基于图的知识的典型定义和基于图的消息传递蒸馏算法。
在(张和彭,2018)中,每个顶点代表一位自我监督的老师。然后,使用logits和中间特征(即logits图和表示图)构造两个图,将多个自监督的教师的知识传递给学生。在(Chen等人,2020b)中,该图用于维持高维空间中样本之间的关系。然后使用提出的局部保持损失函数进行知识转移。Lee和Song(2019)使用多头图分析了内部数据关系,其中顶点是CNN中不同层的特征。Park等人(2019年)直接传递了数据样本的相互关系,即匹配教师图和学生图之间的边。Tung和Mori(2019)使用相似矩阵表示教师和学生模型中输入对激活的相互关系。然后,学生的相似性矩阵与教师的相似性矩阵匹配。此外,Peng等人(2019a)不仅匹配了基于响应和基于特征的知识,还使用了基于图形的知识。在(Liu等人,2019f)中,实例特征和实例关系分别被建模为图的顶点和边。
有几种方法不是使用基于图的知识,而是使用图控制知识转移。具体而言,Luo等人(2018年)考虑了模态差异,以纳入来自源域的特权信息。引入了一个有向图,称为蒸馏图,以探索不同形态之间的关系。每个顶点代表一个模态,边表示一个模态和另一个模态之间的连接强度。Minami等人(2019年)提出了一种基于双向图的多样化协作学习,以探索多样化的知识转移模式。Yao等人(2019年)引入GNNs来处理基于图形的知识的知识转移。此外,利用知识提取,将图卷积教师网络的拓扑语义作为拓扑感知知识转移到图卷积学生网络(Yang等人,2020a)
由于注意可以很好地反映卷积神经网络的神经元激活,一些注意机制被用于知识提炼,以提高学生网络的性能(Zagoruyko和Komodakis,2017;Huang和Wang,2017;Srinivas和Fleuret,2018;Crowley et al.,2018;Song et al.,2018)。在这些基于注意力的知识蒸馏方法中(Crowley et al.,2018;Huang and Wang,2017;Srinivas and Fleuret,2018;Zagoruyko and Komodakis,2017),定义了不同的注意力转移机制,用于将知识从教师网络提取到学生网络。注意转移的核心是定义注意图,用于神经网络层中嵌入特征。也就是说,关于特征嵌入的知识是使用注意图函数传递的。与注意力地图不同,Song等人(2018)提出了一种不同的注意力知识提取方法。注意机制用于分配不同的置信规则(Song等人,2018)。
已经提出了一些无数据KD(知识蒸馏)方法,以克服因隐私、合法性、安全性和保密性问题而产生的不可用数据问题(Chen等人,2019a;Lopes等人,2017;Nayak等人,2019;Micaelli和Storkey,2019)。正如“无数据”所暗示的,没有训练数据。相反,数据是新生成的或综合生成的。在(Chen等人,2019a;Micaelli和Storkey,2019)中,传输数据由GAN生成。在提出的无数据知识提取方法(Lopes等人,2017年)中,通过使用教师网络的层激活或层光谱激活来重建用于训练学生网络的传输数据。Nayak等人(2019年)提出了一种不使用现有数据的zero-shot知识提取方法。传输数据是通过使用教师网络的参数对softmax空间建模生成的。事实上,(Micaelli和Storkey,2019;Nayak等人,2019)中的目标数据是通过使用教师网络特征表示的信息生成的。与zero-shot学习类似,设计了一种具有少量次学习的知识提取方法,通过高斯过程将教师模型中的知识提取到学生神经网络中(Kimura et al.,2018)。老师使用有限的标记数据。
网络量化通过将高精度网络(例如32位浮点)转换为低精度网络(例如2位和8位)来降低神经网络的计算复杂度。同时,知识提炼旨在训练小模型,使其产生与复杂模型相当的性能。一些KD方法是在师生框架中使用量化过程提出的(Polino等人,2018年;Mishra和Marr,2017年;Wei等人,2018年;Shin等人,2019年;Kim等人,2019a)。图12显示了量化蒸馏方法的框架。具体而言,Polino等人(2018年)提出了一种量化蒸馏方法,将知识转移到加权量化的学生网络。在(Mishra和Marr,2017年)中,提议的量化KD被称为“学徒”。高精度教师网络将知识传递给一个小的低精度学生网络。为了确保小的学生网络准确地模仿大的教师网络,首先在特征图上对全精度教师网络进行量化,然后将知识从量化的教师转移到量化的学生网络(Wei等人,2018)。在(Kim et al.,2019a)中,基于量化学生网络的自学习以及教师和学生网络与知识转移的共同学习,提出了量化感知知识提取。此外,Shin等人(2019年)利用蒸馏和量化对深层神经网络进行了实证分析,并考虑了知识蒸馏的超参数,如教师网络的大小和蒸馏温度。
终身学习包括持续学习、持续学习和元学习,旨在以类似于人类的方式学习。它积累了以前学到的知识,也将学到的知识转化为未来的学习(Chen和Liu,2018)。知识提炼提供了一种有效的方法来保存和转移学习到的知识,而不会造成灾难性的遗忘。最近,基于终身学习的KD变体越来越多(Jang等人,2019年;Flennerhag等人,2019年;Peng等人,2019b;Liu等人,2019d;Lee等人,2019b;翟等人,2019年;Zhou等人,2019c;Shmelkov等人,2017年;Li和Hoiem,2017年)。(Jang等人,2019年;Peng等人,2019b;Liu等人,2019d;Flennerhang等人,2019年)提出的方法采用元学习。Jang等人(2019年)设计了元传输网络,可以确定在师生体系结构中传输什么以及在哪里传输。Flennerhag等人(2019年)提出了一个轻量级的框架,称为Leap,通过将知识从一个学习过程转移到另一个学习过程,实现任务流形上的元学习。Peng等人(2019b)设计了一种新的知识转移网络体系结构,用于少量镜头图像识别。该体系结构同时融合了来自图像和先验知识的视觉信息。Liu等人(2019d)提出了用于图像检索的语义感知知识保存方法。从图像形态和语义信息中获取的教师知识被保存和传递。此外,为了解决终身学习中的灾难性遗忘问题,全球蒸馏(Lee et al.,2019b),多模型蒸馏(Zhou et al.,2019c),基于知识提炼的终身学习方法(翟等人,2019年)和其他基于KD的方法(Li和Hoiem,2017年;Shmelkov等人,2017年)已经开发出来,用于提取所学知识,并在新任务上教授学生网络。
神经结构搜索(Neural architecture search,NAS)是最流行的自动机器学习(AutoML)技术之一,旨在自动识别深层神经模型并自适应学习适当的深层神经结构。在知识提炼中,知识转移的成功不仅取决于教师的知识,还取决于学生的结构。然而,大教师模式和小学生模式之间可能存在能力差距,使得学生很难从教师那里很好地学习。为了解决这个问题,我们采用了神经架构搜索,在基于oracle(Kang等人,2020年)和基于架构的知识提炼(Liu等人,2019h)中找到合适的学生架构。此外,知识提取被用于提高神经架构搜索的效率,例如AdaNAS(Macko等人,2019年)、具有提取架构知识的NAS(Li等人,2020年)和教师指导的架构搜索或TGSA(Bashivan等人,2019年)。在TGSA中,每个架构搜索步骤都被引导来模拟教师网络的中间特征表示。有效地搜索学生可能的结构,教师有效地监督特征转移。
作为一种有效的深度神经网络压缩和加速技术,知识提取已广泛应用于人工智能的各个领域,包括视觉识别、语音识别、自然语言处理(NLP)和推荐系统。此外,知识提炼还可以用于其他目的,例如数据隐私和对抗性攻击的防御。本节简要回顾了知识提炼的应用。
近年来,各种知识提取方法被广泛应用于不同视觉识别应用中的模型压缩。具体而言,大多数知识提取方法之前都是为图像分类开发的(Li and Hoiem,2017;Peng等人,2019b;Bagherezhad等人,2018;Chen等人,2018a;Wang等人,2019b;Mukherjee等人,2019;Zhu等人,2019),然后扩展到其他视觉识别应用,包括人脸识别(罗等,2016;孔等,2019;严等,2019;葛等,2018;王等,2018b,2019c;Duong等,2019;Wu等,2020;王等,2017);动作识别(郝和张,2019;Thoker和Gall,2019;罗等,2018;Garcia等,2018;王等,2019e;Wu等,2019b;张等,2020),目标检测(李等人,2017年;洪和余,2019年;施梅尔科夫等人,2017年;魏等人,2018年;王等人,2019d);车道检测(侯等人,2019年);图像或视频分割(他等人,2019年;刘等人,2019g;穆拉普迪等人,2019年;暹罗等人,2019年;杜等人,2020年);视频分类(巴尔德瓦伊等人,2019年;张和彭,2018年),行人检测(Shen等人,2016年)、面部地标检测(Dong和Yang,2019年)、人物再识别(Wu等人,2019a)和人物搜索(Munjal等人,2019年)、姿势估计(Nie等人,2019年;Zhang等人,2019a;Zhao等人,2018年)、显著性估计(Li等人,2019年)、图像检索(Liu等人,2019d),深度估计(Pilzer et al.,2019;Ye et al.,2019)、视觉里程计(Saputra et al.,2019)和视觉问答(Mun et al.,2018;Aditya et al.,2019)。由于分类任务中的知识提取是其他任务的基础,我们简要回顾了具有挑战性的图像分类设置中的知识提取,如人脸识别和动作识别。
现有的基于KD的人脸识别方法不仅易于部署,而且可以提高分类精度(Luo等人,2016;Kong等人,2019;Yan等人,2019;Ge等人,2018;Wang等人,2018b,2019c;Duong等人,2019;Wang等人,2017)。首先,这些方法侧重于具有非常令人满意的准确度的轻量级人脸识别(Luo等人,2016;Wang等人,2018b,2019c;Duong等人,2019)。在(Luo等人,2016年)中,来自教师网络顶层提示层所选信息神经元的知识被转移到学生网络中。设计了一种教师加权策略,该策略从提示层中丢失特征表示,用于知识转移,以避免教师的错误监督(Wang等,2018b)。通过使用前一个学生网络初始化下一个学生网络,设计了递归知识提取方法(Yan等人,2019)。递归蒸馏中的学生模型首先由分组和逐点卷积生成。与封闭集问题中基于KD的人脸识别方法不同,通过设计不同的蒸馏损失(Duong et al.,2019;Wu et al.,2020),提出了用于开放集问题中百万规模轻量级人脸识别的缩小师生网络。
典型的基于KD的人脸识别是低分辨率人脸识别(Ge等,2018;Wang等,2019c;Kong等,2019)。为了提高低分辨率人脸识别的准确率,通过使用高分辨率人脸教师和低分辨率人脸学生之间的体系结构,开发了知识提取框架,用于模型加速和提高分类性能。Ge et al.(2018)提出了一种选择性知识提取方法,在该方法中,用于高分辨率人脸识别的教师网络通过稀疏图优化,选择性地将其信息丰富的面部特征转移到用于低分辨率人脸识别的学生网络中。在(Kong等人,2019年)中,通过设计一个分辨率不变的模型,将人脸幻觉和异构识别子网统一起来,实现了跨分辨率人脸识别。为了获得高效的低分辨率人脸识别模型,采用学生和教师网络之间的多核最大均值差异作为特征损失(Wang等人,2019c)。此外,通过改变知识提取中的损失,基于KD的人脸识别可以扩展到人脸对齐和验证(Wang et al.,2017)。
近年来,知识蒸馏已成功地应用于复杂图像分类问题的求解。此外,还有现有的典型方法(Li和Hoeim,2017;Baghinezzhad等人)。2018年;彭等。,2019b;Chen等人。,2018a;朱等。2019年;Wang等人。,2019b;Mukherjee等人。2019年)。针对不完全、模糊和冗余的图像标签,提出了通过自蒸馏和标签级数的标签精炼模型来学习软、信息、集体和动态的复杂图像分类标签(Bagherinezhad等人)。2018年)。为了解决CNN在各种图像分类任务中的灾难性遗忘问题,提出了一种CNN的无遗忘学习方法,包括知识蒸馏和终身学习,以识别新的图像任务并保留原始任务(Li和Hoeim,2017)。为了提高图像分类的准确性,Chen等人。(2018a)提出了基于特征图的基于GAN的知识蒸馏方法。它将知识从特征图传递给学生。利用知识蒸馏技术,设计了一个将师生解释模型与深层生成诊断模型相结合的图像分类器可视化解释诊断框架(Wang等人)。,2019b)。与基于知识蒸馏的低分辨率人脸识别类似,朱志强等人。(2019)提出了低分辨率图像分类的深度特征蒸馏,其中学生的输出特征与教师的输出特征相匹配。
如第6.3节所述,师生结构的知识蒸馏可以传递和保存跨模态知识。在其跨模态任务场景下,有效有效的动作识别可以成功实现(Thoker和Gall,2019;Roo等人)。2018年;Garcia等人。2018年;郝和张某,2019年;吴志强等。,2019b;张某等人。,2020年)。这些方法是时空模态蒸馏的实例,它们具有不同的知识转移,用于动作识别。例如,相互教学学生网络(Thoker和Gall,2019)、多流网络(Garcia等人)。2018年)、《时空蒸馏密集连通网络》(郝和张,2019年),图蒸馏(Roo等人)。2018)和多学生网络多点(Wu等人。,2019b;张某等人。,2020年)。其中,轻量级学生可以从存储在教师中的多种模式中提取和共享知识信息。
本文总结了基于提取的视觉识别应用的两个主要观察点,如下。
•知识蒸馏为许多复杂的视觉识别任务提供高效和有效的师生网络。
•知识蒸馏可以充分利用复杂视觉数据中的不同类型的知识,如跨模态数据、多域数据和多任务数据以及低分辨率图像数据。
传统的语言模型(如BERT)非常耗时,而且结构复杂、繁琐。为了获得轻量级、高效和有效的语言模型,知识提取在自然语言处理(NLP)领域得到了广泛的研究。越来越多的KD方法被提出来解决大量的NLP任务(Liu等人,2019b;Gordon和Duh,2019;Haidar和Rezagholizadeh,2019;Yang等人,2020b;Tang等人,2019;Hu等人,2018;Sun等人,2019;Nakashole和Flauger,2017;Jio等人,2019;Wang等人,2018c;Zhou等人,2019;Sanh等人,2019;Turc等人,2019;Arora;Clark等人,2019;Kim和Rush,2016;Mou等人,2016);刘等人,2019e;哈恩和崔,2019年;Tan等人,2019年;Kuncoro等人,2016年;崔等人,2017年;魏等人,2019年;Freitag等人,2017年;Shakeri等人,2019年;Aguilar等人,2020年)。现有的使用KD的NLP任务包含神经机器翻译(NMT)(哈恩和CUI,2019;周等人,2019A;基姆和HASH,2016;谭等人,2019;Wiet等人,2019;Frutag等人,2017;戈登和Duh,2019),问答系统(Wang等人,2018C;阿罗拉等人,2019;杨等人,2020B;Suffet等人,2018),文献检索(Quiet et al.,2019),事件检测(Liu等人,2019b)、文本生成(Haidar和Rezagholizadeh,2019)等。在这些基于KD的NLP方法中,大多数属于自然语言理解(NLU),其中许多用于NLU的KD方法被设计为任务特定蒸馏(Tang等人,2019;Turc等人,2019;Mou等人,2016)和多任务蒸馏(Liu等人,2019e;Yang等人,2020b;Sanh等人,2019;Clark等人,2019)。在下文中,我们描述了KD研究工作的神经机器翻译,然后扩展一个典型的多语言表示模型,标题为双向编码器表示从变压器(或伯特)(德夫林等人,2019)在NLU。
在自然语言处理中,神经机器翻译是最热门的应用。有许多用于神经机器翻译的扩展知识蒸馏方法(哈恩和CUI,2019;周等人,2019A;基姆和HASH,2016;戈登和Duh,2019;We等人,2019;Frutag等人,2017;谭等人,2019)。在(Zhou等人,2019a)中,研究了知识提炼如何影响非自回归机器翻译(NAT)模型的实证分析。实验证明,翻译质量在很大程度上取决于NAT模型的容量和通过知识转移提取的数据的复杂性。在NMT的序列生成场景中,提出的单词级知识提取被扩展为序列级知识提取,用于训练模拟教师序列分布的序列生成学生模型(Kim and Rush,2016)。从数据增强和正则化的角度进一步解释了序列级知识提取的良好性能(Gordon和Duh,2019)。在(Tan等人,2019年)中,为了克服多语言多样性,提出了一种多教师知识提炼方法,该方法具有处理双语对的多个单独模型和一个面向学生的多语言模型,以提高多语言机器翻译的准确性。为了提高翻译质量,Freitag等人(2017)提出了知识提炼方法。带有数据过滤方法的集成教师模型教授学生模型。合奏教师模型基于许多NMT模型。在(Wei等人,2019年)中,为了提高机器翻译和机器阅读任务的性能,提出了一种新的在线知识提取方法,以解决训练过程的不稳定性和每个验证集的性能下降问题。在这个在线KD中,培训期间的最佳评估模型被选为教师模型,并由任何后续更好的模型更新。如果下一个模式表现不佳,那么当前的教师模式将指导它。
作为一种多语言表示模型,BERT在自然语言理解中引起了人们的注意(Devlin等人,2019年),但它也是一种复杂的深层模型,不容易部署。为了解决这个问题,提出了几种使用知识提取的轻型BERT(称为BERT模型压缩)变体(Sun等人,2019年;Jia等人,2019年;Tang等人,2019年;Sanh等人,2019年)。Sun等人(2019)提出了用于伯特模型压缩的患者知识提取(BERT-PKD),用于情感分类、释义相似性匹配、自然语言推理和机器阅读理解。在patient KD方法中,来自教师提示层的[CLS]标记的特征表示被传递给学生。在(Jiao et al.,2019)中,为了加速BERT的语言推理,TinyBERT被提出,设计了两级变压器知识提取,其中包含来自一般领域知识的一般提取和来自BERT中任务特定知识的任务特定提取。年(Tang等人,2019年)。提出了一种从伯特-教师模型中提取特定任务知识的双向长短时记忆网络(BiLSTM),用于句子分类和匹配。在(Sanh等人,2019年)中,设计了一个名为DistilBERT的轻量级学生模型,该模型具有与BERT相同的通用结构,并在NLP的各种任务中学习,以获得良好的性能。在(Aguilar等人,2020年)中,通过内部蒸馏使用大型教师伯特的内部表示,提出了一种简化的学生伯特。
NLP中使用的几种不同视角的KD方法如下所示。对于问答(Hu et al.,2018),为了提高现有机器阅读理解方法的效率和稳健性,通过融合泛型提取和语义提取,提出了一种注意力引导的答案提取方法避免混淆答案。对于特定任务的提炼(Turc等人,2019),研究了知识提炼的性能,以及紧凑型学生模型的预训练、提炼和微调之间的相互作用。该方法在情感分类、自然语言推理、文本蕴涵等方面表现良好。对于自然语言理解背景下的多任务蒸馏(Clark等人,2019年),提出了基于bornagain神经网络的单多重生蒸馏方法(Furlanello等人,2018年)。单任务教师教多任务学生。对于多语言表示,知识蒸馏在多语言单词嵌入中传递知识,用于双语词典归纳(Nakashole和Flauger,2017)。
知识转移的有效性也通过多种语言模型进行了研究(Cui等人,2017年)。关于自然语言处理中知识提取的几点观察总结如下:
·知识提炼可以使用师生架构提供高效的轻量级语言深度模型。教师可以将大量语言数据中丰富的知识传递给学生,学生可以快速完成许多语言任务
·师生知识转移可以应用于多种语言的任务中。
在语音识别领域,深度神经声学模型因其强大的性能而引起了人们的关注和兴趣。然而,越来越多的实时语音识别系统部署在计算资源有限、响应速度快的嵌入式平台上。最先进的深层复杂模型无法满足此类语音识别场景的要求。为了满足这些要求,知识提取被广泛研究并应用于许多语音识别任务中。有许多知识提取系统用于设计用于语音识别的轻量级深度声学模型(Chebotar and Waters,2016;Wong and Gales,2016;Chan et al.,2015;Price et al.,2016;Fukuda et al.,2017;Bai et al.,2019b;Ng et al.,2018;Albanie et al.,2018;Lu et al.,2017;Shi et al.,2019a;Roheda et al.,2018;Shi et al.,2019b;Gao et al.,2019;Ghorbani et al.,2018;Takashima et al.,2018;Watanabe et al.,2017;Shi et al.,2019c;Asami et al.,2017;Huang et al.)艾尔,2018年;沈等人,2018年;佩雷斯等人,2020年;沈等人,2019a;Oord等人,2018年)。特别是,这些基于KD的语音识别应用程序具有口语识别(Shen等人,2018年,2019a)、文本无关说话人识别(Ng等人,2018年)、音频分类(Gao等人,2019年;Perez等人,2020年)、语音增强(渡边等人,2017年)、声学事件检测(Price等人,2016年;Shi等人,2019a,b),语音合成(Oord et al.,2018)等。
大多数用于语音识别的现有知识提取方法都使用师生架构来提高声学模型的效率和识别精度(Chan等人,2015年;Chebotar and Waters,2016年;Lu等人,2017年;Price等人,2016年;Shen等人,2018年;Gao等人,2019年;Shen等人,2019a;Shi等人,2019c,a;Watanabe等人,2017年;Perez等人,2020年)。使用递归神经网络(RNN)保存语音序列中的时间信息,将教师RNN声学模型中的知识转移到一个小的学生DNN模型中(Chan等人,2015)。通过组合多种声学模式,可以获得更好的语音识别精度。具有不同个人培训标准的不同RNN的集合旨在通过知识转移培训学生模型(Chebotar和Waters,2016)。学习的学生模型在5种语言的2000小时大词汇量连续语音识别(L VCSR)任务中表现良好。为了加强口语识别(LID)模型对短话语的泛化,基于长话语的教师网络的特征表示知识被转移到基于短话语的学生网络中,该学生网络可以区分短话语,并在基于短持续话语的LID任务中表现良好(Shen等人,2018)。为了进一步提高基于短话语的LID的性能,提出了一种交互式师生在线蒸馏学习,以提高短话语特征表征的性能(Shen等人,2019a)。
同时,对于音频分类,开发了一种多级特征提取方法,并采用对抗式学习策略来优化知识转移(Gao等人,2019)。为了提高语音识别的抗噪性,知识提取被用作语音增强工具(Watanabe et al.,2017)。在(Perez et al.,2020)中,提出了一种视听多模态知识提取方法。知识从关于视觉和声学数据的教师模型转移到关于音频数据的学生模型。本质上,这种升华在教师和学生之间分享了跨模态知识(Perez等人,2020年;Albanie等人,2018年;Roheda等人,2018年)。为了有效地检测声学事件,提出了一种综合利用知识提取和量化的提取方法(Shi等人,2019a)。量化蒸馏将知识从具有更好检测精度的大型CNN教师模型转移到量化RNN学生模型。
与大多数现有的传统帧级KD方法不同,序列级KD在一些用于语音识别的序列模型中表现更好,例如连接主义时间分类(CTC)(Wong and Gales,2016;Takashima et al.,2018;Huang et al.,2018)。在(Huang et al.,2018)中,序列级KD被引入到连接主义时间分类中,以匹配教师模型训练中使用的输出标签序列和蒸馏中使用的输入语音帧。在(Wong and Gales,2016)中,研究了语音识别性能对帧级和序列级学生教师培训的影响,并提出了一种新的序列级学生教师培训方法。教师团队是用序列级组合而不是框架级组合构建的。为了提高基于RNN的单向CTC用于实时语音识别的性能,通过帧级KD和序列级KD将基于LSTM的双向CTC教师模型的知识转移到基于LSTM的单向CTC学生模型中(Takashima et al.,2018)。
此外,知识提炼可用于解决语音识别中的一些特殊问题(Bai等人,2019b;Asami等人,2017;Ghorbani等人,2018)。为了克服数据稀缺时DNN声学模型的过度拟合问题,采用知识提取作为正则化方法,在源模型的监督下训练自适应模型(Asami等人,2017年)。最终调整后的模型在三个真实的声学领域(包括两种方言和儿童语音)取得了更好的性能。为了克服非母语语音识别性能下降的问题,通过从多重音特定RNN-CTC模型中提取知识,训练了一个高级多重音学生模型(Ghorbani et al.,2018)。从本质上讲,中的知识提炼(Asami et al.,2017;Ghorbani et al.,2018)实现了跨领域的知识转移。为了解决将外部语言模型(LM)融合到sequenceto sequence模型(Seq2seq)中进行语音识别的复杂性,知识提取被用作将LM(教师)整合到Seq2seq模型(学生)中的有效工具(Bai等人,2019b)。经过训练的Seq2seq模型可以降低序列间语音识别中的字符错误率。
以下总结了基于知识提取的语音识别的一些观察结果
•轻量级学生模型可以满足语音识别的实际要求,如实时响应、使用有限资源和高识别精度。
•由于语音序列的时间特性,许多师生架构都是基于RNN模型构建的。
•序列级知识提取可应用于序列模型,效果良好。
•使用师生知识转移的知识提取可以解决多重音识别等应用中的跨域或跨模态语音识别问题。
充分而正确地利用外部知识,例如在用户评论或图像中,对深度推荐模型的有效性起着非常重要的作用。降低深度推荐模型的复杂性和提高效率也是非常必要的。最近,知识蒸馏已成功应用于深度模型压缩和加速的推荐系统(Chen等人,2018b;Tang和Wang,2018;Pan等人,2019)。在(Tang and Wang,2018)中,知识蒸馏首次被引入推荐系统,并被称为排名蒸馏,因为推荐被表示为排名问题。在(Chen等人,2018b)中,设计了一种对抗性的知识提取方法,用于有效的推荐。教师将学生作为用户项预测网络(生成器)进行监督。学生的学习通过教师和学生网络之间的对抗性适应进行调整。与中的蒸馏(Chen等人,2018b;Tang和Wang,2018)不同,Pan等人(2019)通过知识蒸馏为推荐系统设计了一个增强的协同去噪自动编码器(ECAE)模型,以从用户反馈中捕获有用的知识并降低噪声。统一的ECAE框架包含一个发电网络、一个再培训网络和一个蒸馏层,用于从发电网络传输知识和降低噪声。
利用教师-学生体系结构中知识提炼的自然特征,知识提炼被用作一种有效的策略,以解决深层模型的对抗性攻击或干扰(Papernot等人,2016;Ross和Doshi Velez,2018;Goldblum等人,2019;Gil等人,2019)以及因隐私而导致的不可用数据问题,保密和安全问题(Lopes等人,2017年;Papernot等人,2017年;Bai等人,2019a;Wang等人,2019a;Vongkulbhisal等人,2019年)。如参考文献所述(Ross和Doshi Velez,2018;Papernot等人,2016),对抗性样本的扰动可以通过教师网络和蒸馏的稳健输出来克服。为了避免暴露私人数据,多名教师访问敏感或未标记数据的子集,并监督学生(Papernot等人,2017年;Vongkulbhisal等人,2019年)。为了解决隐私和安全问题,培训学生网络的数据是通过无数据蒸馏使用教师网络的层激活或层光谱激活生成的(Lopes et al.,2017)。为了保护数据隐私和防止知识盗版,Wang等人(2019a)提出了一种通过知识提取的私有模型压缩框架。学生模型适用于公共数据,而教师模型适用于敏感数据和公共数据。这种私有知识提炼采用了隐私损失和批量损失来进一步提高隐私。为了考虑隐私和性能之间的折衷,通过一种新的分层知识蒸馏和少量的样本每类开发了少量的网络压缩方法,并表现良好(BAI等,2019A)。当然,知识提炼还有其他特别有趣的应用,例如神经架构搜索(Macko等人,2019;Bashivan等人,2019)和深层神经网络的可解释性(Liu等人,2018c)。
近年来,知识提炼及其应用引起了人们的广泛关注。本文从知识、提取方案、师生体系结构、提取算法、应用、面临的挑战和未来发展方向等方面对知识提取进行了综述。下面,我们将讨论知识提炼的挑战,并对未来的知识提炼研究提供一些见解。
对于知识提炼,关键是1)从教师那里提取丰富的知识,2)从教师那里转移知识,指导学生的培训。因此,我们从以下几个方面讨论了知识提炼的挑战:知识的质量、提炼的类型、师生结构的设计以及知识提炼背后的理论。
大多数KD方法利用不同类型知识的组合,包括基于响应、基于特征和基于关系的知识。因此,了解每种知识类型的影响以及不同类型的知识如何以互补的方式相互帮助非常重要。例如,基于响应的知识对标记平滑和模型正则化具有类似的动机(Kim和Kim,2017;Muller等人,2019;Ding等人,2019);基于特征的知识通常用于模拟教师的中间过程,基于关系的知识用于捕捉不同样本之间的关系。为此,在一个统一的框架中对不同类型的知识进行建模仍然是一个挑战。
如何将丰富的知识从教师传授给学生是知识提炼的关键步骤。知识转移通常是通过升华来实现的,升华决定了学生学习和教师教学的能力。现有的蒸馏方法一般可分为离线蒸馏、在线蒸馏和自蒸馏。为了提高知识转移的效率,开发新的蒸馏和合理协调不同的蒸馏可能是很有希望的策略。
目前,大多数KD方法侧重于新知识或新的蒸馏损失函数,对师生体系结构的设计研究较少(Nowak和Corso,2018;Crowley等人,2018;Kang等人,2020;Liu等人,2019h;Ashok等人,2018;Liu等人,2019a)。事实上,除了知识和升华,教师和学生结构之间的关系也显著影响知识升华的表现。例如,如(Zhang等人,2019b)所述,学生模型可能从一些教师模型中学到很少。这是由教师模式和学生模式之间的模式能力差距造成的(Kang等人,2020年)。因此,设计有效的学生模型或构建合适的教师模型仍然是知识提炼中具有挑战性的问题。
尽管有大量的知识提炼方法和应用,但对知识提炼的理解(包括理论解释和经验评估)仍然不足(Lopez Paz等人,2015年;Phuong和Lampert,2019年;Cho和Hariharan,2019年)。例如,蒸馏可以被视为一种具有特权信息的学习形式(Lopez Paz et al.,2015)。线性教师和学生模型的假设使我们能够研究特征的理论解释学生提炼学习(Phuong and Lampert,2019)。此外,byCho和Hariharan(2019)对知识提炼的有效性进行了一些实证评估和分析。然而,要深入理解知识提炼的普遍性,尤其是如何衡量知识的质量或师生体系结构的质量,仍然非常困难。
为了提高知识的表现和提炼,最重要的因素包括什么样的师生网络结构,从教师网络中学习什么样的知识,以及从哪里提炼到学生网络中。
深度神经网络的模型压缩和加速方法通常分为四类,即参数修剪和共享、低秩因子分解、转移紧凑卷积滤波器和知识提取(Cheng等人,2018)。在现有的知识提取方法中,讨论知识提取与其他压缩方法相结合的相关工作很少。例如,量化知识提取可以看作是一种参数修剪方法,它将网络量化集成到师生体系结构中(Polino等人,2018年;Mishra和Marr,2017年;Wei等人,2018年)。因此,为了学习在便携式平台上部署的高效轻量级深度模型,通过知识提取和其他压缩技术实现的混合压缩方法将是未来研究的一个有趣课题。
除了用于深层神经网络加速的模型压缩之外,由于教师-学生体系结构上知识转移的自然特性,知识提取也可以用于其他问题。最近,知识提炼被应用于数据隐私和安全(Wang等人,2019a)、深层模型的对抗性攻击(Papernot等人,2016)、跨模式(Gupta等人,2016)、多领域(Asami等人,2017)、灾难性遗忘(Lee等人,2019b)、加速深层模型的学习(Chen等人,2015),神经结构搜索的效率(Bashivan等人,2019年)、自我监督(Noroozi等人,2018年)和数据增强(Lee等人,2019a;Gordon和Duh,2019年)。另一个有趣的例子是,从小型教师网络到大型学生网络的知识转移可以加速学生学习(Chen等人,2015)。这与香草知识蒸馏非常不同。从大型模型的未标记数据中学习到的特征表示也可以通过蒸馏来监督目标模型(Noroozi et al.,2018)。为此,将知识提炼扩展到其他目的和应用可能是一个有意义的未来方向。
知识提炼的学习类似于人类的学习。将知识转移推广到经典和传统的机器学习方法是可行的(Zhou等人,2019b;Gong等人,2018;You等人,2018;Gong等人,2017)。例如,基于知识提炼的思想,传统的两阶段分类适合于单个教师单个学生的问题(Zhou等人,2019b)。此外,知识提炼可以灵活地部署到各种学习方案中,如对抗式学习(Liu等人,2018b)、自动机器学习(Macko等人,2019)、终身学习(翟等人,2019)和强化学习(Ashok等人,2018)。因此,将知识提炼与其他学习计划结合起来,以应对未来的实际挑战,将是一件有趣且有用的事情。