知识蒸馏
1.概念介绍
知识蒸馏是通过构建一个轻量化的小模型,利用性能更好的大模型的监督信息,来训练这个小模型
大模型: Teacher model 小模型:Student model
Teacher model 输出的知识(knowledge) Student model 学习来自Teacher的监督的信息的过程–> Distillation(蒸馏)
2.种类
1.离线蒸馏:
Teacher model has pre-trained,Teacher模型的参数在蒸馏训练过程中保持不变,达到训练student模型的目的。
蒸馏的损失函数:distillation loss 计算 Teacher and student loss and student loss—>Loss
2.半监督蒸馏
利用Teacher模型的预测信息作为标签,来对student网络进行监督学习。
使用更少标注量的数据集,达到提升模型精度的目的
3.自监督蒸馏:
先开始训练student模型,在整个训练过程的最后几个epoch的时候,利用前面训练的student作为监督模型,在剩下的epoch中,对模型进行蒸馏。
3.知识蒸馏的功能
1.提升模型精度
2.压缩网络参数
3.图片标签之间的域迁移
4.降低标注量(半监督的方式)