0


知识蒸馏研究综述

知识蒸馏研究综述

论文来源于:知识蒸馏研究综述

文章目录

主要有 5 种方法可以获得高效的深度学习模型:直接手工设计轻量级网络模型、剪枝、量化、基于神经架构搜索(Neural Architecture Search,NAS)的网络自动化设计以及知识蒸馏(Knowledge Distillation,KD)。

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

根据应用场景划分出基于知识蒸馏的模型压缩和模型增强这两个技术方向,即获得的网络模型是否为了应用于资源受限的设备。

在这里插入图片描述

  • 模型压缩是教师网络在相同的带标签的数据集上指导学生网络的训练来获得简单而高效的网络模型
  • 模型增强则强调利用其它资源(如无标签或跨模态的数据)或知识蒸馏的优化策略(如相互学习和自学习)来提高一个复杂学生模型的性能.

知识蒸馏的提出

知识蒸馏与迁移学习都涉及到知识的迁移,然而它们有以下四点的不同:

  • 数据域不同
  • 网络结构不同
  • 学习方式不同
  • 目的不同

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

在这里插入图片描述

知识蒸馏的作用机制

Hinton 等人认为,学生模型在知识蒸馏的过程中通过模仿教师模型输出类间相似性的“暗知识”来提高泛化能力。

从数学或实验角度关于知识蒸馏作用机制的证明和理解:

软目标为学生模型提供正则化约束

  • 通过贝叶斯优化来控制网络超参数的对比试验,其表明了教师模型的软目标为学生模型提供了显著的正则化。
  • 软目标正则化的作用是双向的,即还能将知识从较弱的教师模型迁移到能力更强大的学生模型中。 - 一方面,软目标通过标签平滑训练提供了正则化,标签平滑是通过避免了过分相信训练样本的真实标签来防止训练的过拟合。- 另一方面,软目标通过置信度惩罚提供了正则化,置信度惩罚让学生模型获得更好的泛化能力,其主要依赖于教师模型对正确预测的信心。

软目标为学生模型提供了“特权信息”

“特权信息”指教师模型提供的解释、评论和比较等信息。

教师模型在训练的过程中将软目标的“暗知识”迁移到学生模型中,而学生模型在测试的过程中并不能使用“暗知识”。

**软目标引导了学生模型优化的方向 **

  • Phuong等人从模型训练的角度证明了软目标能引导学生模型的优化方向。
  • Cheng 等人从数学上验证了软目标使学生模型比从原始数据中进行优化学习具有更高的学习速度和更好的性能。

蒸馏的知识形式

原始知识蒸馏(Vanilla Knowledge Distillation) 仅仅是从教师模型输出的软目标中学习出轻量级的 学生模型。 当模型变深时,仅学习输出是远远不够的。可以使用的知识形式有输出特征知识、中间特征知识、关系特征知识和结构特征知识。

从学生解题的角度,这 4 种知识形式可以形象比喻为:输出特征知识提供了解题的答案,中间特征知识提供了解题的过程,关系特征知识提供了解题的方法,结构特征知识则提供了完整的知识体系。

在这里插入图片描述

输出特征知识

输出特征知识通常指的是教师模型的最后一层特征,主要包括逻辑单元和软目标的知识。

输出特征知识蒸馏的主要思想是促使学生能够学习到教师模型的最终预测,以达到和教师模型一样的预测性能。

相关文献的总结如下:
任务名称知识的类型描述目标分类软目标知识分类任务重点是学生如何模仿到教师的软目标。与硬目标知识相比,教师的软 目标提供给学生模型更多的类间知识。 目标分类任务的知识蒸馏就是学习教师 模型输出的软目标知识。目标检测边界框回归知识和软目标知识目标检测网络的最后输出层包含区域建议网络(Region Proposal Network,RPN) 的边界框回归和区域分类网络(Region Classification Network,RCN)的软目标知 识. 前者的知识用于定位,后者用于分类。目标分割像素级软目标知识和空间上下文结构知识目标分割需要分割出具有抽象语义的目标,即要对目标的每一个像素都要分类。 同时由于教师和学生模型输出的特征尺寸并不总是能直接进行匹配,因此要求学生模型在特征映射时学习教师模型的空间上下文结构知识。序列特征序列级输出概率分布序列特征任务在数据对齐的情况下都可以使用帧级的知识蒸馏,其主要思想是匹配教师和学生间输出离散化的软目标。 然而在数据没有对齐的情况下,帧级的知识蒸馏实时地使用教师模型输出的每一种可能的序列分布来指导学生模型的训练。 序列级的知识蒸馏则在一个样本中,只将教师模型得分最高的输出序 列分布作为学生模型的监督信号,最优的序列分布代表了序列级的知识特性。

