Hinton的文章《Distilling the Knowledge in a Neural Network》首次提出了知识蒸馏的概念,通过引入教师网络用以诱导学生网络的训练,实现知识迁移。所以其本质上和迁移学习有点像,但实现方式是不一样的。用“蒸馏”这个词来形容这个过程是相当形象的。用下图来解释这个过程。

教师网络:大规模,参数量大的复杂网络模型。难以应用到设备端的模型。
学生网络:小规模,参数量小的精简网络模型。可应用到设备端的模型,俗称可落地模型。

我们可以认为教师网络是一个混合物,网络复杂的结构就是杂质,是我们不需要用到的东西,而网络学到的概率分布就是精华,是我们需要的。如上图所示,对于教师网络的蒸馏过程,我们可以形象的认为是通过温度系数T,将复杂网络结构中的概率分布蒸馏出来,并用该概率分布来指导精简网络进行训练。整个通过温度系数T的蒸馏过程由如下公式实现:

从上述公式中可以看出,T的数值越大则所有类的分布越‘软’(平缓)。按照softmax的分布来看,随着T参数的增大,这个软目标的分布更加均匀。

一个简单的知识蒸馏的形式是:用复杂模型得到的“软目标”为目标(在softmax中T较大),用“转化”训练集训练小模型。训练小模型时T不变仍然较大,训练完之后T改为1。

当正确的标签是所有的或部分的传输集时,这个方法可以通过训练被蒸馏的模型产生正确的标签。一种方法是使用正确的标签来修改软目标,但是我们发现更好的方法是简单地使用两个不同目标函数的加权平均值。第一个目标函数是带有软目标的交叉熵,这种交叉熵是在蒸馏模型的softmax中使用相同的T计算的,用于从繁琐的模型中生成软目标。第二个目标函数是带有正确标签的交叉熵。这是在蒸馏模型的softmax中使用完全相同的逻辑,但在T=1下计算。我们发现,在第二个目标函数中,使用一个较低权重的条件,得到了最好的结果。由于软目标尺度所产生的梯度的大小为1/T^2,所以在使用硬的和软的目标时将它们乘以T^2是很重要的。这确保了在使用T时,硬和软目标的相对贡献基本保持不变。

1. T参数是什么?有什么作用?

T参数为了对应蒸馏的概念,在论文中叫的是Temperature,也就是蒸馏的温度。T越高对应的分布概率越平缓,为什么要使得分布概率变平缓?举一个例子,假设你是每次都是进行负重登山,虽然过程很辛苦,但是当有一天你取下负重,正常的登山的时候,你就会变得非常轻松,可以比别人登得高登得远。

同样的,在这篇文章里面的T就是这个负重包,我们知道对于一个复杂网络来说往往能够得到很好的分类效果,错误的概率比正确的概率会小很多很多,但是对于一个小网络来说它是无法学成这个效果的。我们为了去帮助小网络进行学习,就在小网络的softmax加一个T参数,加上这个T参数以后错误分类再经过softmax以后输出会变大(softmax中指数函数的单增特性,这里不做具体解释),同样的正确分类会变小。这就人为的加大了训练的难度,一旦将T重新设置为1,分类结果会非常的接近于大网络的分类效果。

2. soft target(“软目标”)是什么?

soft就是对应的带有T的目标,是要尽量的接近于大网络加入T后的分布概率。

3. hard target(“硬目标”)是什么?

hard就是正常网络训练的目标,是要尽量的完成正确的分类。

4. 两个目标函数究竟是什么?

两个目标函数也就是对应的上面的soft target和hard target。这个体现在Student Network会有两个loss,分别对应上面两个问题求得的交叉熵,作为小网络训练的loss function。

5. 具体蒸馏是如何训练的?

Teacher:  对softmax(T=20)的输出与原始label求loss。

Student: (1)对softmax(T=20)的输出与Teacher的softmax(T=20)的输出求loss1。

     (2)对softmax(T=1)的输出与原始label求loss2。

        (3)loss = loss1+loss2

我们最终的学习目标是学生网络能够学习到教师网络的概率分布,

