知识蒸馏综述: 知识的类型

【GiantPandCV引言】简单总结一篇综述《Knowledge Distillation A Survey》中的内容,提取关键部分以及感兴趣部分进行汇总。这篇是知识蒸馏综述的第一篇,主要内容为知识蒸馏中知识的分类,包括基于响应的知识、基于特征的知识和基于关系的知识。

知识蒸馏简介

定义:知识蒸馏代表将知识从大模型向小模型传输的过程。

作用:可以用于模型压缩和训练加速 手段。

综述梳理思路:

  • 知识蒸馏的种类

  • 训练机制

  • 教师-学生 架构

  • 蒸馏算法

  • 性能比较

  • 实际应用

典型的知识蒸馏KD是Hinton于15年发表的paper,明确了知识蒸馏的想法是让学生模型通过模仿教师模型来取得具有竞争性的性能,甚至可以取得超越教师网络的性能。

知识蒸馏的核心研究:如何将知识从大模型传递给小模型。

知识蒸馏系统的三个核心组件:

  • 知识 knowledge

  • 蒸馏算法 distillation algorithm

  • 教师学生架构 teacher-student architecture

知识蒸馏相关的扩展方向:

  • teacher - student learning

  • mutual learning

  • assistant teaching

  • life long learning

  • self learning

在知识蒸馏中,我们主要关心:知识种类、蒸馏策略、教师学生架构

最原始的蒸馏方法是使用大模型的logits层作为教师网络的知识进行蒸馏,但知识的形式还可以是:激活、神经元、中间层特征、教师网络参数等。可以将其归类为下图中三种类型。

基于响应的知识(Response-Based Knowledge)

基于响应的知识一般指的是神经元的响应,即教师模型的最后一层逻辑输出。

响应知识的loss:

L R e s D ( z t , z s ) = L R ( z t , z s ) L_{R e s D}\left(z_{t}, z_{s}\right)=\mathcal{L}_{R}\left(z_{t}, z_{s}\right) LResD(zt,zs)=LR(zt,zs)

其核心想法是让学生模型模仿教师网络的输出,这是最经典、最简单、也最有效的处理方法

Hinton提出的KD是将teacher的logits层作为soft label.

p ( z i , T ) = exp ⁡ ( z i / T ) ∑ j exp ⁡ ( z j / T ) p\left(z_{i}, T\right)=\frac{\exp \left(z_{i} / T\right)}{\sum_{j} \exp \left(z_{j} / T\right)} p(zi,T)=jexp(zj/T)exp(zi/T)

T是用于控制soft target重要程度的超参数。

那么整体蒸馏loss可以写作:

L Res ⁡ D ( p ( z t , T ) , p ( z s , T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

*pprp*

如果有帮助可以打赏一杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值