知识蒸馏原理

文章目录

    • 0.知识蒸馏(模型压缩的一种方法)
    • 1.蒸馏
    • 2.为什么要蒸馏
    • 3.知识的表示与迁移
    • 4.蒸馏温度T
    • 5.知识蒸馏过程
    • 6.知识蒸馏的应用场景
    • 7.知识蒸馏背后的机理
    • 8.为什么用soft targets 而不用 label smoothing?
    • 9.知识蒸馏的研究方向
    • 10.知识蒸馏代码库
    • 11.扩展阅读整理

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

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

1.蒸馏

知识蒸馏原理_第1张图片
去掉杂质,变成蒸馏水(更纯净)

2.为什么要蒸馏

知识蒸馏原理_第2张图片
老师网络大,将老师的知识迁移到学生(蒸馏),学生的网络结构小

知识蒸馏原理_第3张图片知识蒸馏在神经网络中的图示

知识蒸馏原理_第4张图片
终端设备算力有限,教师网络结构太大,所以将学生模型部署到设备

知识蒸馏原理_第5张图片
大模型的参数变化近年

知识蒸馏原理_第6张图片
轻量化网络的方法分类

3.知识的表示与迁移

知识蒸馏原理_第7张图片


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

知识蒸馏原理_第9张图片
手写数字的例子
知识蒸馏原理_第10张图片
硬标签会将它有多像谁、多不像谁的信息给丢掉了,而软标签保留了这些信息。
知识蒸馏原理_第11张图片

4.蒸馏温度T

知识蒸馏原理_第12张图片
在这里插入图片描述
知识蒸馏原理_第13张图片
T越高,越柔和

知识蒸馏原理_第14张图片
知识蒸馏的计算实例

5.知识蒸馏过程

知识蒸馏原理_第15张图片
知识蒸馏原理_第16张图片
教师网络是已经训练好的网络,学生网络是还没训练的网络(只进行了初始化)
distillaton loss :就是老师教学生马和驴之间有什么区别,马和汽车之间有什么区别,驴和汽车之间有什么区别。
student loss:相当于直接看答案,不告诉你类别之间的区别。

知识蒸馏原理_第17张图片

知识蒸馏原理_第18张图片
蒸馏好的学生模型在预测时不需要温度,即令T=1

6.知识蒸馏的应用场景

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

7.知识蒸馏背后的机理

知识蒸馏原理_第20张图片
知识蒸馏原理_第21张图片
见解1:
教师网络的求解空间是绿色框,学生求解空间是蓝色框
教师网络训练的结果收敛到红色框
没有经过蒸馏的学生网络训练的结果收敛到黄色框
经过蒸馏的学生网络,会在教师网络的引导下训练结果收敛到橙色框

知识蒸馏原理_第22张图片
见解2:大模型包含的知识(特征)比较冗余,知识蒸馏就是将有用的知识(特征)进行迁移、泛化,最后小模型的预测结果和大模型非常相似。

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

知识蒸馏原理_第23张图片

知识蒸馏原理_第24张图片
lael smoothing :除了最高概率,其余均赋值一个常数,这样就丢失了相似性的信息

知识蒸馏原理_第25张图片
label smoothing 例子

9.知识蒸馏的研究方向

知识蒸馏原理_第26张图片
知识蒸馏原理_第27张图片
知识蒸馏原理_第28张图片
多个教师一个学生

知识蒸馏原理_第29张图片
多模态:图像数据、语音数据等混合类型的数据组成

知识蒸馏原理_第30张图片
分类:
基于输出的知识蒸馏
基于响应(特征)的知识蒸馏
基于关系的知识蒸馏(不同层之间的关系)

知识蒸馏原理_第31张图片
三种分类的图示

知识蒸馏原理_第32张图片
基于关系的知识蒸馏图示:
学生的第一层学习老师的第二层
学生的第二层学习老师的第五层

知识蒸馏原理_第33张图片
离线蒸馏、在线蒸馏、自蒸馏等范式

10.知识蒸馏代码库

知识蒸馏原理_第34张图片

知识蒸馏原理_第35张图片

11.扩展阅读整理

知识蒸馏原理_第36张图片

知识蒸馏原理_第37张图片

知识蒸馏原理_第38张图片

你可能感兴趣的:(机器学习,深度学习,人工智能)