[论文阅读]知识蒸馏(Distilling the Knowledge in a Neural Network)

本文介绍了知识蒸馏技术,用于将大型或集成模型的知识转移到易于部署的单个模型中。通过使用软目标(高熵概率分布)作为训练信号,学生模型可以捕获教师模型的泛化能力。在MNIST和语音识别任务上,知识蒸馏显示出显著的效果。此外,文章探讨了专家模型的训练,以处理特定的易混淆类别,防止过拟合,并实现快速并行训练。
摘要由CSDN通过智能技术生成


前言

论文名:Distilling the Knowledge in a Neural Network
论文作者:Geoffrey Hinton et.al.
期刊/会议名:NIPS 2014
本文作者:XMU_MIAO
日期:2020/11/26

摘要

  要提高几乎所有机器学习算法的性能,一个非常简单的方法是在同一个数据上训练许多不同的模型并平均它们的预测效果。不幸的是,使用集成模型进行预测是很麻烦的,而且可能计算成本太高,不能部署到大量用户,特别是当单个模型是大型神经网络时。有研究表示,将集成模型中的知识压缩到易于部署的单个模型是有可能的,我们使用不同的压缩技术进一步发展了这种方法。
  我们在MNIST上取得了一些令人惊喜的结果,并且我们表明,通过将集成模型的知识提炼到单个模型中可以显著改进大量应用于商业系统的声学模型。我们还引入了一种新型的由一个或多个完整模型和许多能够学习区分完整模型会混淆的细粒度类的“专家模型”。不同于“专家模型”的混合,这些“专家模型”可以快速地并行训练。

一、Introduction

  许多昆虫的幼年形态是最适合从环境中汲取能量和营养的,而成虫形态则完全不同,更适合旅行和繁殖等不同需求。昆虫的类比表明我们可以训练非常复杂的模型,其易于从数据中提取出结构。这个复杂的模型可以是独自训练模型的集成,也可以是一个用强大正则器如 d r o p o u t dropout dropout训练的单个大模型。一旦复杂模型训练完毕,之后我们可以使用一种不同的训练方式,称之为“蒸馏”,将知识从复杂的模型(称之为 t e a c h e r teacher teacher模型)转移到更易于部署的小模型(称之为 s t u d e n t student student模型)中。
  对于 t e a c h e r teacher teacher模型,其能够学习区分大量的类别,正常情况下,训练目标是最大化正确类别的平均对数概率,但这种学习的副作用是训练的模型会将概率分配给错误的类别上,虽然这些概率值可能很小,但一些错误类别比其他错误类别的概率值大很多。比如:一辆宝马车的照片可能有很小的概率被误认为垃圾车,但是仍比被误认为一根萝卜的概率大出很多。在错误类别上的相对概率可以反映出模型是如何进行泛化的。
  将 t e a c h e r teacher teacher模型的泛化能力迁移到 s t u d e n t student student模型的明显方法是使用由 t e a c h e r teacher teacher模型的类别概率作为“软目标”用于训练 s t u d e n t student student模型。 对于这个迁移阶段,我们可以使用相同的训练集或单独的“迁移”集。当 t e a c h e r teacher teacher模型是小模型的集成时,我们使用小模型各自预测的概率分布的算术或几何平均作为“软目标”。
  当软目标具有高熵值,在训练每一个样本时软目标能够提供比硬目标( s t u d e n t student student模型的 g r o u n d    t r u t h ground\,\,truth groundtruth)更多的信息并且训练每一个样本时的梯度差异更小。因此,与 t e a c h e r teacher teacher模型相比, s t u d e n t student student模型训练数据要少得多,使用的学习率也高得多。
  对于像 m n i s t mnist mnist一样的任务, t e a c h e r teacher teacher模型通常能够在正确类别上有高置信度,但关于所学函数的许多信息存在于软目标中极小概率的类别比例中。例如,对于一个版本的数字 2 2 2,可能有 1 0 − 6 10^{-6} 106的概率被认为是数字 3 3 3, 1 0 − 9 10^{-9} 109的概率被认为是数字 7 7 7,而另外一种版本的情况可能相反(每种版本指的是数据集中不同形态是数字 2 2 2)。这是非常有价值的信息,它在数据上定义了丰富的相似性结构(例如,它说明了哪个版本的 2 2 2看起来像 3 3 3,哪个像 7 7 7),但它对迁移阶段的交叉熵代价函数的影响很小,因为这些概率值接近零。 之前的研究解决该问题的方式是使用 l o g i t s logits logits(未经过 s o f t m a x softmax softmax函数的值)而不是经过 s o f t a m x softamx softamx函数之后的概率值,他们将 t e a c h e r teacher teacher l o g i t s logits logits值和 s t u d e n t student student l o g i t s logits logits值的平方差作为最小化目标。
  我们更一般的解决方案,称为“蒸馏”,是提高 s o f t m a x softmax softmax最终值的温度,直到 t e a c h e r teacher teacher模型产生一个合适的软目标集。当训练 s t u d e n t student s

神经网络中的知识进行提取,是一种将模型的信息转化为更为简洁和易于理解形式的过程。 神经网络是一种由许多神经元组成的复杂计算模型,它们通过学习和调整权重来解决各种问题。然而,神经网络通常具有大量的参数和复杂的结构,这使得它们难以解释和应用到其他领域。因此,我们需要一种方法来提取和总结神经网络中的知识,以便更好地理解和应用这些模型。 在进行神经网络知识提取时,有几种常见的方法。一种常见的方法是使用可视化技术,如热力图、激活图和网络结构图等,来可视化网络中不同层的活动模式。这些可视化技术能够帮助我们发现网络中的模式和特征,并从中推断出网络的知识。 另一种方法是使用特征提取技术,如卷积神经网络(CNN)的滤波器、自动编码器的隐藏层和循环神经网络(RNN)的隐状态等,来提取网络学习到的重要特征。这些重要特征可以帮助我们更好地理解网络学习到的信息,并将其应用到其他问题中。 此外,还有一种被称为知识蒸馏的技术,它通过训练一个较小的模型来提取大型模型中的知识。知识蒸馏通过引入目标函数和额外的训练策略,使小模型能够学习到大模型中的重要知识,并在不损失太多性能的情况下将其应用到实际问题中。 总而言之,提取神经网络中的知识是一项重要任务,它能够帮助我们更好地理解和应用这些复杂的模型。通过可视化、特征提取和知识蒸馏等方法,我们能够从神经网络中提取出有用的信息,并将其应用到其他领域或解决其他问题中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值