1.soft targets
用教师网络预测出的soft targets作为学生网络的训练时的标签。
soft targets 的熵大包含更多的信息,而hard targets的熵小信息量小。
蒸馏温度T:加了温度T参数的softmax函数,在T=1的时候就是softmax函数
softmax函数将模型的得分压缩到0~1之间,并且求和为1,只要一个得分比另一个得分大一点,经过softmax函数之后都会有很大的差异,因此经过softmax函数之后的预测会very hard(很硬)。
加入蒸馏T的softmax函数,的T越大,不同得分经过softmax之后的差异越小,就越soft。
举例:
知识蒸馏(训练)的过程:
首先我们有一个已经训练好的教师网络Teacher Model ,把数据喂给教师网络经过蒸馏温度为T的softmax之后产生一个soft labels,
然后再把数据喂给一个未训练轻量的学生网络 student model,分别经过蒸馏得到的结果与教师网络的得到的标签之间的soft loss和不经过蒸馏(T=1)与真实标签(hard labels)的hard loss,之和作为损失函数(这里的损失当然是交叉熵损失),去训练学生网络。
预测过程:验证集经过学生网络,不经过蒸馏(T=1)进行预测
交叉熵损失:
损失计算举例:
效果:
1.能训练一个效果很好的轻量学生网络
2.防止过拟合
3.把一个海量的未标注的数据集喂给教师网络,让教师网络去预测,就没有hard labels,让学生网络完全跟着教师网路。
4.就算训练学生网络的时候没有数字3,但是训练教师网络里有数字3,教师网络会把关于数3的知识迁移到学生网络,学生网络也能识别出3来 。
知识蒸馏背后机理:
绿色是教师网络(网络大)的表达空间,表达空间大;学生网络小,表达能力小,是蓝色空间,教师网络的解(红色空间)引导(没有教师网络的)学生网络的解(青色)到橙色空间,从而靠近教师网络的解。
知识蒸馏的前沿方向: