关于teacherstudent net的理解

teacher student net

顾名思义:就是老师和学生的网络,也就是老师训练好,然后教学生去怎么训练

这里着重介绍两篇论文,

第一篇是hinton的paper:Distilling the Knowledge in a Neural Network

第二篇是阿里的一个paper:Rocket Launching: A Universal and Efficient Framework for Training Well-performing Light Net\

 

首先讲第一篇paper的思路:

这篇文章主要是两个contribution:

 1 提出了一个knowledge distilling 的过程,也就是知识蒸馏,具体的思路先训练一个大的精准的网络,然后让这个大的网络去教这个小的网络怎么学习

2提出一种新的集成模型(esemble of models),包括一个通用模型(Generalist Model)和多个专用模型(Specialist Models),其中,专用模型用来对那些通用模型无法区分的细粒度(Fine-grained)类别的图像进行区分

 

 

1先介绍几个名词:

hard targets:标签(0,1,0,1,1.......)

soft targets:经过softmax的结果(0.99,0.01,0.02,0.98......),并且这个softmax的结果还可以进一步soft,

  1什么是soft targets

               soft targets是这里的大网络进行得到的每个类的softmax值,而具体怎么算每一个类的soft targets,取平均值

    平均值包括算数平均值和几何平均值

        2 如何得到soft targets

        2 为什么能进一步soft

 

流程:

1 先用一个大的网络(cumbersome)也就是复杂的网络去做分类,标签是hard target(1,0,1,0)也就是正常的学习,最后会

得到每个数据的softmax的值(也就是 soft targets)

2再用一个小的网络,标签是上面的softmax值(注:这里不是hard target(1,0,1,0),而是预测生成的最大的softmax值),这里也就是soft targets的值

目标函数:

distilled network输出数据 与hard target进行cross entropy(这里目的是让小模型与真实分布保持一致)拟合真实的数据

distilled network输出数据与soft target 进行cross entropy(这里的目的是让小模型与大模型保持一致)拟合大模型

 

---------------------------------------------

这篇paper 第二个贡献点是ensemble of modles

也就是所谓的聚合模型,作者认为这种聚合模型可以解决细粒度的问题

1 main model(general model):全部数据进行训练

2     special models:针对于特殊的类进行分类,(需要不需要share models?还是一个类就是一个backbone?)

3 过拟合?怎么解决?

 

posted @ 2019-04-03 20:21  freebirds  阅读(4175)  评论(0编辑  收藏  举报