展开

关键词

知识蒸馏

知识蒸馏概述 蒸馏指的是把不纯净的水加热变成蒸汽,蒸汽冷凝之后变成冷凝水。知识蒸馏也是把有杂质的东西,大的东西变成小的东西,纯的东西。 把一个大的模型(教师模型)里面的知识给萃取蒸馏出来浓缩到一个小的学生模型上。 教师网络是一个比较大的神经网络,它把知识传递给了小的学生网络。这个过程称之为蒸馏或者叫迁移。 这就是知识蒸馏的核心目的。 现在的预训练大模型的参数往往都是成指数型增加。 那么对于之前那个动物分类的总体损失函数如下 知识蒸馏的应用场景 模型压缩 优化训练,防止过拟合(潜在的正则化) 无限大、无监督数据集的数据挖掘 少样本、零样本学习 迁移学习和知识蒸馏 上图中的Baseline 知识蒸馏是把一个模型的知识迁移到另一个模型上。 知识蒸馏的原理 上图中大的绿色的矩形为非常大的教师网络,中间的蓝色的矩形是学生网络。

7930

知识蒸馏综述:蒸馏机制

【GiantPandaCV导语】 Knowledge Distillation A Suvery的第二部分,上一篇介绍了知识蒸馏知识的种类,这一篇介绍各个算法的蒸馏机制,根据教师网络是否和学生网络一起更新 感性上理解三种蒸馏方式: 离线蒸馏可以理解为知识渊博的老师给学生传授知识。 在线蒸馏可以理解为教师和学生一起学习。 自蒸馏意味着学生自己学习知识。 1. 一般离线蒸馏算法关注与提升知识迁移的不同部分,包括:知识的形式,损失函数的设计,分布的匹配。 使用在线蒸馏的时候,教师网络和学生网络的参数会同时更新,整个知识蒸馏框架是端到端训练的。 ,将网络较深部分的知识蒸馏到网络较浅部分。

