我对知识蒸馏了解不多。我有一个问题。
有一个模型显示了99%的性能(10class图像分类)。但我不能使用更大的模型,因为我必须保持推理时间。
如果我使用另一个大模型训练知识蒸馏,是否会产生整体效应?
-option-或者让我知道是否有比这更好的方法来提高性能。
发布于 2021-07-15 01:13:07
技术上的答案是否定的。KD是一种与集成不同的技术。
但它们在某种意义上是相关的,KD最初是为了提取更大的模型而提出的,作者特别引用了集成模型作为他们实验的更大模型的类型。
net,在你的大模型上试一试KD,看看你是否能保持较大模型的许多性能,但与较小模型的尺寸相同。我根据经验发现,在将5倍大的模型提炼成较小的模型后,您可以保留75%-80%的功率。
来自KD论文的摘要:
提高几乎任何机器学习算法的性能的一个非常简单的方法是在相同的数据上训练许多不同的模型,然后对它们的预测进行平均。不幸的是,使用整个模型集成进行预测是很麻烦的,并且可能计算成本太高,无法部署到大量用户,特别是当单个模型是大型神经网络时。Caruana和他的合作者已经证明,可以将集成中的知识压缩到一个更容易部署的单个模型中,我们使用不同的压缩技术进一步开发了这种方法。我们在MNIST上取得了一些令人惊讶的结果,我们表明,通过将模型集成中的知识提取到单个模型中,我们可以显着改善大量使用的商业系统的声学模型。我们还介绍了一种由一个或多个完整模型和许多专家模型组成的新类型的集成,这些模型学习区分完整模型混淆的细粒度类。与混合专家不同,这些专家模型可以快速且并行地进行训练。
https://stackoverflow.com/questions/68380183
复制相似问题