(KD) Distilling the Knowledge in a Neural Network

Distilling the Knowledge in a Neural Network

论文链接:https://arxiv.org/abs/1503.02531

迁移学习的概念:

在一个大的数据集上先做预训练,然后使用预训练得到的参数在一个小的数据集上做微调(两个数据集往往领域不同或者任务不同)。例如:现在Imagesnet上做预训练,然后在COCO数据集上做检测。

创新点:

提出 soft target(软目标) 来辅助 hard target(硬目标) 一起训练。soft target来自于教师模型的预测输出hard target是one-hot标签文件,包含的信息量(信息熵)很少,对于正在学习的学生网络而言,仅仅只能学习到正确目标类的知识。

soft target包含的信息量很大,拥有不同类之间关系的信息(比如同时分类驴和马的时候,尽管某张图片是马,但是soft target就不会像hard target那样只有马的索引处的值为1,其余的为0,而是在驴的部份也会有概率)。这样做的好处是,这个图像可能更像驴,而不会像汽车或者狗之类的,而这样的soft信息存在于概率之中,以及label之间的高低相似性都存在于soft target中。但是如果soft target是像[0.98,0.01,0.01]的信息,意义就不是很大了,所以需要在softmax中增加温度参数T(这个设置在最终训练之后的推理中是不需要的)。

在这里插入图片描述

在这里插入图片描述是student网络学习的对象(soft target),在这里插入图片描述是网络经过softmax前的预测输出。

当T增大时,softmax输出的概率分布会变得更加soft(平滑)分布更加均匀而大小关系不变.

当T参数设置为1时,是正常的softmax函数。

当T接近于0时,最大的值会越接近1,其余值会接近0,近似于one-hot编码。如果T等于无穷,就是一个均匀分布。

这样就可以利用到老师模型的更多信息(老师觉得哪些类别更接近于要预测的类别)。将这样蕴含在老师模型中的信息称为“dark knowledge”,蒸馏的方法就是要将这些“dark knowledge”传给学生模型。在训练学生的时候,学生的sofrmax函数使用与老师相同的T,损失函数以老师输出的软标签为目标。这样的损失函数称为“distillation loss”。
在这里插入图片描述

你可能感兴趣的:(知识蒸馏,神经网络)