《Distilling the Knowledge in a Neural Network》知识蒸馏



前言

这周做了一篇论文汇报,选的就是这篇论文,看了论文原文和很多博客简单总结如下

这几篇博客对我的帮助很大:
博客1
博客2
看了以上两篇基本就可以理解Hinton的神来之笔
由于是学校的论文汇报,所以我将从作者开始介绍(需要PPT的可以留言):

首先是对作者的介绍

第一位Hinton已经不能再出名了,深度学习的绝对大佬,图灵奖得主……
第二位是个超级学霸,年轻的时候还是星际争霸欧洲区数一数二的任务,是一个被人工智能耽误的电竞选手(开玩笑的)
第三位是Google AI的负责人,Tensorflow就是在他的领导下开发的,谷歌的第20号员工
具体的信息大家可以自行百度
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

下面就是对本文的介绍

这两张PPT是Hinton自己的PPT,就讲了当今的在训练网络和使用网络时候的一个矛盾,简单来说training的时候我们总喜欢ensemble(集成),但是这样网络太大,对using的时候很不友好,也就是Hinton说的ensemble are bad at test time所以就有了我们的Distilling
在这里插入图片描述
在这里插入图片描述

这点单独拎出来说说

这是Hinton原文的Introduction,在开头的时候就做了一个很形象的比喻,引用昆虫记里面的话:“蝴蝶以毛毛虫的形式吃树叶积攒能量逐渐成长,最后变换成蝴蝶这一终极形态来完成繁殖。”(大佬就是大佬,这个比喻十分形象,具体描述请看下面PPT内容?)
在这里插入图片描述

Main idea

这张是Hinton的PPT,想要将一个复杂模型的knowledge ,transfer到一个简单的模型,这也正是蒸馏所做的事情。
在这里插入图片描述

在这里插入图片描述
下面是整个网络的结构,可以注意到,这里最重要的就是多出来的这个soft target,那么我们现在关心的问题就变为如何得到这个soft target
Step1 使用一个温度T训练好一个复杂的网络,这里的T是一个超参数
Step2 将你的训练数据塞入使用T训练好的网络,那么这个网络的output就是这里的soft target

然后的问题就是如何使用soft target
Step3 将这个soft target 和 hard target(本省的标签) 联合起来,训练你的simple model,注意这里训练时候要使用相同的T

Step4 现在你已经得到了一个训练好的simple model 现在你需要做的就是将原来的T设为1大功告成

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下面是测试情况

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面这张为这位老哥的内容
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述