zoukankan      html  css  js  c++  java
  • 关于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 过拟合?怎么解决?

  • 相关阅读:
    【用程序思维学习英语】
    【python3】修饰器简单理解
    【FLASK】发送QQ邮件
    【FLASK】数据库迁移
    【python3】with的用法
    【flask】工厂函数和蓝本的作用
    使用Python中的xltpl模块填充excel表格模板文件
    Python添加excel表格的批注
    在原有表格基础上面进行添加内容修改格式等操作
    Python操作excel表格库的介绍
  • 原文地址:https://www.cnblogs.com/lllcccddd/p/10651236.html
Copyright © 2011-2022 走看看