【发布时间】:2021-09-23 13:22:21
【问题描述】:
我对知识蒸馏知之甚少。 我有一个问题。
有一个模型表现出 99% 的性能(10 类图像分类)。但是我不能使用更大的模型,因为我必须保持推理时间。
如果我使用另一个大模型来训练知识蒸馏,是否会产生集成效果?
-------选项------- 或者让我知道是否有任何方法可以提高性能。
【问题讨论】:
标签: tensorflow deep-learning pytorch classification
我对知识蒸馏知之甚少。 我有一个问题。
有一个模型表现出 99% 的性能(10 类图像分类)。但是我不能使用更大的模型,因为我必须保持推理时间。
如果我使用另一个大模型来训练知识蒸馏,是否会产生集成效果?
-------选项------- 或者让我知道是否有任何方法可以提高性能。
【问题讨论】:
标签: tensorflow deep-learning pytorch classification
技术上的答案是否定的。 KD 是一种不同于 ensembling 的技术。
但它们是相关的,因为 KD 最初是为了提炼更大的模型而提出的,并且作者特别引用了集成模型作为他们实验的更大模型的类型。
Net net,让 KD 在你的大模型上试一试,看看你是否可以保留大模型的很多性能,但使用小模型的大小。我根据经验发现,在将 5 倍大的模型提炼成更小的模型后,您可以保留 75%-80% 的功率。
来自 KD 论文的摘要:
提高几乎所有机器学习算法性能的一种非常简单的方法是在相同数据上训练许多不同的模型,然后对它们的预测进行平均。不幸的是,使用整个模型集合进行预测很麻烦,并且计算量太大而无法部署到大量用户,尤其是在单个模型是大型神经网络的情况下。 Caruana 和他的合作者已经表明,可以将集成中的知识压缩到一个更容易部署的模型中,我们使用不同的压缩技术进一步开发了这种方法。我们在 MNIST 上取得了一些令人惊讶的结果,并且我们表明,我们可以通过将模型集合中的知识提取到单个模型中来显着改进大量使用的商业系统的声学模型。我们还介绍了一种由一个或多个完整模型和许多专业模型组成的新型集成,这些模型学习区分完整模型混淆的细粒度类。与混合专家不同,这些专家模型可以快速并行训练。
【讨论】: