1. 介绍
在论文中,作者提出了先训练一个大的笨重的模型,再使用distilling来将笨重的模型的知识迁移到小的模型中,用于实际部署。
通常情况下,我们认为一个模型的知识保存在它的参数中,这使得我们很难想象到如何来改变模型,而不丢失知识。然后,另一种较为抽象的对待知识的角度,是将知识看作是输入到输出的映射。
一种简单地将大模型的泛化性能转移到小模型的方式是,将大模型得到的类别概率作为小模型的soft targets来训练。
当soft targets有很高的entropy时,它们能够提供足够多的信息,同时拥有较低的variance,所以小模型只需要很小的数据就能训练,也可以使用很大的学习率。
2. Distillation
通常情况下,我们使用softmax来将logit转变为概率,如下:
在最简单的distillation中,通过在一个由笨重模型产生的transfer set上训练,并且使用soft target作为目标,也就是在softmax中使用大的来产生概率。在训练distilled模型时,使用相同的训练,来进行知识迁移。
作者发现使用真实label和soft target的加权平均能够得到很好的效果。也就是loss分两部分,一部分是soft targets和预测值的cross entropy,但是使用和笨重模型产生soft target时相同的大的值来计算softmax。另一部分是真实label和预测值的cross entropy,这时为1。
soft targets产生的梯度多了一个,因此应该乘一个。
2.1 Matching logits is a special case of distillation
假设distilled模型产生了logit ,笨重的模型产生的logits ,以及soft target 概率,transfer learning使用的temperature为,那么梯度为:
如果temperature相对于logits的大小来说比较高,可以使用如下近似: