神经网络中的蒸馏技术关于softmax的部分应该怎么理解?
0 714
0
该提问暂无详细描述
收藏
2021-02-22 14:37 更新 阿托 •  16937
共 1 个回答
高赞 时间
0

softmax告诉我们什么?


处理分类问题时,通常将softmax用作神经网络中的最后一个激活单位。 这是为什么? 由于softmax函数采用一组logits并输出散类的概率分布,以此对网络进行训练。 图1给出了一个示例。


图1:输入图像的神经网络预测

在图1中,我们的假想神经网络非常相信给定的图像为“1”。但它也有可能认为是“7”。它的想法很正确,给定的图像确实具有“7”的特征。但是,如果我们仅处理像[1,0]这样的独热码硬标签(其中1和0分别是图像为“1”和“7”的概率),则此信息没有用。

人类可以充分的利用这种相对性。例如——像猫一样的狗,棕红色,像猫一样的老虎等。如下仍然有效对比:

例如,宝马的图像被误认为是垃圾车的可能性很小,但是与宝马的图像被误认为是胡萝卜相比,前者发生的可能性仍然比后者高很多倍。

这种思考过程让我们更深入地了解模型对输入数据的思考方式,这应该与我们对输入数据的思考方式保持一致。 图1再次证明了这一点——在我们看来,该图像看起来像“1”的图像,但它具有“7”特征。

现在问题是,我们在神经网络中使用此知识的最佳方法是什么? 接下来看下一节。

使用Softmax信息进行教学——知识蒸馏


softmax信息比独热码硬标签更有用。 因此,在此阶段,我们可能可以得到:

  • 训练数据
  • 经过训练的在测试数据上表现良好的神经网络

现在,我们感兴趣的是使用训练好的网络所产生的输出概率。

考虑教人去认识MNIST数据集的英文数字。你的学生可能会问——那个看起来像7吗?如果是这样的话,这绝对是个好消息,因为你的学生肯定知道1和7是什么样子。作为一名教师,你能够把数字知识传授给你的学生。这种想法也可以扩展到神经网络。

参考来源:https://wandb.ai/authors/knowledge-distillation/reports/Distilling-Knowledge-in-Neural-Networks--VmlldzoyMjkxODk

收藏
2021-02-22 14:53 更新 正直的烤面包 •  3976