Softmax函数
原始的softmax函数:
加了温度这个变量之后的softmax函数:
-
这里的T就是温度。
-
原来的softmax函数是T = 1的特例。 T越高,softmax的output probability distribution越趋于平滑,其分布的熵越大,负标签携带的信息会被相对地放大,模型训练将更加关注负标签。
知识蒸馏的具体方法:
步骤是先训练教师网络,然后将教师网络的soft target高温蒸馏给学生网络。
高温蒸馏过程的目标函数由distill loss(对应soft target)和student loss(对应hard target)加权得到。示意图如上。
损失函数的第一项是教师网络产生的logits经过高温T的softmax输出来作为soft target,学生网络在相同高温T下的softmax输出,这两者做cross entropy loss;
第二项是当温度参数为1时,学生网络的softmax输出和hard label这两者之间做cross entropy loss。
实验发现损失函数的第二部分所占比重比较小的时候,能产生较好的结果。