Loading [MathJax]/jax/input/TeX/jax.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >综述 | 知识蒸馏(1)

综述 | 知识蒸馏(1)

作者头像
公众号机器学习与AI生成创作
发布于 2020-07-24 07:32:54
发布于 2020-07-24 07:32:54
1.6K0
举报

点击上方“机器学习与生成对抗网络”,关注"星标" 获取有趣、好玩的前沿干货!

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向量作为深度模型的最后一个完全连接层的输出,因此

zi

是第i类的logit,则输入属于第i类的概率

pi

可以为由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,如下所示

其中

zt

zs

是教师和学生模型的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 蒸馏应用

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与AI生成创作 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据挖掘机器学习[四]---汽车交易价格预测详细版本{嵌入式特征选择(XGBoots,LightGBM),模型调参(贪心、网格、贝叶斯调参)}
 题目出自阿里天池赛题链接:零基础入门数据挖掘 - 二手车交易价格预测-天池大赛-阿里云天池
汀丶人工智能
2022/12/21
1.2K0
数据挖掘机器学习[四]---汽车交易价格预测详细版本{嵌入式特征选择(XGBoots,LightGBM),模型调参(贪心、网格、贝叶斯调参)}
模型建立与调参
本篇文章将会从简单的线性模型开始,了解如何建立一个模型以及建立完模型之后要分析什么东西,然后学习交叉验证的思想和技术,并且会构建一个线下测试集,之后我们会尝试建立更多的模型去解决这个问题,并对比它们的效果,当把模型选择出来之后,我们还得掌握一些调参的技术发挥模型最大的性能,模型选择出来之后,也调完参数,但是模型真的就没有问题了吗?我们还需要绘制学习率曲线看模型是否存在过拟合或者欠拟合的问题并给出相应的解决方法
mathor
2020/04/03
2K0
数据挖掘机器学习[六]---项目实战金融风控之贷款违约预测
因为文档是去年弄的,很多资料都有点找不到了,我尽可能写的详细。后面以2021年研究生数学建模B题为例【空气质量预报二次建模】再进行一个教学。
汀丶人工智能
2022/12/21
1.7K0
数据挖掘机器学习[六]---项目实战金融风控之贷款违约预测
数据挖掘实践(金融风控):金融风控之贷款违约预测挑战赛(下篇)xgboots/lightgbm/Catboost等模型--模型融合:stacking、blend
通过组合多个学习器来完成学习任务,通过集成方法,可以将多个弱学习器组合成一个强分类器,因此集成学习的泛化能力一般比单一分类器要好。
汀丶人工智能
2023/05/17
4.3K0
数据挖掘实践(金融风控):金融风控之贷款违约预测挑战赛(下篇)xgboots/lightgbm/Catboost等模型--模型融合:stacking、blend
LightGBM+Optuna 建模自动调参教程!
在kaggle机器学习竞赛赛中有一个调参神器组合非常热门,在很多个top方案中频频出现LightGBM+Optuna。知道很多小伙伴苦恼于漫长的调参时间里,这次结合一些自己的经验,给大家带来一个LGBM模型+OPTUNA调参的使用教程,这对可谓是非常实用且容易上分的神器组合了,实际工作中也可使用。
Python数据科学
2023/08/29
1.5K0
LightGBM+Optuna 建模自动调参教程!
机器学习算法之XGBoost及其自动调参(算法+数据+代码)
本文将利用一个excel数据对常见机器学习算法(XGBoost、Random Forest随机森林、ET极度随机树、Naïve Bayes高斯朴素贝叶斯、KNN K近邻、Logistic Regression逻辑回归、Decision Tree 决策树)的使用过程进行简单的介绍,并对XGBoost算法的自动调参方法进行详解,机器学习算法的详细讲解在机器学习专辑里都有介绍。
Minerva
2020/07/06
48.6K1
LightGBM 如何调参
本文结构: 什么是 LightGBM 怎么调参 和 xgboost 的代码比较 ---- 1. 什么是 LightGBM Light GBM is a gradient boosting framew
杨熹
2018/06/19
3.8K0
工程能力UP!| LightGBM的调参与并行
【这里必须说一下,lightbg的参数的同义词实在太多了,很多不同的参数表示的是同一个意思,不过本文中使用“/”分开】
机器学习炼丹术
2020/07/23
2.5K0
数据挖掘神器LightGBM详解
这些系统下的 XGBoost 安装,大家只要基于 pip 就可以轻松完成了,在命令行端输入命令如下命令即可等待安装完成。
算法进阶
2023/12/26
1.4K0
数据挖掘神器LightGBM详解
LightGBM实战
[LightGBM] [Warning] No further splits with positive gain, best gain: -inf [LightGBM] [Warning] No further splits with positive gain, best gain: -inf [99] valid_0's multi_logloss: 0.264218 [LightGBM] [Warning] No further splits with positive gain, best gain: -inf [LightGBM] [Warning] No further splits with positive gain, best gain: -inf [LightGBM] [Warning] No further splits with positive gain, best gain: -inf [100] valid_0's multi_logloss: 0.264481 [0, 1, 1, 0, 2, 1, 2, 0, 0, 2, 1, 0, 2, 1, 1, 0, 1, 1, 0, 0, 1, 1, 2, 0, 2, 1, 0, 0, 1, 2] 0.9666666666666667
西西嘛呦
2021/02/25
1.9K0
LightGBM实战
【数据挖掘实战】 房价预测
本次竞赛有 79 个解释变量(几乎)描述了爱荷华州艾姆斯住宅的各个方面,需要预测每套住宅的最终价格。
机器学习司猫白
2025/01/21
1390
【数据挖掘实战】 房价预测
突破最强算法模型,LightGBM !!!
LightGBM呢,是微软开发的一个机器学习工具,擅长处理大数据和高维数据。LightGBM是基于决策树的提升方法,通过不断调整和优化预测模型来提高精度。与其他算法相比,LightGBM速度更快、内存占用更少、准确率更高,并且能处理类别特征。
Python编程爱好者
2024/07/12
5410
突破最强算法模型,LightGBM !!!
【白话机器学习】算法理论+实战之LightGBM算法
如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,在这简单的先捋一捋, 常见的机器学习算法:
石晓文
2020/06/28
7.7K0
数据挖掘机器学习[五]---汽车交易价格预测详细版本{模型融合(Stacking、Blending、Bagging和Boosting)}
 题目出自阿里天池赛题链接:零基础入门数据挖掘 - 二手车交易价格预测-天池大赛-阿里云天池
