问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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

创作时间:
作者:
@小白创作中心

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

引用
CSDN
1.
https://blog.csdn.net/DD_PP_JJ/article/details/121578722

知识蒸馏是将知识从大模型向小模型传输的过程,可以用于模型压缩和训练加速。本文将介绍知识蒸馏的基本概念、核心组件以及知识的分类,包括基于响应的知识、基于特征的知识和基于关系的知识。

知识蒸馏简介

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

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

综述梳理思路:

  • 知识蒸馏的种类
  • 训练机制
  • 教师-学生 架构
  • 蒸馏算法
  • 性能比较
  • 实际应用

典型的知识蒸馏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_{ResD}(z_t, z_s) = L_R(z_t, z_s)
$$

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

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

$$
p(z_i, T) = \frac{\exp(z_i / T)}{\sum_j \exp(z_j / T)}
$$

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

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

$$
L_{ResD}(p(z_t, T), p(z_s, T))
$$

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号