文章目录
- 0.知识蒸馏(模型压缩的一种方法)
- 1.蒸馏
- 2.为什么要蒸馏
- 3.知识的表示与迁移
- 4.蒸馏温度T
- 5.知识蒸馏过程
- 6.知识蒸馏的应用场景
- 7.知识蒸馏背后的机理
- 8.为什么用soft targets 而不用 label smoothing?
- 9.知识蒸馏的研究方向
- 10.知识蒸馏代码库
- 11.扩展阅读整理
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.知识蒸馏的研究方向
多个教师一个学生
多模态:图像数据、语音数据等混合类型的数据组成
分类:
基于输出的知识蒸馏
基于响应(特征)的知识蒸馏
基于关系的知识蒸馏(不同层之间的关系)
三种分类的图示
基于关系的知识蒸馏图示:
学生的第一层学习老师的第二层
学生的第二层学习老师的第五层
离线蒸馏、在线蒸馏、自蒸馏等范式