知识蒸馏(Distillation)相关推荐

  1. 知识蒸馏(Knowledge Distillation)详细深入透彻理解重点

    知识蒸馏是一种模型压缩方法,是一种基于"教师-学生网络思想"的训练方法,由于其简单,有效,在工业界被广泛应用.这一技术的理论来自于2015年Hinton发表的一篇神作: 论文链接 ...

  2. 【知识蒸馏】ICCV21_Channel-wise Knowledge Distillation for Dense Prediction

    文章目录 一.背景 二.动机 三.方法 3.1 回顾 Spatial Distillation 3.2 Channel-wise Distillation 四.效果 五.训练和测试 六.代码解析 论文 ...

  3. Knowledge Distillation | 知识蒸馏经典解读

    作者 | 小小 整理 | NewBeeNLP 写在前面 知识蒸馏是一种模型压缩方法,是一种基于"教师-学生网络思想"的训练方法,由于其简单,有效,在工业界被广泛应用.这一技术的理论 ...

  4. 【李宏毅2020 ML/DL】P51 Network Compression - Knowledge Distillation | 知识蒸馏两大流派

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  5. CVPR2022知识蒸馏用于目标检测:Focal and Global Knowledge Distillation for Detectors

    论文下载:https://arxiv.org/abs/2111.11837 源码下载:https://github.com/yzd-v/FGD Abstract 知识蒸馏已成功应用于图像分类.然而目标 ...

  6. 【2021知识蒸馏】Show, Attend and Distill:Knowledge Distillation via Attention-based Feature Matching

    [2021知识蒸馏]Show, Attend and Distill:Knowledge Distillation via Attention-based Feature Matching 1.问题背 ...

  7. 【CVPR 2021】树状决策知识蒸馏:Tree-like Decision Distillation

    [CVPR 2021]树状决策知识蒸馏:Tree-like Decision Distillation 论文地址: 主要问题: 主要思路: 具体实现: 基本符号: Tree-like Decision ...

  8. 【AAAI 2021】跨层知识蒸馏:Cross-Layer Distillation with Semantic Calibration

    [AAAI 2021]跨层知识蒸馏:Cross-Layer Distillation with Semantic Calibration 论文地址: 代码地址: 主要问题: 主要思路: 具体实现: 基 ...

  9. 【AAAI 2021】多出口架构的知识蒸馏:Harmonized Dense Knowledge Distillation Training for Multi-Exit Architectures

    [AAAI 2021]多出口架构的知识蒸馏:Harmonized Dense Knowledge Distillation Training for Multi-Exit Architectures ...

  10. 知识蒸馏论文翻译(1)——CONFIDENCE-AWARE MULTI-TEACHER KNOWLEDGE DISTILLATION(多教师知识提炼)

    知识蒸馏论文翻译(1)--CONFIDENCE-AWARE MULTI-TEACHER KNOWLEDGE DISTILLATION(多教师知识提炼) 文章目录 知识蒸馏论文翻译(1)--CONFID ...

最新文章

  1. 浅谈Promise对象在ReactNative中的使用
  2. python 语音识别 windows_window下安装CMUSphinx实现语音识别(python+SpeechRecognition+PocketSphinx)...
  3. c语言linux打印运行时间(耗时) gettimeofday()、timeval、<sys/time.h>
  4. CANopen | 对象字典OD 02 - 修改CANopen节点的心跳报文发送间隔
  5. oracle获取上年年初,【Oracle】TRUNC:获取去年年初和年末,获取月初和月末;
  6. oracle 登录dba,在Oracle10gisqlplus下登录dba用户
  7. ReactNative入门 —— 动画篇(下)
  8. 我是如何获取新知识的?
  9. Smart3D运行过程中遇到的问题(持续更新)
  10. [Asp.Net Core]Session的使用
  11. 我的AI之路(51)--用自己的UCF101数据集训练3D识别模型video-caffe
  12. word如何让单页变横向
  13. 实习一个月,自我总结
  14. 发那科2021参数_FANUC常用参数
  15. 美团外卖的用户画像怎么设计?用户画像全流程讲解!
  16. 怎么把qlv格式转换成mp4添加到编辑软件中
  17. 【无标题】残余应力 conception
  18. 深圳-国信证券项目组-市场风险二期
  19. 魔界中的黑V天險(2)
  20. CVPR2019 | Libra R-CNN 论文解读

热门文章

  1. 因特网,以太网和互联网,三个有什么区别?
  2. 了解Oracle RAC Brain Split Resolution集群脑裂协议
  3. 最新研究:朝九晚五可能会让你的身心受到巨大伤害!
  4. kali系统升级(包含软件信息、所有软件、整个系统)
  5. 菜鸟教程mysql创建表_MySQL 创建数据库 | 菜鸟教程
  6. nova launcher_如何访问Nova Launcher的“实验室”设置以进行实验功能
  7. 高中生也能成为软件达人吗?
  8. mysql分组取出每组地一条数据_MYSQL实现分组排序并取组内第一条数据
  9. 201671030109 韩艳艳 实验三作业互评与改进报告
  10. 舆情监测系统适用哪些行业,如何选择舆情监测系统?