1.介绍
知识蒸馏最早出自于论文“Distilling the Knowledge in a Neural Network”,作者是深度学习泰斗Geofrey Hinton,在人工智能方向上,有公认的四大天王,见下图,另外,博主也算是吴恩达的学生,从一个门外汉看他的视频一步一步的走上了算法工程师的岗位,建议有这方面兴趣的人,可以去看他的视频,比培训班的视频不知道要强多少。
2.模型结构
第一步:训练大模型(teacher 模型),用到的标签是正常(hard)label(one-hot之后的,比如【0,0,1,0】)
第二步:计算soft target:利用训练好的大模型来计算soft target,也就是大模型的输出经过下面的公式计算,其中T一般从20开始试
第三步:训练小模型(student 模型),在小模型的基础上再加一个额外的soft target的loss function,通过权重来调节两个loss functions的比重
第四步:预测时,将训练好的小模型按常规方式(右图)使用,这个和正常的网络预测没有任何区别,不要想复杂了
3.模型特点
1.hard label与 soft target区别?
hard label一般是这样的:【0,0,1,0】,除了表示第三个位置的概率为1,并不能表示其它信息
soft target一般是这样的:【0.1,0.1,0,6,0.2】,其它位置(除了第三个位置)也能表示是这个属性的概率有多少,这里面有一个潜在关系,即不同类别之间的关系
2.上面公式中,T的作用?
T的作用就是起一个软化作用,比如输出为【0.001, 0.149,0.85】(现在比较好分类),经上面公式计算之后,soft target为【0.1,0.3,0.6】(分类正确相对于前面变困难了一点)这就人为的加大了训练困难,当T最后被设置为1的时候,结果就会接近teacher 模型