知识蒸馏原理

0.知识蒸馏(模型压缩的一种方法)

将一个参数多的大模型蒸馏成参数少的小模型,预测结果相同。

1.蒸馏

在这里插入图片描述
去掉杂质,变成蒸馏水(更纯净)

2.为什么要蒸馏

在这里插入图片描述
老师网络大,将老师的知识迁移到学生(蒸馏),学生的网络结构小

在这里插入图片描述知识蒸馏在神经网络中的图示

在这里插入图片描述
终端设备算力有限,教师网络结构太大,所以将学生模型部署到设备

在这里插入图片描述
大模型的参数变化近年

在这里插入图片描述
轻量化网络的方法分类

3.知识的表示与迁移

在这里插入图片描述

在这里插入图片描述
输入马的图片,输出的类别
在这里插入图片描述
硬标签:缺点是得出驴和汽车的概率均为0,这是不科学的
软标签:给出了三个类别的概率,马和驴的概率较高,说明两者相似度高,马和汽车概率差异大,说明两者相似度低。
通过硬标签对教师网络进行训练,得出软标签,然后用软标签训练学生网络,就可以得到更多的信息。

在这里插入图片描述
手写数字的例子
在这里插入图片描述
硬标签会将它有多像谁、多不像谁的信息给丢掉了,而软标签保留了这些信息。
在这里插入图片描述

4.蒸馏温度T

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
T越高,越柔和

在这里插入图片描述
知识蒸馏的计算实例

5.知识蒸馏过程

在这里插入图片描述
在这里插入图片描述
教师网络是已经训练好的网络,学生网络是还没训练的网络(只进行了初始化)
distillaton loss :就是老师教学生马和驴之间有什么区别,马和汽车之间有什么区别,驴和汽车之间有什么区别。
student loss:相当于直接看答案,不告诉你类别之间的区别。

在这里插入图片描述

在这里插入图片描述
蒸馏好的学生模型在预测时不需要温度,即令T=1

6.知识蒸馏的应用场景

在这里插入图片描述
少样本、零样本:即使你没有见过“3”,但老师会告诉你什么是“3”
无限大、无监督数据集:将这些数据交给教师网络,教师网络得出结果,然后教师会交学生如何得出相应的结果。
迁移学习:将预测CT图像的模型,应用到预测动物图像。
知识蒸馏:将一个大型模型的知识迁移到一个小型模型上。

7.知识蒸馏背后的机理

在这里插入图片描述
在这里插入图片描述
见解1:
教师网络的求解空间是绿色框,学生求解空间是蓝色框
教师网络训练的结果收敛到红色框
没有经过蒸馏的学生网络训练的结果收敛到黄色框
经过蒸馏的学生网络,会在教师网络的引导下训练结果收敛到橙色框

在这里插入图片描述
见解2:大模型包含的知识(特征)比较冗余,知识蒸馏就是将有用的知识(特征)进行迁移、泛化,最后小模型的预测结果和大模型非常相似。

8.为什么用soft targets 而不用 label smoothing?

在这里插入图片描述

在这里插入图片描述
lael smoothing :除了最高概率,其余均赋值一个常数,这样就丢失了相似性的信息

在这里插入图片描述
label smoothing 例子

9.知识蒸馏的研究方向

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
多个教师一个学生

在这里插入图片描述
多模态:图像数据、语音数据等混合类型的数据组成

在这里插入图片描述
分类:
基于输出的知识蒸馏
基于响应(特征)的知识蒸馏
基于关系的知识蒸馏(不同层之间的关系)

在这里插入图片描述
三种分类的图示

在这里插入图片描述
基于关系的知识蒸馏图示:
学生的第一层学习老师的第二层
学生的第二层学习老师的第五层

在这里插入图片描述
离线蒸馏、在线蒸馏、自蒸馏等范式

10.知识蒸馏代码库

在这里插入图片描述

在这里插入图片描述

11.扩展阅读整理

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值