首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏人人都是极客

    深度学习中的3个秘密:集成,知识蒸馏和自蒸馏

    神秘之处3:自蒸馏 注意,知识蒸馏至少直观上是有意义的:教师集成模型的测试准确率为84.8%,所以单个学生模型的测试准确率可以达到83.8%。 这就引出了下面的问题: 与随机特征映射(即NTK特征映射)相比,集成/知识蒸馏在深度学习中的工作方式是否相同? **回答:并非如此,下面图3的实验证明了这一点。 **此图比较了深度学习中的集成和知识蒸馏与随机特征映射的线性模型的集成和知识蒸馏。集成在两种情况下都有效。然而,图3中的准确性清楚地表明,它们的工作原因完全不同。 图3:集成在随机特征映射中起作用(但原因与深度学习完全不同),而知识蒸馏在随机特征映射中不起作用。 自蒸馏:隐式地结合集成和知识蒸馏 在这项新工作中,我们还为知识自蒸馏提供了理论支持(参见图3)。训练一个单个模型以匹配另一个相同单个模型的输出(但使用不同的随机种子),以某种方式提高了性能。

    1.9K11编辑于 2024-04-15
  • 来自专栏GiantPandaCV

    知识蒸馏综述:蒸馏机制

    ,可以分为离线蒸馏,在线蒸馏和自蒸馏。 感性上理解三种蒸馏方式: 离线蒸馏可以理解为知识渊博的老师给学生传授知识。 在线蒸馏可以理解为教师和学生一起学习。 自蒸馏意味着学生自己学习知识。 1. 早期的KD方法都属于离线蒸馏,将一个预训练好的教师模型的知识迁移到学生网络,所以通常包括两个阶段: 在蒸馏前,教师网络在训练集上进行训练。 使用在线蒸馏的时候,教师网络和学生网络的参数会同时更新,整个知识蒸馏框架是端到端训练的。 3. 自蒸馏 Self-Distillation 在自蒸馏中,教师和学生模型使用相同的网络。自蒸馏可以看作是在线蒸馏的一种特殊情况,因为教师网络和学生网络使用的是相同的模型。

    2.2K30编辑于 2021-12-09
  • 来自专栏算法之名

    知识蒸馏

    知识蒸馏概述 蒸馏指的是把不纯净的水加热变成蒸汽,蒸汽冷凝之后变成冷凝水。知识蒸馏也是把有杂质的东西,大的东西变成小的东西,纯的东西。 在上图中,除了3和7以外,其他的数字的概率都很小,现在我们要把这些其他数字的概率放大,充分暴露出来它们的差别,需要引入一个温度蒸馏T 温度蒸馏T 一般我们做多分类的时候都使用的是softmax这个激活函数 而蓝线的部分是加入了温度蒸馏T=3的情况,则原来比较hard的部分就变得更加soft,高的概率被压低,而低的概率被提升。但是它的相对大小依然是固定的。T越高,这个targets就会变的越soft。 知识蒸馏是把一个模型的知识迁移到另一个模型上。 知识蒸馏的原理 上图中大的绿色的矩形为非常大的教师网络,中间的蓝色的矩形是学生网络。 softmax_3 = np.exp(logits / T) / sum(np.exp(logits / T)) plt.plot(softmax_3, label='T=3')

    92830编辑于 2022-03-24
  • 来自专栏自然语言处理(NLP)论文速递

    模型蒸馏升级!高温蒸馏:Softmax With Temperature

    一个是知识蒸馏的方法用于深度学习,同时也需要深入学习;另一个则是本文的核心:蒸馏中如何合理运用温度,让隐藏的知识更好地挥发和凝结。 蒸馏模型 模型蒸馏或知识蒸馏,最早在 2006 年由 Buciluǎ 在文章 Model Compression [14] 中提出(很多博主把人名都写错了。 先简要概括一下模型蒸馏在做什么。出于计算资源的限制或效率的要求,深度学习模型在部署推断时往往需要进行压缩,模型蒸馏是其中一种常见方法。 读完 Hinton 的文章,有两个强烈的感受:一是感觉他太牛了,3 句话让我读了 18 遍,全文很少用公式,基本没有配图,但把算法讲得清清楚楚;二就是,他的写作中长从句实在太多了,一句话 60 个单词 -Paper.pdf [2]Distilling the Knowledge in a Neural Network https://arxiv.org/abs/1503.02531 [3] PR-009

    2.3K30编辑于 2022-12-06
  • 来自专栏NLP/KG

    知识蒸馏相关技术【模型蒸馏、数据蒸馏】以ERNIE-Tiny为例

    实验表明通用蒸馏阶段和任务蒸馏阶段的蒸馏loss不匹配时,学生模型的效果会受到影响。 如果已提供的通用蒸馏学生模型尺寸符合需求,用户可以主要关注接下来的任务蒸馏过程。 (用户训练数据量到百万样本以上可以考虑尝试一下)3.数据蒸馏任务3.1 简介在ERNIE强大的语义理解能力背后,是需要同样强大的算力才能支撑起如此大规模模型的训练和预测。 三种数据增强策略包括:(1)添加噪声:对原始样本中的词,以一定的概率(如0.1)替换为”UNK”标签(2)同词性词替换:对原始样本中的所有词,以一定的概率(如0.1)替换为本数据集中随机一个同词性的词(3) N-sampling:从原始样本中,随机选取位置截取长度为m的片段作为新的样本,其中片段的长度m为0到原始样本长度之间的随机值数据增强策略可参考数据增强,我们已准备好了采用上述3种增强策略制作的chnsenticorp

    1.8K31编辑于 2022-11-14
  • 来自专栏NLP/KG

    知识蒸馏相关技术【模型蒸馏、数据蒸馏】以ERNIE-Tiny为例

    实验表明通用蒸馏阶段和任务蒸馏阶段的蒸馏loss不匹配时,学生模型的效果会受到影响。 如果已提供的通用蒸馏学生模型尺寸符合需求,用户可以主要关注接下来的任务蒸馏过程。 (用户训练数据量到百万样本以上可以考虑尝试一下) 3.数据蒸馏任务 3.1 简介 在ERNIE强大的语义理解能力背后,是需要同样强大的算力才能支撑起如此大规模模型的训练和预测。 三种数据增强策略包括: (1)添加噪声:对原始样本中的词,以一定的概率(如0.1)替换为”UNK”标签 (2)同词性词替换:对原始样本中的所有词,以一定的概率(如0.1)替换为本数据集中随机一个同词性的词 (3) N-sampling:从原始样本中,随机选取位置截取长度为m的片段作为新的样本,其中片段的长度m为0到原始样本长度之间的随机值 数据增强策略可参考数据增强,我们已准备好了采用上述3种增强策略制作的chnsenticorp

    1.6K20编辑于 2022-12-21
  • 来自专栏机器之心

    苹果也在蒸馏大模型,给出了蒸馏Scaling Laws

    蒸馏扩展定律的外推。蒸馏扩展定律适用于一系列损失为 LT 的教师的弱学生模型(L_S > 2.3)。 如图所示,学生的表现可以胜过老师(详情见图 2、3 和 41)。 苹果研究者认为,该发现降低了大规模使用蒸馏的风险,现在我们可以基于此优化教师和学生模型的计算分配,以最大化学生模型的性能。 老师大小 N_T 和老师训练 token 数量 D_T 仅通过确定老师的交叉熵 L_T = L_T (N_T , D_T) 来确定学生交叉熵; 3. 最终得到的学生交叉熵如图 3 所示。 这可以从图 1 和图 3b 中看出: 总之,本文提出,学生交叉熵在 L_T 中遵循 broken 幂律,在 N_S 和 D_S 中遵循幂律: 在此之后,论文分析了在不同计算预算下如何最优地分配教师和学生模型的资源

    33700编辑于 2025-02-19
  • 来自专栏OpenMMLab

    知识蒸馏系列(二):知识蒸馏的迁移学习应用

    本文内容 1 前言 2 蒸馏特征的迁移学习 3 蒸馏参数的迁移学习 4 总结 1. 对于解决源域和目标域间的数据分布差异这一问题,根据迁移学习的实现对象目标区别 [3],可以将迁移学习方法分为如下类别: 源自参考文献 [3] 基于实例的迁移(instance-based transfer AFD 的 ImageNet 图像分类迁移实验结果 3. 蒸馏参数的迁移学习 3.1. International Journal of Computer Vision, 2021, 129(6): 1789-1819. [3] Zhuang F, Qi Z, Duan K, et al. ACM Transactions on Knowledge Discovery from Data (TKDD), 2021, 16(3): 1-20. [13] Chen P, Huang D, He

    2.1K10编辑于 2022-12-30
  • 来自专栏CSDN社区搬运

    逐步蒸馏论文复现

    为此,研究人员通常通过微调(finetuning)或蒸馏(distillation)训练更小的任务特定模型,但这两种方法都需要大量的训练数据。 本文提出了一种新的方法——逐步蒸馏(Distilling Step-by-Step),它通过提取LLM生成的推理过程作为监督信号,训练小模型并显著减少数据需求。 逐步蒸馏方法:采用多任务学习方式,将标签预测和理由生成结合起来,训练小模型同时具备预测能力和推理能力。 3.实验部分 3.1数据集 论文中使用了4个流行的基准数据集,涵盖3种不同的自然语言处理(NLP)任务,具体数据集和任务如下: 3.1.1自然语言推理(Natural Language Inference (Standard Distillation) 使用LLM生成的标签(PaLM label)对模型进行蒸馏: python run.py --from_pretrained .

    64110编辑于 2025-01-02
  • 来自专栏机器学习与生成对抗网络

    综述 | 知识蒸馏(1)

    另一个例子是,手写数字2的图像与数字3相比更类似于数字7。这种由教师模型学习的知识在(Hinton et al。,2015)中被称为dark knowledge。 ? 关于软目标和硬目标的直观示例如图3所示。 ? 此外,温度因子T被引入控制每个软目标的重要性,如 ? 较高的温度会在各个类别上产生较“软”的概率分布。具体来说,当T→∞时,所有类别都具有相同的概率。 3 “知识”的分类 基于响应的知识(Response-Based Knowledge),基于特征的知识(feature-based knowledge)和基于关系的知识(relation-based knowledge 4 蒸馏的策略 根据教师模型是否与学生模型同时更新,知识蒸馏的学习方案可以直接分为三大类:离线蒸馏,在线蒸馏和自蒸馏,如图6所示 ? 每层通道数更少(Wang等人,2018a);2)教师网络的量化版本,其中网络的结构是保留着的(Polino等人,2018; Mishra和Marr,2017;Wei等,2018; Shin等人,2019);3

    1.9K20发布于 2020-07-24
  • 来自专栏我爱计算机视觉

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

    在Gaussian yolov3中使用高斯分布对目标边框的不确定性进行建模,GFocal使用一般的离散分布表示目标边框的不确定性,将目标的边框表示为没有任何先验知识限制的离散概率分布。 位置蒸馏和普通的蒸馏在形式上是一样的,而且不依赖于特定的架构,具有很强的通用性。 3.3 Self-LD 蒸馏学习使得轻量化学生网络拥有高性能教师网络的性能,而对教师网络本身使用蒸馏方法,即自蒸馏,也能提高教师网络本身的性能。 同样地,也可以在自蒸馏方法中引入位置蒸馏,即Self-LD,来增强教师网络解决边界模糊性的能力。 5.2 Self-LD对baseline检测器的性能提升 在COCO数据集上使用ResNet-18、ResNet-50和ResNeXt-101-32x4d-DCN这3个模型进行评估,评估它们使用Self-LD

    1.5K40发布于 2021-05-07
  • 来自专栏null的专栏

    BERT知识蒸馏TinyBERT

    TinyBERT[1]是一种针对transformer-based模型的知识蒸馏方法,以BERT为Teacher模型蒸馏得到一个较小的模型TinyBERT。 知识蒸馏 知识蒸馏(knowledge distillation)[2]是模型压缩的一种常用的方法,对于一个完整的知识蒸馏过程,有两个模型,分别为Teacher模型和Student模型,通过学习将已经训练好的 Transformer-layer Distillation Transformer-layer的蒸馏由Attention Based蒸馏和Hidden States Based蒸馏两部分组成,具体如下图所示 : 其中,在BERT中多头注意力层能够捕获到丰富的语义信息,因此,在蒸馏到TinyBERT中,提出了Attention Based蒸馏,其目的是希望使得蒸馏后的Student模型能够从Teacher模型中学习到这些语义上的信息 3. 总结 在TinyBERT中,精简了BERT模型的大小,设计了三种层的蒸馏,分别为transformer-layer,embedding-layer以及prediction-layer。

    67440编辑于 2022-11-30
  • 来自专栏全栈程序员必看

    知识蒸馏(Knowledge Distillation)

    \ F.cross_entropy(outputs, labels) * (1. - alpha) return KD_loss 3、 = F.cosine_similarity(aug_rep, nor_rep, dim=1) target = torch.arange(batch).unsqueeze(1).expand(-1, 3) 其中LT的OHEM如下: aug_target = target.unsqueeze(1).expand(-1, 3).contiguous().view(-1).long().cuda() rank torch.argsort(rank) tmp = torch.nonzero(rank, as_tuple=True)[0] wrong_num = tmp.numel() correct_num = 3 ,可以训练精简的Faster-RCNN,可参考: 目标检测网络的知识蒸馏_AI Flash-CSDN博客_目标检测 知识蒸馏 ——– 网络结构搜索(NAS)也可以采用蒸馏操作,改善搜索效果,可参考(Cream

    3.4K10编辑于 2022-07-01
  • 来自专栏null的专栏

    BERT知识蒸馏TinyBERT

    TinyBERT[1]是一种针对transformer-based模型的知识蒸馏方法,以BERT为Teacher模型蒸馏得到一个较小的模型TinyBERT。 知识蒸馏知识蒸馏(knowledge distillation)[2]是模型压缩的一种常用的方法,对于一个完整的知识蒸馏过程,有两个模型,分别为Teacher模型和Student模型,通过学习将已经训练好的 Transformer-layer DistillationTransformer-layer的蒸馏由Attention Based蒸馏和Hidden States Based蒸馏两部分组成,具体如下图所示 :图片其中,在BERT中多头注意力层能够捕获到丰富的语义信息,因此,在蒸馏到TinyBERT中,提出了Attention Based蒸馏,其目的是希望使得蒸馏后的Student模型能够从Teacher模型中学习到这些语义上的信息 3. 总结在TinyBERT中,精简了BERT模型的大小,设计了三种层的蒸馏,分别为transformer-layer,embedding-layer以及prediction-layer。

    96860编辑于 2022-11-12
  • 来自专栏图与推荐

    NeurIPS23 | 图数据蒸馏 v.s. 图像数据蒸馏,

    ,现有的图数据蒸馏(图压缩)方法往往是将面向图像数据的数据蒸馏方法简单扩展到图数据上,忽视了图结构在图数据蒸馏中的关键作用。 现有方法的问题 现有的图数据蒸馏(图压缩)方法往往是将面向图像数据的数据蒸馏方法简单扩展到图数据上,忽视了图结构信息在图数据压缩中的重要影响。 3. 实验结果 4.1 节点分类/异常检测/链接预测实验 我们在9个数据集,3种不同任务上测试了SGDD的性能。 4.2 跨框架泛化性实验 我们进⼀步在APPNP,Cheby,GCN,GraphSAGE以及SGC框架上进⾏了跨框架泛化性实验(⻅表2和表3),与现有⽅法相⽐,我们的⽅法的改进⾼达11.3%,这证明了将原始结构信息传播到

    81710编辑于 2024-01-23
  • 来自专栏代码工具

    模型蒸馏-学习笔记

    模型蒸馏一. 核心问题由于知识蒸馏在训练过程中,有两个模型(teacher模型和student模型),3个loss(teacher loss、student loss、蒸馏loss),因此如何平衡不同模型之间的训练会是影响模型效果的重要因素 模型有以下特点:学生网络和教师网络共享底层参数 [[公式]]教师网络使用更复杂的模型结构 [[公式]]蒸馏目标是logits输出,学生网络logits拟合教师网络logits蒸馏误差表示如下:[image 模型蒸馏实战说明: keras官方提供的蒸馏方案是一个标准的MD方案, teacher和student使用相同的输入, 通过teacher和student的输出拟合来将teacher的信息迁移到student Step3.

    9.9K22编辑于 2022-06-30
  • 来自专栏GiantPandaCV

    知识蒸馏综述:代码整理

    【GiantPandaCV导语】 收集自RepDistiller中的蒸馏方法,尽可能简单解释蒸馏用到的策略,并提供了实现源码。 1. Distillation 全称:Distilling the Knowledge in a Neural Network 链接:https://arxiv.org/pdf/1503.02531.pd3f def forward(self, f_s, f_t): loss = self.crit(f_s, f_t) return loss 实现核心就是MSELoss 3. for w, l in zip(self.w, losses)] # loss = sum(losses) / bsz # loss = loss / 1000 * 3 1e-6): mask = (fm < 0.0).float() masked_fm = fm * mask margin = masked_fm.sum(dim=(0,2,3)

    1.6K21编辑于 2022-02-11
  • 来自专栏AI系统

    【AI系统】知识蒸馏原理

    我们将探讨知识蒸馏的不同知识类型,包括基于响应的、基于特征的和基于关系的知识点,以及不同的知识蒸馏方式,如离线蒸馏、在线蒸馏和自蒸馏。 此外,还将解读 Hinton 提出的经典知识蒸馏算法,以及知识蒸馏与自然界中物理蒸馏过程的相似之处。 用学习过程比喻,离线蒸馏是知识渊博的老师向学生传授知识;在线蒸馏是老师和学生一起学习、共同进步;自蒸馏是学生自学成才。 自蒸馏的提出主要是为了解决传统两阶段蒸馏方法的一些问题。 例如 MNIST 数据集中存在一个数字 2 的样本被预测为 3 的概率为 10^{-6} ,被预测为 7 的概率为 10^{-9} ,这部分负标签的信息就意味着这个数字 2 有可能与 3 和 7 有些相像 知识蒸馏与物理蒸馏的相似之处: 知识蒸馏通过 T 系数控制模型输出的熵;物理蒸馏通过温度改变混合物的形态,影响物理系统的熵 温度系数 T 训练时提高,最后变回 1;物理蒸馏时温度先上升使液体变为气体,气体再回到常温变回液体

    97810编辑于 2024-12-06
  • 来自专栏AI科技评论

    今日 Paper | 协作蒸馏;攻击即防御;人脸表示;3D-CariGAN等

    目录 用于超分辨率通用样式迁移的协作蒸馏 通过学习去攻击来进行防御 用于人脸反欺骗的深度空间梯度和时间深度学习 用未标记数据泛化人脸表示 3D-CariGAN:一种从人脸照片生成3D漫画的端到端解决方案 用于超分辨率通用样式迁移的协作蒸馏 论文名称:Collaborative Distillation for Ultra-Resolution Universal Style Transfer 作者 这篇论文提出了一种新的称为协作蒸馏的知识蒸馏方法,用于减少基于编码器-解码器结构的神经风格迁移模型中的滤波器。 为了克服协同蒸馏过程中特征尺寸不匹配的问题,新方法引入了线性嵌入损失来驱动学生网络学习教师特征的线性嵌入。 3D-CariGAN:一种从人脸照片生成3D漫画的端到端解决方案 论文名称:3D-CariGAN: An End-to-End Solution to 3D Caricature Generation

    86610发布于 2020-04-14
  • 来自专栏GiantPandaCV

    【知识蒸馏】Deep Mutual Learning

    feature distillation): +0.18 DML(deep mutual learning): + 2.24 (ps: 这里教师网络已经训练好了,与DML不同) DML也是传统知识蒸馏的扩展 但是不同于传统知识蒸馏的单向蒸馏(教师→学生),DML认为可以让学生互相学习(双向蒸馏),在整个训练的过程中互相学习,通过这种方式可以提升模型的性能。 如果传统的知识蒸馏是由教师网络指导学生网络,那么DML就是让两个学生互帮互助,互相学习。 DML 小型的网络通常有与大网络相同的表示能力,但是训练起来比大网络更加困难。 那么先训练一个大型的网络,然后通过使用模型剪枝、知识蒸馏等方法就可以让小型模型的性能提升,甚至超过大型模型。 以知识蒸馏为例,通常需要先训练一个大而宽的教师网络,然后让小的学生网络来模仿教师网络。 (3)给出的class置信度不会过于高。总体来说就是:DML并没有帮助我们找到更好的训练损失最小值,而是帮助我们找到更广泛/更稳健的最小值,更好地对测试数据进行泛华。

    1.1K30发布于 2021-11-19
领券