28330
  • 广告
    关闭

    腾讯云精选爆品盛惠抢购

    腾讯云精选爆款云服务器限时体验20元起,还有更多热门云产品满足您的上云需求

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    知识蒸馏(Knowledge Distillation)

    本文主要罗列与知识蒸馏相关的一些算法与应用。但首先需要明确的是,教师网络或给定的预训练模型中包含哪些可迁移的知识? Distilling the Knowledge in a Neural Network Hinton的文章”Distilling the Knowledge in a Neural Network”首次提出了知识蒸馏 ,考虑了中间层Feature Maps之间的关系,可参考: 结合量化的知识蒸馏(Quantization Mimic)_AI Flash-CSDN博客 ——– 知识蒸馏与Hint Learning相结合 ,可以训练精简的Faster-RCNN,可参考: 目标检测网络的知识蒸馏_AI Flash-CSDN博客_目标检测 知识蒸馏 ——– 网络结构搜索(NAS)也可以采用蒸馏操作,改善搜索效果,可参考(Cream NAS的Inter-model Distillation): 自蒸馏One-shot NAS——Cream of the Crop_AI Flash-CSDN博客 ——– 知识蒸馏在Transformer

    4810

    综述 | 知识蒸馏(1)

    为此,多种模型压缩和加速技术被提出;其中,知识蒸馏可以有效地从大型“教师”模型学习小型的“学生”模型,迅速受到重视。本文从知识的类别、训练的策略、蒸馏的算法和应用等角度,对知识蒸馏进行了全面调研。 4 蒸馏的策略 根据教师模型是否与学生模型同时更新,知识蒸馏的学习方案可以直接分为三大类:离线蒸馏,在线蒸馏和自蒸馏,如图6所示 ? 离线蒸馏 在原始知识蒸馏方法中(Hinton等,2015),知识从预训练的教师模型转移到学生模型,整个训练过程有两个阶段,即:1)教师模型是在蒸馏之前、首先在一组训练样本上训练的;2)教师模型用logit 在线蒸馏中,教师模型和学生模型同时更新,整个知识蒸馏框架是端到端训练的。 离线蒸馏意味着知识渊博的老师向新生传授知识;在线蒸馏是指师生在老师为主要监督下互相学习;自蒸馏是学生无需老师就能自学知识。这三种蒸馏方法可以结合起来进行优势互补。

    57920

    知识蒸馏综述: 知识的类型

    这篇是知识蒸馏综述的第一篇,主要内容为知识蒸馏知识的分类,包括基于响应的知识、基于特征的知识和基于关系的知识。 1知识蒸馏简介 定义:知识蒸馏代表将知识从大模型向小模型传输的过程。 综述梳理思路: 知识蒸馏的种类 训练机制 教师-学生 架构 蒸馏算法 性能比较 实际应用 典型的知识蒸馏KD是Hinton于15年发表的paper,明确了知识蒸馏的想法是让学生模型通过模仿教师模型来取得具有竞争性的性能 知识蒸馏的核心研究:如何将知识从大模型传递给小模型。 知识蒸馏系统的三个核心组件: 知识 knowledge 蒸馏算法 distillation algorithm 教师学生架构 teacher-student architecture 知识蒸馏相关的扩展方向 ,我们主要关心:知识种类、蒸馏策略、教师学生架构 最原始的蒸馏方法是使用大模型的logits层作为教师网络的知识进行蒸馏,但知识的形式还可以是:激活、神经元、中间层特征、教师网络参数等。

    23720

    知识蒸馏综述:代码整理

    Distilling the Knowledge in a Neural Network 链接:https://arxiv.org/pdf/1503.02531.pd3f 发表:NIPS14 最经典的,也是明确提出知识蒸馏概念的工作 Similarity-Preserving Knowledge Distillation 链接:https://arxiv.org/pdf/1907.09682.pdf 发表:ICCV19 SP归属于基于关系的知识蒸馏方法 Congruence for Knowledge Distillation 链接:https://arxiv.org/pdf/1904.01802.pdf 发表:ICCV19 CC也归属于基于关系的知识蒸馏方法 Distillation 全称:Relational Knowledge Disitllation 链接:http://arxiv.org/pdf/1904.05068 发表:CVPR19 RKD也是基于关系的知识蒸馏方法 Distillation 全称:Contrastive Representation Distillation 链接:https://arxiv.org/abs/1910.10699v2 发表:ICLR20 将对比学习引入知识蒸馏

    13420

    知识蒸馏】Deep Mutual Learning

    attention feature distillation): +0.18 DML(deep mutual learning): + 2.24 (ps: 这里教师网络已经训练好了,与DML不同) DML也是传统知识蒸馏的扩展 但是不同于传统知识蒸馏的单向蒸馏(教师→学生),DML认为可以让学生互相学习(双向蒸馏),在整个训练的过程中互相学习,通过这种方式可以提升模型的性能。 如果传统的知识蒸馏是由教师网络指导学生网络,那么DML就是让两个学生互帮互助,互相学习。 DML 小型的网络通常有与大网络相同的表示能力,但是训练起来比大网络更加困难。 那么先训练一个大型的网络,然后通过使用模型剪枝、知识蒸馏等方法就可以让小型模型的性能提升,甚至超过大型模型。 以知识蒸馏为例,通常需要先训练一个大而宽的教师网络,然后让小的学生网络来模仿教师网络。 在Reid数据集Market-1501上也进行了测试: 发现互学习目标越多,性能呈上升趋势: 结论 本文提出了一种简单而普遍适用的方法来提高深度神经网络的性能,方法是在一个队列中通过对等和相互蒸馏进行训练

    23030

    Hint Learning和知识蒸馏

    知识蒸馏是一种将知识从一组繁琐的模型中提取出来并将其压缩成单个模型的方法,以便能够部署到现实生活中的应用程序中。 图像分类的知识蒸馏 Hinton和他的两位合著者在《Neural Network: extraction the knowledge in a Neural Network》中首次介绍了他们用于图像分类任务的知识蒸馏 本文得出的一些令人惊讶的结果如下所示,详见原文: 目标检测的知识蒸馏 在neuroips 2017上,Guobin Chen等人发表了基于知识蒸馏结合hint learning的目标检测研究论文:learning Guobin Chen将知识蒸馏和Hint Learning相结合进行目标检测,取得了很好的效果。 总结 在这篇文章中,我简要介绍了知识蒸馏和Hint Learning。知识蒸馏是将复杂模型集合中的知识转化为更小、更精炼模型的有效方法。将提示学习与知识提取相结合是提高神经网络性能的有效方法。

    19020

    知识蒸馏」最新2022研究综述

    本文从基础知识,理论方法和应用 等方面对近些年知识蒸馏的研究展开全面的调查,具体包含以下内容:(1)回顾了知识蒸馏的背景知识,包括它的 由来和核心思想;(2)解释知识蒸馏的作用机制;(3)归纳知识蒸馏知识的不同形式 ,分为输出特征知识、中间特 征知识、关系特征知识和结构特征知识;(4)详细分析和对比了知识蒸馏的各种关键方法,包括知识合并、多教师 学习、教师助理、跨模态蒸馏、相互蒸馏、终身蒸馏以及自蒸馏;(5)介绍知识蒸馏与其它技术融合的相关方法 在知识蒸馏的方法 上,本文增加了知识合并和教师助理的介绍;在技 术融合的小节,本文增加了知识蒸馏与自动编码器、 集成学习和联邦学习的技术融合;在知识蒸馏的应 用进展中,本文分别介绍了知识蒸馏在模型压缩和 第 2 节回顾了知识 蒸馏的背景知识,包括它的由来;第 3 节解释知识 蒸馏的作用机制,即为什么知识蒸馏是有效的;第 4 节归纳知识蒸馏知识的不同形式;第 5 节详细 分析了知识蒸馏的各种方法,其强调的是知识迁移   本节从知识利用的方式,归纳和分析知识蒸 馏的主要方法,包括知识合并、多教师学习、教 师助理、跨模态蒸馏、相互蒸馏、终身蒸馏以及 自蒸馏. 6 知识蒸馏与其它技术的融合  近几年,研究人员发现知识蒸馏结合其它主流

    41220

    Knowledge Distillation | 知识蒸馏经典解读

    作者 | 小小 整理 | NewBeeNLP 写在前面 知识蒸馏是一种模型压缩方法,是一种基于“教师-学生网络思想”的训练方法,由于其简单,有效,在工业界被广泛应用。 在本文中,我们将从背景和动机讲起,然后着重介绍“知识蒸馏”的方法,最后我会讨论“温度“这个名词: 「温度」: 我们都知道“蒸馏”需要在高温下进行,那么这个“蒸馏”的温度代表了什么,又是如何选取合适的温度 知识蒸馏的理论依据 Teacher Model和Student Model 知识蒸馏使用的是Teacher—Student模型,其中teacher是“知识”的输出者,student是“知识”的接受者。 而在知识蒸馏时,由于我们已经有了一个泛化能力较强的Net-T,我们在利用Net-T来蒸馏训练Net-S时,可以直接让Net-S去学习Net-T的泛化能力。 知识蒸馏的具体方法 通用的知识蒸馏方法 第一步是训练Net-T;第二步是在高温T下,蒸馏Net-T的知识到Net-S 训练Net-T的过程很简单,下面详细讲讲第二步:高温蒸馏的过程。

    16110

    模型压缩 | 知识蒸馏经典解读

    作者 | 小小@字节跳动 整理 | NewBeeNLP 写在前面 知识蒸馏是一种模型压缩方法,是一种基于“教师-学生网络思想”的训练方法,由于其简单,有效,在工业界被广泛应用。 在本文中,我们将从背景和动机讲起,然后着重介绍“知识蒸馏”的方法,最后我会讨论“温度“这个名词: 「温度」: 我们都知道“蒸馏”需要在高温下进行,那么这个“蒸馏”的温度代表了什么,又是如何选取合适的温度 知识蒸馏的理论依据 Teacher Model和Student Model 知识蒸馏使用的是Teacher—Student模型,其中teacher是“知识”的输出者,student是“知识”的接受者。 而在知识蒸馏时,由于我们已经有了一个泛化能力较强的Net-T,我们在利用Net-T来蒸馏训练Net-S时,可以直接让Net-S去学习Net-T的泛化能力。 知识蒸馏的具体方法 通用的知识蒸馏方法 第一步是训练Net-T;第二步是在高温T下,蒸馏Net-T的知识到Net-S ? 训练Net-T的过程很简单,下面详细讲讲第二步:高温蒸馏的过程。

    1.5K20

    位置蒸馏:针对目标检测提高定位精度的知识蒸馏

    在Gaussian yolov3中使用高斯分布对目标边框的不确定性进行建模,GFocal使用一般的离散分布表示目标边框的不确定性,将目标的边框表示为没有任何先验知识限制的离散概率分布。 02 知识蒸馏基础 知识蒸馏(KD,Knowledge Distillation)使得轻量级的学生网络能够模仿高性能的教师网络,提高学生网络的性能。 位置蒸馏和普通的蒸馏在形式上是一样的,而且不依赖于特定的架构,具有很强的通用性。 3.3 Self-LD 蒸馏学习使得轻量化学生网络拥有高性能教师网络的性能,而对教师网络本身使用蒸馏方法,即自蒸馏,也能提高教师网络本身的性能。 同样地,也可以在自蒸馏方法中引入位置蒸馏,即Self-LD,来增强教师网络解决边界模糊性的能力。

    41940

    【科普】联邦知识蒸馏概述与思考

    4)知识蒸馏(Knowledge Distillation):知识蒸馏是近年来发展起来的一类模型压缩与加速技术,其主要是利用一个已经训练好的复杂模型(作为教师),将其学习到的决策信息(知识)迁移到另一个轻量级模型 知识蒸馏旨在通过将知识从深度网络转移到小型网络来压缩和改进模型。 而近期知识蒸馏的技术发展最为迅速,因此涌现出来不少的联邦知识蒸馏相关的论文与想法。 接下来,我们将从知识蒸馏概述和联邦知识蒸馏两大主题探讨相关论文、经典算法和自己的理解思考。 知识蒸馏希望学生网络在模拟老师的输出的时候尽可能学到类与类之间的相似性和差异,从而增强学生模型的泛化能力。 知识蒸馏的主要关键点在于:知识的类型、蒸馏方法和教师-学生网络的结构。 图8:RKD示意图与框架结构(链接7) 知识蒸馏概述部分总结 通过若干知识蒸馏论文的解读我们可以发现,相比较而言,蒸馏知识的创新比较重要,一种知识的定义主要在于两方面: 1)在模型学习训练过程中,什么构成了知识

    9630

    基于知识蒸馏的BERT模型压缩

    为了提高模型的运行时间,本文率先提出了一种新的知识蒸馏 (Knowledge Distillation) [5] 方法来对模型进行压缩,从而在不损失太多精度的情况下,节省运行时间和内存。 “耐心的知识蒸馏”模型 具体来说,对于句子分类类型的任务,当普通的知识蒸馏模型用来对模型进行压缩的时候, 通常都会损失很多精度。 文章称这种模型为“耐心的知识蒸馏”模型 (Patient Knowledge Distillation, 或者PKD)。 验证猜测 研究者将提出的模型与模型微调(fine-tuning)和正常的知识蒸馏在7个句子分类的保准数据集上进行比较,在12层教师模型蒸馏到6层或者3层学生模型的时候,绝大部分情况下PKD的表现都优于两种基线模型

    49410

    联合学习中的全球知识蒸馏

    近年来,知识蒸馏在联邦教学中引起了广泛的关注。在具有不同数据大小和数据结构的异构客户端上进行训练具有FL的优势。 本文提出了一种新的全局知识提取方法FedGKD,该方法从过去的全局模型中学习知识来解决局部偏差训练问题。通过学习全局知识并与当前局部模型保持一致,FedGKD在FL中学习全局知识模型。d数据)。

    22110

    联邦知识蒸馏概述与思考(续)

    前文(【科普】联邦知识蒸馏概述与思考)提到知识蒸馏是一种模型压缩方法,通过利用复杂模型(Teacher Model)强大的表征学习能力帮助简单模型(Student Model)进行训练,主要分为两个步骤 知识蒸馏可以在保证模型的性能前提下,大幅度的降低模型训练过程中的通信开销和参数数量,知识蒸馏的目的是通过将知识从深度网络转移到一个小网络来压缩和改进模型。 图4:ERA算法【2】 ▊ FedGEN 联邦无数据蒸馏【3】 最近出现了利用知识蒸馏来解决联邦学习中的用户异构性问题的想法,具体是通过使用来自异构用户的聚合知识来优化全局模型,而不是直接聚合用户的模型参数 (增广样本具有归纳偏置信息),通过生成器可以提炼出全局分布数据的知识给客户端,从而实现无信息的知识蒸馏。 FedGEN和先前研究的主要区别在于:知识蒸馏至用户模型,而不是全局模型。因此,蒸馏出来的知识(向用户传递的归纳偏置)可以通过在潜在空间Z上进行分布匹配,直接调节用户的学习。

    11420

    “烘焙”ImageNet:自蒸馏下的知识整合

    (a) 多教师模型的知识整合;(b) 多学生模型的知识整合;(c) BAKE: 批次内样本间的知识整合 在该论文中,我们提出了一种新颖的“烘焙”(BAKE)训练机制(上图c),整合批次内不同样本间的知识在线优化蒸馏目标 BAKE首次实现在自蒸馏框架下的知识整合,以最少的训练时间开销和零额外网络参数为代价,持续有效地提高了各种网络架构和数据集的分类性能。 除了上述知识蒸馏系列算法之外,还有一类研究被称之标签精炼(Label Refinery)算法 [4]。 基于该假设,BAKE依据同批次内其他样本对锚样本的相似度,进行知识的加权传播和汇总,以形成准确的软标签,作为蒸馏训练的监督(见下图)。 ? BAKE为知识蒸馏中的知识整合提供了一个全新的思路,打破了固有的多模型整合的样式,创新地提出并尝试了样本间的知识整合。

    32210

    知识蒸馏综述:网络结构搜索应用

    1 引言 知识蒸馏可以看做教师网络通过提供soft label的方式将知识传递到学生网络中,可以被视为一种更高级的label smooth方法。 一些工作通过知识蒸馏引入评判子网的指标 ,比如与教师网络越接近的,认为其性能越好。 中的网络作为教师网络,引导知识蒸馏。 这部分其实是属于知识蒸馏分类中基于关系的知识,构建的知识由不同样本之间的互作用构成。 知识蒸馏+模型集成 :提出了动态选择待集成的模型,选择对应的教师网络进行蒸馏

    22330

    相关产品

    • 腾讯知识图谱

      腾讯知识图谱

      腾讯知识图谱是一个集成图数据库、图计算引擎和图可视化分析的一站式平台。支持抽取和融合异构数据,支持千亿级节点关系的存储和计算,支持规则匹配、机器学习、图嵌入等图数据挖掘算法,拥有丰富的图数据渲染和展现的可视化方案……

    相关资讯

    热门标签

    扫码关注腾讯云开发者

    领取腾讯云代金券