Tap into the dark knowledge using neural nets — Knowledge distillation知识蒸馏

动机:任何机器学习 / 人工智能模型的主要目标都取决于它在看不见的数据上的概括能力,而不是在训练数据上的表现。 如果我们更仔细地研究这个目标,我们更倾向于使用不同的模型来适应训练和推理的目的。 在训练过程中,我们需要深入而复杂的模型来训练大量的训练数据,但是在推理过程中,我们只需要一个更轻量级的模型来很好地概括任何看不见的数据。 较轻的模型在生产推理过程中具有较好的性能。 因此,本文的上下文设置是为了看看是否有一种有效的方法可以将这些广义的知识提炼到一个更轻松的模型中,从而得到两全其美的结果。

⚠️本文引用了神经网络和 MNIST 数字识别任务来说明知识提取的概念,但同样的概念可以扩展到任何 ml / ai 模型。

参考文献: https://arxiv.org/abs/1503.02531

代码:https://tinyurl.com/yb4en6e3

Transfer learning (迁移学习)和Knowledge distillation(知识蒸馏)区别:迁移学习和知识蒸馏的目标不同。
在迁移学习中,权值从一个预先训练好的网络转移到一个新的网络,预先训练好的网络应该与新的网络结构完全匹配。 这意味着新的网络本质上和预先训练过的网络一样深奥和复杂。
然而,知识蒸馏的目的是不同的。其目的不是转移权重,而是将复杂模型的一般化转移到更轻的模型。

Teacher-Student model:见下图1。在这个例子中,Teacher是一个深层的神经网络,已经用足够好的正则化(或可以是任何其他集成模型)对大量数据进行训练,因此其主要目标是可以很好地概括看不见的数据。 Student网络是一个浅浅的网络,由Teacher进行培训,其主要目标是: 学习大部分Teacher 的概括知识,并且更轻松。 考虑到严格的生产限制,显然,较轻的模型在生产中是首选,因为它可以快速进行预测。 在掌握了剩余术语之后,我们将回到该主题。

图1. Teacher-Student 结构

softmax activation 中的temperature概念

使用 softmax 的主要优点是输出概率范围。 输出概率的范围是从0到1,所有概率之和等于1。 它返回每个类的概率,目标类的概率很高。


图2a:Regular Softmax function

该公式计算给定输入值的指数(e 次方)和输入值中所有值的指数和。 然后输入值的指数与指数值之和的比值就是softmax函数的输出。


图2b:High temperature softmax

当我们将输入“ z”(也称为神经网络中的对数)除以“ T”(temperature)时,可获得high temperature softmax激活函数。

为了说明temperature对 softmax 激活的影响,见下图3。 可以观察到,随着温度的升高,预测数字“7”的概率变得软化和柔化。 我们所说的软化概率是什么意思?

如果你沿着绿线(绘制在较高的temperature 7)并仔细观察概率值,你可以看到模型清楚地显示出这样一个事实,即它预测的数字“7”看起来更像9或1而不是6(预测的概率为6小于0.01,而预测的概率为1大约0.075)。

如果你沿着橙色 / 蓝色线(在较低temperature绘制)观察,并仔细观察概率值,你可以看到模型预测的数字“7”具有很高的置信度,但不能区分预测的数字7是接近1还是6(它们都具有“非常接近零”的概率)。

在不同temperature下数字7的概率预测

Dark knowledge:我们可以很好地将我们自己的猜测与手写的数字“7”(如下图所示)联系起来,然后说它是否看起来与1相似ー这很像这个模型,在high temperature下预测数字“7”时,输出“1”的概率更高。

数字1

数字7还是1?

唯一的区别是,我们人类无法量化这个“7”看起来更接近于1,而high temperature模型能够做到这一点,并且具有很高的精确度。 因此,一个high temperature模型被认为具有dark knowledgeーー也就是说,除了仅仅预测数字7,它还储存了数字7与数字1有多么相似的信息。

一个low temperature模型(我们通常遇到的模型,没有temperature的softmax)通常是很好的硬预测,我们失去了这个dark knowledge。 知识蒸馏背后的主要思想是将这种dark knowledge从一个训练有素的Teacher转移到一个更轻松的学生模式。

Teacher-Student training:现在我们已经理解了上下文和所有其他重要的术语,让我们回到我们在Teacher-Student模型中的位置。将这些概括转移给Student的工作原理非常简单,如图1所示。在训练Student时,不是将一个one-hot encoded values 作为硬目标,而是将这些软化的概率(通过应用high temperature softmax收集的输出)作为目标。我们还可以定制一个知识蒸馏损失函数(参见图1插图),将知识蒸馏损失计算为软目标和硬目标的连接向量的对应分量之间的对数损失加权平均。

结果表明,以这种方式接受Teacher训练的Student(准确性提高了1% 到2%)能够很好地概括看不见的数据,而不是单独接受相同数据训练的Student。 这里有几个重要的注意事项ーー

  1. Student 和Teacher在同一个high temperature softmax下进行训练
  2. 从Student模型的推论应该是用通常的softmax激活(即没有temperature)

知识蒸馏的优点:

  1. 使用更轻的模型
  2. 在严格的生产约束条件下,计算需求少,性能优越
    3.比独立模型更准确
    4.即使只有较少的训练数据可用于Student 模型,仍然是可用的,只需要有一个训练好的Teacher就足够了

你可能感兴趣的:(Tap into the dark knowledge using neural nets — Knowledge distillation知识蒸馏)