汀丶人工智能
2022/12/21
6970
数据挖掘机器学习[五]---汽车交易价格预测详细版本{模型融合(Stacking、Blending、Bagging和Boosting)}
【推荐收藏】模型评估与调参(Python版)
“管道工作流”这个概念可能有点陌生,其实可以理解为一个容器,然后把我们需要进行的操作都封装在这个管道里面进行操作,比如数据标准化、特征降维、主成分分析、模型预测等等,下面还是以一个实例来讲解。
Sam Gor
2019/07/08
1.9K0
LightGBM 可视化调参
大家好,在100天搞定机器学习|Day63 彻底掌握 LightGBM一文中,我介绍了LightGBM 的模型原理和一个极简实例。最近我发现Huggingface与Streamlit好像更配,所以就开发了一个简易的 LightGBM 可视化调参的小工具,旨在让大家可以更深入地理解 LightGBM
Ai学习的老章
2022/04/11
1.5K0
LightGBM 可视化调参
还在当调参侠?推荐这三个超参优化库【含示例代码】
在传统的算法建模过程中,影响算法性能的一个重要环节、也可能是最为耗时和无趣的一项工作就是算法的调参,即超参数优化(Hyper-parameter Optimization,HPO),因此很多算法工程师都会调侃的自称"调参侠"。近期在研究一些AutoML相关的论文和实现,而在AutoML中的一个核心组件就是HPO。借此机会,本文梳理总结Python中三种常见的可实现HPO的库,并提供一个简单的示例。
luanhz
2021/08/20
7930
万字长文总结机器学习的模型评估与调参
选自 Python-Machine-Learning-Book On GitHub
Sam Gor
2019/10/17
8780
【机器学习】集成学习代码练习
课程完整代码:https://github.com/fengdu78/WZU-machine-learning-course
黄博的机器学习圈子
2022/05/25
4730
万字长文详解模型调参神器-Hyperopt
①随机搜索算法 ②模拟退火算法 ③TPE算法 来对某个算法模型的最佳参数进行智能搜索,它的全称是Hyperparameter Optimization。
用户8949263
2022/05/23
3.8K0
万字长文详解模型调参神器-Hyperopt
推荐阅读
相关推荐
数据挖掘机器学习[四]---汽车交易价格预测详细版本{嵌入式特征选择(XGBoots,LightGBM),模型调参(贪心、网格、贝叶斯调参)}
更多 >
交个朋友
加入[腾讯云] DeepSeek开发者交流群
前沿技术深度讨论 发展开发者人脉圈
加入腾讯云技术交流站
洞悉AI新动向 Get大咖技术交流群
加入AICoding云开发技术交流群
智能编码实践分享 聚焦AI+云开发
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档