中间特征知识

Gotmare 等人的研究表明:教师的软目标主要是指导学生在深层次的网络层训练,而在学生网络的特征提取层的指导较少。中间特征知识的主要思想是从教师中间的网络层中提取特征来充当学生模型中间层输出的提示(Hint)。 它不仅需要利用教师模型的输出特征知识,还需要使用教师模型隐含层中的特征图知识。

最早使用教师模型中间特征知识的是 FitNets,其主要思想是促使学生的隐含层能预测出与教师隐含层相近的输出。隐藏层损失定义为:

          L
         
         
          Hint 
         
        
        
         
          (
         
         
          
           W
          
          
           Guided 
          
         
         
          ,
         
         
          
           W
          
          
           r
          
         
         
          )
         
        
        
         =
        
        
         
          1
         
         
          2
         
        
        
         ∥
        
        
         
          u
         
         
          h
         
        
        
         
          (
         
         
          x
         
         
          ;
         
         
          
           W
          
          
           Hint 
          
         
         
          )
         
        
       
      
     
    
    
     
      
       
        
         −
        
        
         r
        
        
         
          (
         
         
          
           u
          
          
           g
          
         
         
          
           (
          
          
           x
          
          
           ;
          
          
           
            W
           
           
            Guided 
           
          
          
           )
          
         
         
          ;
         
         
          
           W
          
          
           r
          
         
         
          )
         
        
        
         
          ∥
         
         
          2
         
        
       
      
     
    
   
   
     \begin{array}{r} L_{\text {Hint }}\left(W_{\text {Guided }}, W_r\right)=\frac{1}{2} \| u_h\left(x ; W_{\text {Hint }}\right) \\ -r\left(u_g\left(x ; W_{\text {Guided }}\right) ; W_r\right) \|^2 \end{array} 
   
  
 LHint ​(WGuided ​,Wr​)=21​∥uh​(x;WHint ​)−r(ug​(x;WGuided ​);Wr​)∥2​

在这里插入图片描述

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

知识蒸馏中应用最广的度量学习算法是 KL 散度,如用于最小化教师与学生 模型输出的相对概率分布。

关系特征知识

基于网络层的关系蒸馏

  1. 基于FSP矩阵

关系特征指的是教师模型不同层和不同数据样本之间的关系知识。关系特征知识蒸馏认为学习的 本质不是特征输出的结果,而是层与层之间和样本数据之间的关系。它的重点是提供一个恒等的关系映射使得学生模型能够更好的学习教师模型的关系知识。

Yim 等人的“Flow of Solution Procedure”(FSP)矩阵,其中通过模仿教师生成的 FSP 矩阵来实施对学生模型训练的指导。FSP 矩阵的知识蒸馏可视化结构如图:

在这里插入图片描述

Yim 等人的工作分为两阶段训练. 第一阶段最小化师生间的 FSP 矩阵距离,以使学生能学习到教师模型层间的关系知识。 第二阶段是使用正常的分类损失来优化学生模型。

Park 等人提出了基于样本的角度关系和距离关系蒸馏。其中的角度关系蒸馏用来测量三个样本角度关系。

缺点:基于 FSP 矩阵的方法要求网络的中间层具有相同大小和数量的过滤器,当师生网络层的维度不同时,该方法并不能用于表示学习。

  1. 探索不同架构网络层的内部关系特征
  • 捕获网络层映射相似性的雅可比矩阵
  • 使用径向基函数计算层间的相关性

这些方法由于不受师生网络结构的限制,特别适用于学生模型的模型压缩。

基于样本间的关系特征知识蒸馏

基于样本间的关系特征知识蒸馏是额外利用了不同样本之间的关系知识,即把教师模型捕捉到的数据内部关系迁移到学生模型中。

