【论文笔记】Distilling the Knowledge in a Neural Network(知识蒸馏)

简介

一般来说,优化模型预测效果有两种方法。一是使用更加复杂的模型,二是采用集成策略。这两种方法在实际应用中都会造成很大的计算开销。因此,本文提出了一种叫做知识蒸馏的方法,从大模型中提取知识给小模型,在减少模型复杂度的同时保证预测效果。
通常我们认为模型从训练中得到的知识就是神经网络的参数,更确切的说法是从输入向量到输出向量的映射。所以我们训练小模型的目标就是让它学习大模型输入到输出的映射关系。
小模型的输入向量就是经过预处理后的数据,输出向量一般就是输出的softmax分布。于是,原来我们需要让模型输出的softmax分布与真实标签匹配,现在只需要让小模型和大模型在输入相同的情况下输出的softmax分布相近即可。大模型的softmax分布被称为小模型训练的“软目标”(soft target)。
softmax函数会通过e的x次方这类形式,拉大logits(softmax函数的输入向量)之间的大小差距,大的越大,小的越小,所以其输出的向量会非常接近one-hot向量。这种方法的缺点是输出正确分类概率的非常大,而输出错误分类的概率非常小。而即使是错误的分类,里面也包含了一些有用的信息。比如宝马车的图片,被识别为拖拉机的概率是远远大于识别为胡萝卜的概率的。
规避上述问题的一个简单的方案是:直接使用logits的分布作为软目标,而不使用softmax分布。而另外一个更一般、效果更好的方案也就是本文的重点:知识蒸馏。

如何“蒸馏”

一般化的softmax公式:
在这里插入图片描述
其中,qi为概率,T为温度,zi为上文中提到的logit。通常情况下我们见到的softmax函数就是T=1的特殊情况。容易证明,当T趋近于0时,其最后输出的概率向量会更偏one-hot;当T趋近于无穷大时,其输出的概率向量中各概率会更加接近,即更“软”。于是,在“蒸馏”时,我们将已经训练好的大模型(即已经学得知识的模型)的温度T升高至一定程度,将数据重新输入大模型,获得升温后的“软”的softmax分布,并将该分布作为小模型训练的软目标,在小模型训练时,也将温度T升高至和此时的大模型的T一样大,训练结束后,将小模型的温度T再降低到1,使“蒸馏”出的知识在新模型中“冷凝”。至此,就获得了和大模型性能相近而模型复杂度、参数数量大幅降低的小模型。
在这里插入图片描述
论文里把大模型称为 teacher model,小模型称为student model。
损失函数由两部分构成,一部分是student model在 soft targets 上训练得到的交叉熵损失函数,一部分是在真实带标签数据(hard targets)上训练得到的交叉熵损失函数乘以 1/T^2(保证两个 Loss 所产生的影响差不多) 。

https://mp.weixin.qq.com/s/9a9SiKkAcT1X3hKE0oHlEw.

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值