知识蒸馏(Knowledge Distilling)

1.参考资料,

一个很好的KD的资料list    https://github.com/dkozlov/awesome-knowledge-distillation

一个中文的相关资料https://www.zhihu.com/question/333196499/answer/738197683

一些找到的跟KD相关的资料

https://github.com/lhyfst/knowledge-distillation-papers

https://xmfbit.github.io/2018/06/07/knowledge-distilling/

https://www.zhihu.com/question/50519680

https://github.com/dkozlov/awesome-knowledge-distillation

 

与seq2seq最相关的论文 Sequence-Level Knowledge Distillation

 https://arxiv.org/pdf/1606.07947.pdf

 

 

一、Hinton的dark knowledge

1.思想

 

为了获得更好的效果对模型做ensemble,但是在预测的过程中,太多模型的ensemble会导致每一个参数本质上包含了很少的知识,在预测过程中需要更少的运算量和内存消耗。目标是用训练数据训练ensemble的效果好的模型,再利用一个更小的模型来获得emsemble模型中的 映射空间

 

2.做法

对于emsemble来说,可以使用多个模型的几何平均也可以使用代数平均,对于输出来说有一个soft target。

对于最终使用的小模型来说,如果只从soft target学习也可以学习的很快很好,因为这样做学习的是大模型的空间,一个不是onehot的label蕴含了更多的关联约束信息,但是利用hard target(one hot 的label)和soft target 一起使用会有更好的效果。

如何添加hard targets呢?(??)

 

如何让ensemble高效?

对多分类任务,使被集成的模型分别专注于不同的类别(翻译模型可否组合不同的模型,专注于不同的指标,BLEU,METEOR或者在不同的惩罚因子条件下达到最优)

从专家系统中获得更易混淆的类的信息.

3.效果

在做kd的过程中,如果使用soft target,对于多分类问题,即便训练数据中不包含其中某一类的数据,也能对这一类进行预测,

 

转载于:https://www.cnblogs.com/wb-learn/p/11436128.html

你可能感兴趣的:(知识蒸馏(Knowledge Distilling))