一.知识蒸馏的定义
1. 量化VS蒸馏
- 量化:减小精度 例如参数float32—>float16
- 蒸馏:Student model模仿Teacher model,在保持较高性能的同时,减少模型大小和计算复杂度的技术。
二.知识蒸馏步骤
1.教师模型训练:
- 训练一个大型且复杂的神经网络(教师模型),使其在特定任务上达到高精度。
2.生成软标签:
- 使用教师模型对训练数据进行推理,生成软标签(即每个类别的概率分布),这些软标签比硬标签(即直接分类结果)包含更丰富的信息。
举例子:假如有三个分类对象a,b,c,硬标签的结果可能为:a:100% ,b:0% , c:0%;而软标签的结果可能为:a : 75% , b:15% , c:10%。软标签的结果就会包含更多丰富的信息。
蒸馏温度T
为了使其他概率的值可以更大,可以适当修改一下蒸馏温度T的值,此时影响的是Softmax,如:
3.学生模型训练:
- 训练一个较小且简单的神经网络(学生模型),使其不仅预测原始标签(硬目标),还要模仿教师模型的输出概率分布(软目标)。
4.知识蒸馏的模型架构
Distillation Loss 与 Student Loss的计算:
参考:https://www.bilibili.com/video/BV1gS4y1k7vj/?spm_id_from=333.337.search-card.all.click&vd_source=5cd9b442f08018f3dc856d0a91e9cab0