Revisit Knowledge Distillation: a Teacher-free Framework

2024-08-24 17:58

本文主要是介绍Revisit Knowledge Distillation: a Teacher-free Framework,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Observations

通过几组实验观察到

  • 反转Knowledge Distillation(KD)即利用student来guide teacher的话,teacher的性能依然可以得到提升
  • 用一个比student还差的teacher来guide student的话,student的性能依然可以得到提升

因此作者得到以下观点

  • KD只是一种可学习的label smoothing regularization
  • label smoothing regularization可以看做提供了一个虚拟teacher的KD
  • argue到KD的有效性可能不全是像KD论文说的那样student从teacher那获得了类别之间的相似关系,还因为soft target的正则作用,后者甚至更重要
    在这里插入图片描述
    Re-KD是反转的KD,即用student来guide teacher
    在这里插入图片描述
    De-KD代表用没有训练好的,比student性能还差的teacher去guide student
    在这里插入图片描述
    teacher的性能好坏对student的影响没有那么大
    在这里插入图片描述

KD和label smoothing regularization(LSR)的联系

在这里插入图片描述
通过推导公式可以发现

  • KD是一种可学习的LSR
  • LSR是一种特殊的KD,他相当于是一个得到随机猜的老师
  • 当KD的t很大时,KD提供的soft target和LSR提供的均匀分布是类似的
    这也解释了上面Re-KD和DE-KD可以帮助学习的原因,实际上是一种正则化

Teacher Free KD

  • self-training:由于差teacher可以guide student,我们完全可以训练一个student然后去guide student
    在这里插入图片描述
  • reg:联合KD和LSR,即把LSR当成teacher跟预测结果做KL loss
    在这里插入图片描述在这里插入图片描述

Experiment

Self-training可以和正常的KD取得类似的效果
在这里插入图片描述
在这里插入图片描述
Reg和self training性能差不多,但是他没有增加太多计算量,且比LSR好很多,可以尝试
在这里插入图片描述

这篇关于Revisit Knowledge Distillation: a Teacher-free Framework的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1103198

相关文章

Spring Framework系统框架

序号表示的是学习顺序 IoC(控制反转)/DI(依赖注入): ioc:思想上是控制反转,spring提供了一个容器,称为IOC容器,用它来充当IOC思想中的外部。 我的理解就是spring把这些对象集中管理,放在容器中,这个容器就叫Ioc这些对象统称为Bean 用对象的时候不用new,直接外部提供(bean) 当外部的对象有关系的时候,IOC给它俩绑好(DI) DI和IO

HumanNeRF:Free-viewpoint Rendering of Moving People from Monocular Video 翻译

HumanNeRF:单目视频中运动人物的自由视点绘制 引言。我们介绍了一种自由视点渲染方法- HumanNeRF -它适用于一个给定的单眼视频ofa人类执行复杂的身体运动,例如,从YouTube的视频。我们的方法可以在任何帧暂停视频,并从任意新的摄像机视点或甚至针对该特定帧和身体姿势的完整360度摄像机路径渲染主体。这项任务特别具有挑战性,因为它需要合成身体的照片级真实感细节,如从输入视频中可能

delphi : 窗体的close,free,destroy的区别

一、我用application.create(TForm2,Form2)语句,创建了Form2,可是调用了Form2.close后,重新调用Form2.show. 刚才所创建的Form2仍然存在。问为了节约资源,应该怎样使用close,free,destroy. 三者的关系是什么? 1、Action:=caFree。 2、 with TForm1.Create(Application) do

C语言动态内存空间分配(malloc,calloc,realloc,free)

为了代码观感美观,我将代码部分的注释删了 malloc #include<stdio.h>#include<stdlib.h>#include<errno.h>//使用动态内存分配函数的注意事项://1.要判断指针是否为空指针,如果没有成功开辟动态内存空间,则不能继续使用该指针//2.分配的动态内存空间的数量要大于等于赋值的元素的数量,不能造成动态内存的越界访问//3.动态内存空间中

安卓aosp14上自由窗口划线边框Freeform Caption实战开发-千里马framework实战

背景: 上一篇文章也分享过aosp14版本上自由窗口的Caption栏的显示原理,今天来讲解一下aosp14版本上如何实现对自由窗口的划线边框功能,相关功能已经在aosp13上面进行实现,具体可以看我的分屏自由窗口专题哈。 就是想要在aosp14上面实现如下功能: 即自由窗口在被触摸放大缩小时候,边框要被画成红色的线条,表示选中。 尝试aosp13老方案: 因为aosp13是在acti

【SPOJ】1825 Free tour II 点分治

传送门:【SPOJ】1825 Free tour II 题目分析:敲了两遍。。。 本题是论文题,具体见漆子超论文《分治算法在树的路径问题中的应用》。 在以root为根的第 i 棵子树上,我们用G[ i ,j ]表示root的第 i 棵子树的路径上严格有 j 个黑点的路径的最长长度。用F[ i ,j ]表示在root为根的第 i 棵子树的路径上不超过 j 个黑点的路径的最长长度。因

Android Framework中的PolicyManager简介

PolicyManager类位于framework\base\core\java\com\android\internal\policy目录中的PolicyManager.java文件中。PolicyManager主要用于创建Window类、LayoutInflater类和WindowManagerPolicy类,它扮演着简单工厂模式中的工厂类角色,而抽象产品角色由IPolicy接口实现,具体产

阅读笔记(五)多线程无锁的C++实现《Lock-Free Data Structures》

1. 前言   本文介绍使用C++实现多线程中无锁算法的实现和优化过程。 2. 无锁&CAS   在多线程程序中,加锁是一种必要的手段,由于保证数据操作的正确性(原子性)。但是这也在很多时候带来了性能的极度下降,因为所有共享数据的操作均需要加锁,有些时候会严重影响性能,比如当读键盘或者一些较慢的I/O操作时,锁会延误了其他线程的操作。更糟糕的是,不当操作可能会带来死锁。   首先介绍最经典

知识图谱(knowledge graph)——概述

知识图谱总结 概念技术链概括通用知识图谱和垂直领域知识图谱国内外开放知识图谱 技术链详解知识获取知识融合知识表示知识推理知识存储 知识图谱构建流程其他挑战跨语言知识抽取跨语言知识链接 思考参考 概念 知识图谱(Knowledge Graph)以结构化的形式描述客观世界中概念、实体及其关系。是融合了认知计算、知识表示与推理、信息检索与抽取、自然语言处理、Web技术、机器学习与大数据

知识图谱(knowledge graph)——RDF(Resource Description Framework)

RDF的基本单元是三元组(triple) 每个三元组是(主语 谓语 宾语) 这样的元组tuple。主谓宾的取值称为"资源"(Resource, 也就是RDF里的R) 资源可以是一个网址(URI),一个字符串或数 字(严格来讲都是带类型的字符串,称为 literal),或者一个“空节点”(blank node)。 有两种特殊类型的资源。rdfs:Class代表类。 rdf:Property代