distilling the knowlege in a neural network
Hinton et al. propose to compress knowledge learned from one model into another one which is too computationally expensive to train. 将从一个模型学到的知识压缩到另一个模型中
G.Hinton,O.Vinyals,andJ.Dean.Distilling the knowledge in a neural network. NIPS Workshop, 2014.
可以将模型集合中的知识(distil)提取到单个模型中去,从而获得更好的效果。
一种新的集成模型ensemble,由一个或多个完整模型和许多专家模型组成,这些模型能区分细粒度的类,而这些细粒度的类是容易混淆的。这种模型中的specialist models是并行训练的。
在大型的机器学习模型中,训练和部署阶段都是用了非常相似的模型来满足不同的需求,这就需要大量的数据集及计算。
cumbersome model是许多单独训练的模型的ensemble 或一个很大的,带着如dropout这样的regularizer的模型。当cumbersome model被训练好后,将它当知识提取 distil 到一个小的、便于应用的模型中去。
关于知识的一种抽象的观点是:一种学到的从输入向量到输出向量之间的映射。 对于cumbersome models,学习在大量的classes中找到相应的class,训练目标 maximiaze the average log probability of the correct answer, 但是这种方法带来的影响是训练的模型会给每个类别一个概率,但是 接近的类别和完全不搭边的类别的概率也是相差很大的。
目标是让模型拥有 generalize 的能力。一个将cumbersome model的泛化能力传输给 small model的方法是:将cumbersome model所产生的class probability作为“soft targets”来训练小模型。在这个 transfer 阶段,如果cumbersome model是一组simpler models的集合,我们可以使用每个model的算数或者几何均值作为soft targets。当soft targets有较高的entropy,就会比hard targets有更多的信息,且(pre)training cases之间的 gradients 之间会有更小的方差。所以小模型比起cumbersome model可以在更小的数据集上使用更高的学习率进行训练。
但会碰到一些类别对cross-entropy cost的影响过小的情况。Caruana and his collaborators通过使用logits(the inputs of the final softmax)而不是softmax输出的概率来作为小模型的学习目标。我们的模型“distillation”会对final softmax 进行升温,直到cumbersome model产生一个合适