综述 | 知识蒸馏(1)

点击上方“机器学习与生成对抗网络”,关注"星标"

获取有趣、好玩的前沿干货!

Knowledge Distillation: A Survey

  • https://arxiv.org/pdf/2006.05525.pdf

  • Jianping Gou、Baosheng Yu、Stephen John Maybank、Dacheng Tao

前言

近年来,深度神经网络在工业和学术界都取得了较大成功,尤其是在计算机视觉任务方面:主要归因于其可扩展性以编码大规模数据(提取特征),并操纵数十亿个模型参数。然而,将这些繁琐的深度模型部署在资源有限的设备(例如,移动电话和嵌入式设备)上也是一个挑战:不仅计算复杂度高,且存储需求大。为此,多种模型压缩和加速技术被提出;其中,知识蒸馏可以有效地从大型“教师”模型学习小型的“学生”模型,迅速受到重视。本文从知识的类别、训练的策略、蒸馏的算法和应用等角度,对知识蒸馏进行了全面调研。此外,简述了知识蒸馏的挑战,并对未来研究进行讨论。

1 简介

2 原始的蒸馏模型

Bucilua等 (2006年)首先提出模型压缩,以将信息从大型模型或模型集合中转移到训练小型模型,而准确率无明显下降。主要思想是学生模型模仿老师模型,并获取相近甚至超越的性能。从大模型学习小模型后来被推广为知识蒸馏(Hinton et al,2015)。

原始的知识蒸馏框架通常包含一个或多个大型的预训练教师模型和一个小型的学生模型,教师模型通常比学生模型大得多。主要思想是在教师模型的指导下训练高效的学生模型以获得具有竞争力的性能。而来自教师模型的监督信号(通常称为教师模型学到的“知识”)可以帮助学生模型模仿教师模型的行为。在典型的图像分类任务中,logit(例如深层神经网络中最后一层的输出)被用作来自教师模型的知识的载体,而训练数据样本并未显示提供该知识。例如,猫的图像被错误地归类为狗的可能性很小,但是这种错误的可能性仍然比猫误认为汽车的可能性高很多倍(Liu等,2018c)。另一个例子是,手写数字2的图像与数字3相比更类似于数字7。这种由教师模型学习的知识在(Hinton et al。,2015)中被称为dark knowledge

原始的知识蒸馏中转移知识的方法是:给定一个logits z向量作为深度模型的最后一个完全连接层的输出,因此 是第i类的logit,则输入属于第i类的概率 可以为由softmax函数估算

因此,通过教师模型获得的软目标soft targets的预测包含dark knowledge,可以用于指导将知识从教师模型转移到学生模型;one-hot标签也称为硬目标hard target。关于软目标和硬目标的直观示例如图3所示。

此外,温度因子T被引入控制每个软目标的重要性,如

较高的温度会在各个类别上产生较“软”的概率分布。具体来说,当T→∞时,所有类别都具有相同的概率。当T→0时,软目标变为one-hot labels,即硬目标。教师模型的软目标和真实GT标签对于提高学生模型的表现都非常重要(Bucilua等,2006;Hinton等,2015;Romero等,2015), 分别记作蒸馏损失和学生损失。定义蒸馏损失以匹配教师模型和学生模型之间的logits,如下所示

其中 是教师和学生模型的logits。定义学生损失为真实GT标签和学生模型的logits的交叉熵:

联合训练:

3 “知识”的分类

基于响应的知识(Response-Based Knowledge),基于特征的知识(feature-based knowledge)和基于关系的知识(relation-based knowledge)。

  • 原始的知识蒸馏使用大深度模型的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; Tung和Mori,2019; Yu等人。,2019)。教师模型的参数(或各层之间的连接)也包含其他知识(Liu等人,2019c)。

4 蒸馏的策略

根据教师模型是否与学生模型同时更新,知识蒸馏的学习方案可以直接分为三大类:离线蒸馏,在线蒸馏和自蒸馏,如图6所示

  • 离线蒸馏

在原始知识蒸馏方法中(Hinton等,2015),知识从预训练的教师模型转移到学生模型,整个训练过程有两个阶段,即:1)教师模型是在蒸馏之前、首先在一组训练样本上训练的;2)教师模型用logit或中间特征的形式提取知识,指导蒸馏过程中学生模型的训练。离线蒸馏的第一阶段通常不作为知识蒸馏的一部分进行讨论,即,假设教师模型是预定义的,很少关注教师模型结构及其与学生模型的关系。因此,离线方法主要集中于改进知识转移的不同部分,包括知识的设计(Hinton等,2015;Romero等,2015)以及用于匹配特征或分布匹配的损失函数(Huang和Wang,2017;Passalis和Tefas,2018;Zagoruyko和Komodakis,2017;Mirzadeh等,2019;Li等,2018;Heo等,2019b;Asif等,2019)。

离线方法的主要优点是简单易行。例如,教师模型可能是位于不同机器上的不同软件训练的模型。知识可被提取而存储在缓存中。显然,离线蒸馏方法总是采用单向知识转移和两阶段训练程序。尽管如此,离线仍需要一个复杂的高容量教师网络及其大量的训练数据和时间。

  • 在线蒸馏

尽管离线蒸馏方法简单有效,但离线中的一些问题已引起研究界的越来越多的关注(Mirzadeh et al。,2019)。为了克服局限性,提出在线蒸馏以进一步改善学生模型的性能,特别是在没有大容量高性能教师模型的情况下(Zhang等人,2018b; Chen等人,2020a) 。

在线蒸馏中,教师模型和学生模型同时更新,整个知识蒸馏框架是端到端训练的。近两年已提出了多种在线知识蒸馏方法(Zhang等人,2018b; Chen等人,2020a; Zhu and Gong,2018; Xie等人,2019; Anil等人, 2018; Kim等,2019b; Zhou等,2018)。

比如,在 deep mutual learning 深度互学习中(Zhang等人,2018b),多个神经网络以协作方式进行,在训练过程中,任何一个网络都可以作为学生模型,其他模型可以作为老师。Chen等(2020a)进一步将auxiliary peers 和 a group leader 引入深度互学习中,以形成多种peer模型。为了降低计算成本,Zhu and Gong(2018)提出了一种多分支架构,其中每个分支表示一个学生模型,不同分支共享相同的骨干网络。Kim等人没有使用logits ,而引入特征融合模块来构建教师分类器。谢等(2019)没有使用(常规)卷积层去构建学生模型。Anil等利用在线蒸馏来训练大规模分布式神经网络,并提出了一种称为共同蒸馏的在线蒸馏变体,训练具有相同架构的多个模型,并且通过转移其他模型的知识来训练任何一个模型。最近,一种在线对抗知识蒸馏方法同时利用类别概率和特征图的知识,由鉴别者同时训练多个网络(Chung等,2020)。

  • 自蒸馏

在自蒸馏中,相同的网络被用于教师和学生模型(Yuan等人,2019; Zhang等人,2019b; Hou等人,2019; Yang等人,2019b; Yun等人,2019;Hahn和Choi,2019;Lee等人,2019a)。它也可视为在线蒸馏的特殊情况。

为了进一步直观地了解蒸馏,还可以从人类教师-学生学习的角度总结离线,在线和自蒸馏。离线蒸馏意味着知识渊博的老师向新生传授知识;在线蒸馏是指师生在老师为主要监督下互相学习;自蒸馏是学生无需老师就能自学知识。这三种蒸馏方法可以结合起来进行优势互补。

5 教师-学生网络架构

知识蒸馏原本是为了压缩深度神经网络(Hinton et al,2015)。深层神经网络的复杂性主要来自两个方面:深度和宽度。通常需要从更深、更宽的神经网络到更浅和更“瘦”的神经网络(Romero等,2015)。

学生网络通常选择为:1)教师网络的简化版本:更少层数,每层通道数更少(Wang等人,2018a);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)。

待续。

6 蒸馏算法

7 蒸馏应用

-----------

猜您喜欢:

超100篇!CVPR 2020最全GAN论文梳理汇总!

拆解组新的GAN:解耦表征MixNMatch

StarGAN第2版:多域多样性图像生成

附下载 | 《可解释的机器学习》中文版

附下载 |《TensorFlow 2.0 深度学习算法实战》

附下载 |《计算机视觉中的数学方法》分享

《基于深度学习的表面缺陷检测方法综述》

《零样本图像分类综述: 十年进展》

《基于深度神经网络的少样本学习综述》

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值