“学习排名”(Learning to Rank)算法是该方法中较早的工作,它将知识蒸馏形式化为师生网络之间样本相似性的排列匹配问题,提出利用不同样本之间的关系,并传递交叉样本的相似性知识来改善学生模型。

结构特征知识

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

结构特征知识蒸馏是以互补的形式利用多种知识来促使学生的预测能包含和教师一样丰富的结构知识。

不同工作构成结构化特征知识的成份是不同的,比如:

  • 结合样本特征、样本间关系和特征空间变换作为结构化的知识;
  • 将成对像素的关系和像素间的整体知识作为结构化知识;
  • 由输出特征、中间特征和全局预测特征组成的结构化知识。

知识蒸馏的方法

知识合并

知识合并(Knowledge Amalgamation,KA)是将多个教师或多个任务的知识迁移到单个学生模型,从而使其可以同时处理多个任务。

  • 一种方法是将多个教师模型的特征知识进行融合,然后将所获得的融合特征作为学生模型学习参数的指导。如下图所示:

在这里插入图片描述

  • 另一种方法是学生模型同时向多个教师模型学习多个任务的特征。引入了选择性学习,将多个教师模型中给出置信度最高的预测作为学生模型的学习目标,以降低错误的监督信息对学生模型的误导。
  • 另外,可以通过共享网络层直接学习多教师的特征来实现多任务知识的合并。即将教师中的相应层替换为学生中要学习的层,使学生的网络块与相应的教师一起学习。

多教师学习

在这里插入图片描述

知识合并和多教师学习都是学习多个教师模型的知识,但是它们的目标却是不一样的。

  • 知识合并是要促使学生模型能同时处理多个教师模型原先的任务;
  • 多教师学习是提高学生模型在单个任务上的性能。

You 等人利用投票策略从多个教师网络中筛选出相对不同的中间特征知识来强化学生模型的性能,其多个教师和单个学生模型的预测任务是相同的。

多个教师模型通过提供多个信息流对学生模型的任务提供了多种解释,学生模型可以利用教师模型对目标任务的“看法”(Views)来提高模型的性能。

  • 随机选择一位教师模型的软目标;
  • 通过动态权重选择较高效教师模型的软目标。

一些工作特别强调各个教师模型间知识的互补性,即它们自行选择具有互补性知识的教师模型。

Jiang 等人提出同时向能提供稳定信号的长期教师和高质量训练更新的短期教师学习来改善学生模型。

  • 长期的教师信号提供了稳定的教师信息,保证了师生的差异;
  • 短期的教师信号则保证了高质量的教学。

教师助理

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

在这里插入图片描述

  • Wang等人使用 GAN 的判别器充当教师助理,其工作原理如上图所示。该工作将学生模型当做生成器,判别器促使学生模型对输入数据生成和教师模型同样的特征分布。
  • Mirzadeh 等人使用一个中等规模的网络(介于教师和学生模型之间)充当教师助理来弥合学生和教师之间的差距,即教师助理先从教师模型中学习到知识后,再传递到学生模型中。
  • 为了利用异构教师模型的中间特征,Passalis等人发现教师助理能够允许教师和学生在网络层之间进行直接而有效的一对一匹配来减少“代沟”问题。
  • Gao等人让学生模型以及教师助理以互补的方式从教师模型那里获得知识,其中教师助理主要学习教师和学生的残差错误.。

跨模态蒸馏

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

