知识蒸馏之Distilling the Knowledge in a Neural Network

Geoffrey Hinton, Oriol Vinyals, Jeff Dean
NIPS2014

两种路线:
1.单独训练特异性的模型,然后将这些模型合在一起
2.用强大的正则化器训练一个模型请添加图片描述

0.主要贡献

提出了SoftmaxTemperature
一个训练方法

1.算法思想

知识蒸馏的主要思想是训练一个小的网络模型来模仿一个预先训练好的大型网络或者集成的网络。这种训练模式又被称为 “teacher-student”,大型的网络是“老师”,小型的网络是“学生”。
在知识蒸馏中,老师将知识传授给学生的方法是:在训练学生的过程中一个以老师预测结果的概率分布为目标的损失函数。老师预测的概率分布就是老师模型的最后的softmax函数层的输出,然而,在很多情况下传统的softmax层的输出,正确的分类的概率值非常大,而其他分类的概率值几乎接近于0。因此,这样并不会比原始的数据集提供更多有用的信息,没有利用到老师强大的泛化性能,Hinton在对softmax函数做了改进:
请添加图片描述

2.算法流程

1.使用一个较大的 T 和 hard targets 训练一个大模型来获得soft targets
2.使用 soft targets 训练一个简单的小模型

在这里插入图片描述

3.目标函数

distilled model 的 目标函数由以下两项的加权平均组成:
soft targets 和小模型的输出数据的交叉熵(保证小模型和大模型的结果尽可能一致)
hard label和小模型的输出数据的交叉熵(保证小模型的结果和实际类别标签尽可能一致)请添加图片描述
蒸馏模型的输出zi,产生软目标概率q
繁琐模型有输出vi,产生软目标概率p

当t大于e的时候:
请添加图片描述

猜你喜欢

转载自blog.csdn.net/qq_41950533/article/details/124795909