Albanie等人提出的的跨模态情感识别方法人在说话时脸部的情感和语音情感是一致的,利用这种同步对齐的模态信息将无标签的视频作为输入数据进行训练,视频中的图片进入预训练的人脸教师模型中产生软目标来指导学生的语音模型训练。
在这里插入图片描述
论文描述Aytar 等人将大规模无标签视频中的图片预测软标签对视频中的声音识别进行指导学习.Girdhar 等人收集和标记大型和干净的静态图像数据集作为教师训练和引导无标签的视频学习丰富的知识表示.Liu 等人将现有弱监督检测模型中的局部语义区域和类相关性蒸馏到无标注的多标签图像分类任务中.Gupta 等人将从标注过大样本的 RGB 图像模态中学习得到的特征作为监督信号,用于无标注样本深度和光流图像模态的特征学习.Wang 等人使用知识蒸馏纠正 2D 地标注释重建 3D 姿势估计所犯的一些错误,从而避免对 3D标签的依赖.Luo 等人使用图蒸馏动态学习蒸馏方向和权重来更好利用大规模多模态数据集的“特权信息”Liu 等人将 ImageNet 的语义信息迁移到草图检索任务中.Hoffman 等人提出了一个幻觉网络来学习深度图片的特权信息来提高 RGB 目标检测的性能,它通过在测试时学习教师模型的中间层特征来弥补丢失的信息流.Aditya 等人将基于问题和场景图的附加信息以空间知识的形式用于视觉推理问题中.Ye 等人通过构造实例与实例之间的关系将不同领域教师模型的知识迁移到新领域的学生模型中.Yuan 等人将图像语义理解的知识迁移到文本到图像合成的任务中.Li 等人将磁共振成像的知识以相互学习的方式迁移到计算机断层扫描的分割任务中.Piao 等人将深度的“特权信息”迁移到 RGB 流中.Garcia 等人通过时空表示的乘法连接,利用软目标和硬目标以及特征图之间的距离来学习视频中深度特征的“特权信息”.Tavakolian 等人通过帧自适应加权将视频中每一帧的时空信息蒸馏到图像中.Gu 等人通过强制匹配共享特征空间的方式将视频表示网络所学习的时间知识传播到图像表示网络中.Zhao 等人将从包含两个模态的配对样本的源数据集中学习提炼的交叉模式知识推广到目标数据集Hu 等人通过利用无监督教师模型输出中获得的广泛的相关性信息来监督学生模型的训练.Li 等人传递字幕新闻符号的知识以提高单词级手语识别性能.

相互蒸馏

在这里插入图片描述

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

思想由 Zhang 等人于 2017 年提出,其意义在于没有强大教师的情况下,学生模型可以通过相互学习的集成预测来提高性能。

终身蒸馏

在这里插入图片描述

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

终身

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

Li等人通过引入知识蒸馏来保持旧任务性能的“学习而不遗忘”(Learning without Forgetting)算法。

通过缓存一小部分旧任务数据和产生旧任务相似的输出值或视觉模式都能使网络在学习新任务的同时保持旧任务性能。

自蒸馏

在这里插入图片描述

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

  • Mobahi 等人认为自蒸馏是通过逐渐减少代表解的基函数数量来不断修改正则化。
  • Zhang 等人认为自蒸馏先前的迭代都能为后续的迭代充当教师作用,从而通过多次的迭代之后能学习到多样性的知识。

自蒸馏分为两类:

  • 第一类是使用不同样本信息进行相互蒸馏。其它样本的软标签可以避免网络过度自信的预测,甚至能通过最小化不同样本间的预测分布来减少类内距离。
  • 另一类是单个网络的网络层间进行自蒸馏。 最通常的做法是使用深层网络的特征去指导浅层网络的学习。
    知识蒸馏的方法优点缺点知识合并多用途的学生网络能减少部署的成本和提高模型的利用率.相较于单网络预测单个目标任务,多用途学生网络的性能可能会下降.多教师学习相比于单个老师,多个老师通常能让学生网络学习到更好的、更丰富的知识.难以高效地融合各个教师网络的知识.教师助理减少师生网络存在的“代沟”,有助于学生网络更好地训练.通常会增加训练的成本跨模态蒸馏通过跨模态的数据集来实现少样本学习或半监督学习,减少对带标签数据的依赖.获取同步的跨模态数据并不是一个很容易的任务.相互蒸馏节省训练教师网络的时间,提高了训练的效率.可能会陷入“瞎子带领瞎子”的局面.终身蒸馏能保护旧任务的数据隐私,并提高训练的效率.难以维持旧任务的性能.自蒸馏节省训练教师网络的时间,提高了训练的效率.缺少丰富的外部知识.

本文转载自: https://blog.csdn.net/weixin_43938099/article/details/128086023
版权归原作者 刘皮狠 所有, 如有侵权,请联系我们删除。

“知识蒸馏研究综述”的评论:

还没有评论