首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏往期博文

    【目标检测】YOLOv5遇上知识蒸馏

    distillation) 本文主要来研究知识蒸馏的相关知识,并尝试用知识蒸馏的方法对YOLOv5进行改进。 YOLOv5加上知识蒸馏 下面就将知识蒸馏融入到YOLOv5目标检测任务中,使用的是YOLOv5-6.0版本。 相关代码参考自:https://github.com/Adlik/yolov5 代码修改 其实知识蒸馏的想法很简单,在仓库作者的代码版本中,修改的内容也并不多,主要是模型加载和损失计算部分。 ,用yolov5m作为教师模型,yolov5s作为学生模型,表格第二行展示了蒸馏之后的效果,mAP提升了2.1. yolov5m yolov5x [640, 640] 0.302 0.161 结果挺意外的,使用蒸馏训练之后,mAP反而下降了,严重怀疑蒸馏出来的是糟粕 结论 知识蒸馏理论上并不复杂,但经过实验,基本判断这玩意理论价值大于应用价值

    3.5K50编辑于 2022-11-12
  • 来自专栏GiantPandaCV

    知识蒸馏综述:蒸馏机制

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

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

    知识蒸馏

    知识蒸馏概述 蒸馏指的是把不纯净的水加热变成蒸汽,蒸汽冷凝之后变成冷凝水。知识蒸馏也是把有杂质的东西,大的东西变成小的东西,纯的东西。 把一个大的模型(教师模型)里面的知识给萃取蒸馏出来浓缩到一个小的学生模型上。 教师网络是一个比较大的神经网络,它把知识传递给了小的学生网络。这个过程称之为蒸馏或者叫迁移。 知识蒸馏的过程 我们来看一下学生网络、教师网络到底是怎么样来进行蒸馏学习的,首先有一个已经训练好的教师网络,然后我们把很多数据喂给教师网络,这里会给一个温度为t的时候的softmax。 知识蒸馏是把一个模型的知识迁移到另一个模型上。 知识蒸馏的原理 上图中大的绿色的矩形为非常大的教师网络,中间的蓝色的矩形是学生网络。 softmax_5 = np.exp(logits / T) / sum(np.exp(logits / T)) plt.plot(softmax_5, label='T=5')

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

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

    一个是知识蒸馏的方法用于深度学习,同时也需要深入学习;另一个则是本文的核心:蒸馏中如何合理运用温度,让隐藏的知识更好地挥发和凝结。 蒸馏模型 模型蒸馏或知识蒸馏,最早在 2006 年由 Buciluǎ 在文章 Model Compression [14] 中提出(很多博主把人名都写错了。 先简要概括一下模型蒸馏在做什么。出于计算资源的限制或效率的要求,深度学习模型在部署推断时往往需要进行压缩,模型蒸馏是其中一种常见方法。 对于相同的输入,让学生输出的概率分布尽可能的逼近教师输出的分布,则大模型的知识就通过这种监督训练的方式「蒸馏」到了小模型里。 /stats.stackexchange.com/questions/527080/what-is-the-role-of-temperature-in-softmax#answer-527082 [5]

    2.3K30编辑于 2022-12-06
  • 来自专栏全栈程序员必看

    Yolov5更换backbone,与模型压缩(剪枝,量化,蒸馏

    项目地址(GitHub):https://github.com/Ranking666/Yolov5-Processing 项目介绍: 本仓库是基于官方yolov5源码的基础上,进行的改进。 目前支持更换yolov5的backbone主干网络为Ghostnet,以及采用eagleeye的剪枝方法支持对yolov5系列的剪枝。 后续,将会添加更多更轻量,更优秀的主干网络,比如swintrans,EfficientNet等,以及其他剪枝方法,以及量化,蒸馏对于yolov5系列的支持。

    2.2K20编辑于 2022-09-22
  • 来自专栏NLP/KG

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

    1.1 模型蒸馏原理知识蒸馏是一种模型压缩常见方法,指的是在teacher-student框架中,将复杂、学习能力强的网络(teacher)学到的特征表示"知识"蒸馏出来,传递给参数量小、学习能力弱的网络 实验表明通用蒸馏阶段和任务蒸馏阶段的蒸馏loss不匹配时,学生模型的效果会受到影响。 具体来说,第一阶段,General Distillation,在预训练的老师、一般数据和潜在蒸馏损失的指导下进行蒸馏。 如果已提供的通用蒸馏学生模型尺寸符合需求,用户可以主要关注接下来的任务蒸馏过程。 教师模型和通用数据继续用通用蒸馏的方式蒸馏学生模型,进一步提升学生模型的效果;a.

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

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

    1.1 模型蒸馏原理 知识蒸馏是一种模型压缩常见方法,指的是在teacher-student框架中,将复杂、学习能力强的网络(teacher)学到的特征表示"知识"蒸馏出来,传递给参数量小、学习能力弱的网络 实验表明通用蒸馏阶段和任务蒸馏阶段的蒸馏loss不匹配时,学生模型的效果会受到影响。 具体来说,第一阶段,General Distillation,在预训练的老师、一般数据和潜在蒸馏损失的指导下进行蒸馏。 如果已提供的通用蒸馏学生模型尺寸符合需求,用户可以主要关注接下来的任务蒸馏过程。 fine-tuned教师模型和通用数据继续用通用蒸馏的方式蒸馏学生模型,进一步提升学生模型的效果; a.

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

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

    蒸馏扩展定律的外推。蒸馏扩展定律适用于一系列损失为 LT 的教师的弱学生模型(L_S > 2.3)。 如果要蒸馏多个学生模型,或者已有教师模型,蒸馏在计算水平上优于监督预训练,直到计算水平随着学生模型规模的增加而可预测地增长。如果要蒸馏一个学生模型且还需要训练教师模型,则应采用监督学习。 此外,作者在大规模蒸馏研究中提供了深入的见解,这些见解增加了我们对蒸馏的理解,并为实验设计提供了信息。 老师已经存在,或者要训练的老师有超出单次蒸馏的用途。 新的定律和分析有望指导 AI 社区构建更强大的模型,实现更低的推理成本和总计算成本。 蒸馏扩展率 文章概述了他们如何得出蒸馏扩展率所采取的步骤。 本文的目标是理解教师模型在蒸馏过程中的作用,因此,该研究在纯蒸馏情况下(λ = 1,公式 7)进行蒸馏,以避免数据带来的混淆。本文验证了 λ = 1 的选择能够产生与最优 λ∗ 统计相似的结果。

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

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

    知识蒸馏系列文章继续更新啦!在上一篇文章中,我们介绍了三类基础知识蒸馏算法,今天我们一起来学习知识蒸馏的迁移学习应用。 本文内容 1 前言 2 蒸馏特征的迁移学习 3 蒸馏参数的迁移学习 4 总结 1. 蒸馏特征的迁移学习 蒸馏特征的迁移学习通过在源域教师模型和目标域学生模型间寻找输出 logits 或中间层特征作为迁移目标的蒸馏知识,实现不同数据域和任务域间的教师—学生关系间的知识蒸馏。 如图,可以看出手动选择的关系同注意力学习到的相关性存在差异,来源 [5] 因此,AFD 便提出了采用注意力机制,根据特征间相似度对所有可能的教师模型和学生模型特征间关系进行加权调整的方法,从而动态调整教师模型和学生模型间的特征对应关系 IEEE Transactions on Image Processing, 2019, 29: 1902-1914. [5] Ji M, Heo B, Park S.

    2.1K10编辑于 2022-12-30
  • 来自专栏机器学习与生成对抗网络

    综述 | 知识蒸馏(1)

    4 蒸馏的策略 根据教师模型是否与学生模型同时更新,知识蒸馏的学习方案可以直接分为三大类:离线蒸馏,在线蒸馏和自蒸馏,如图6所示 ? 离线蒸馏意味着知识渊博的老师向新生传授知识;在线蒸馏是指师生在老师为主要监督下互相学习;自蒸馏是学生无需老师就能自学知识。这三种蒸馏方法可以结合起来进行优势互补。 5 教师-学生网络架构 知识蒸馏原本是为了压缩深度神经网络(Hinton et al,2015)。深层神经网络的复杂性主要来自两个方面:深度和宽度。 (Howard等,2017; Zhang等,2018a; Huang等人,2017);4)具有优化的全球网络结构的小型网络(Liu等,2019h;Xie等,2020;Gu和Tresp, 2020);或5) 6 蒸馏算法 7 蒸馏应用

    1.9K20发布于 2020-07-24
  • 来自专栏CSDN社区搬运

    逐步蒸馏论文复现

    本篇工作基于T5-efficient-mini模型复现了该方法,不仅提高了训练速度,还在wandb平台上实现了训练过程的可视化。通过这种优化,展示了如何在实践中加速模型训练。以上内容均为原创。 逐步蒸馏方法:采用多任务学习方式,将标签预测和理由生成结合起来,训练小模型同时具备预测能力和推理能力。 /t5-efficient-mini --dataset cqa --model_type standard --label_type gt --batch_size 64 逐步蒸馏(Distilling 64 标准蒸馏(Standard Distillation) 使用LLM生成的标签(PaLM label)对模型进行蒸馏: python run.py --from_pretrained . /t5-efficient-mini --dataset cqa --model_type standard --label_type llm --batch_size 64 结合标签与推理的逐步蒸馏

    64110编辑于 2025-01-02
  • 来自专栏我爱计算机视觉

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

    02 知识蒸馏基础 知识蒸馏(KD,Knowledge Distillation)使得轻量级的学生网络能够模仿高性能的教师网络,提高学生网络的性能。 为预测目标框中某个边框,教师网络和学生网络分别输出和,对它们进行softmax操作,得到概率分布和,可以用下面的公式表示边框的蒸馏损失: 回归框中4个边框的蒸馏损失表示为: 上述关于位置蒸馏的表述可以用下图表示 位置蒸馏和普通的蒸馏在形式上是一样的,而且不依赖于特定的架构,具有很强的通用性。 3.3 Self-LD 蒸馏学习使得轻量化学生网络拥有高性能教师网络的性能,而对教师网络本身使用蒸馏方法,即自蒸馏,也能提高教师网络本身的性能。 同样地,也可以在自蒸馏方法中引入位置蒸馏,即Self-LD,来增强教师网络解决边界模糊性的能力。

    1.5K40发布于 2021-05-07
  • 来自专栏代码工具

    模型蒸馏-学习笔记

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

    9.9K22编辑于 2022-06-30
  • 来自专栏晓飞的算法工程笔记

    SelMatch:最新数据集蒸馏,仅用5%训练数据也是可以的 | ICML24

    在对CIFAR-10/100和TinyImageNet的测试中,SelMatch在5%到30%的子集比率上始终优于主流的仅选择和仅蒸馏方法。 部分更新:在传统的数据集蒸馏方法中,合成数据集中的每个样本都在蒸馏迭代过程中进行更新。 然而,随着蒸馏迭代次数的增加,该过程会不断降低合成数据集中样本的多样性,因为蒸馏提供的信号偏向于全数据集中的简单模式。 在CIFAR-10/100和TinyImageNet上评估了SelMatch,并展示了在从5%到30%的子集比例设置中,与最先进的仅选择和仅蒸馏方法相比的优越性。 特别是对于较小的窗口(5-10%范围),测试准确度根据窗口起始位置的不同可以出现高达40%的偏差。

    65111编辑于 2024-09-25
  • 来自专栏null的专栏

    BERT知识蒸馏TinyBERT

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

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

    知识蒸馏(Knowledge Distillation)

    本文主要罗列与知识蒸馏相关的一些算法与应用。但首先需要明确的是,教师网络或给定的预训练模型中包含哪些可迁移的知识? Total loss中Soft target相关部分所占比重逐渐降低,从而让学生网络能够全面辨别简单样本与困难样本(教师网络能够有效辨别简单样本,而困难样本则需要借助真实标注,即Hard target): 5、 ,考虑了中间层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

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

    BERT知识蒸馏TinyBERT

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

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

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

    最近,图数据集蒸馏/图压缩(Graph Dataset Distillation / Graph Condensation)方法引起了广泛关注,它旨在将庞大的原始图数据蒸馏至一个极小规模且信息丰富的生成图 ,现有的图数据蒸馏(图压缩)方法往往是将面向图像数据的数据蒸馏方法简单扩展到图数据上,忽视了图结构在图数据蒸馏中的关键作用。 因此,我们的研究聚焦于图结构对图数据蒸馏性能的影响。从谱域角度出发,我们定量分析了原始图与生成图间的“结构差异”,并实验性地验证了这种差异与生成图的跨框架泛化性能之间的关系。 现有方法的问题 现有的图数据蒸馏(图压缩)方法往往是将面向图像数据的数据蒸馏方法简单扩展到图数据上,忽视了图结构信息在图数据压缩中的重要影响。 5. 总结 面向图数据的蒸馏目前仍为一个较新的方向,我们的研究着眼于图结构保持对图数据蒸馏的重要性,期望此工作能够引起领域对该方向更多的研究和探讨。 6.

    81810编辑于 2024-01-23
  • 来自专栏GiantPandaCV

    【知识蒸馏】Deep Mutual Learning

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

    1.1K30发布于 2021-11-19
  • 来自专栏GiantPandaCV

    知识蒸馏综述:代码整理

    【GiantPandaCV导语】 收集自RepDistiller中的蒸馏方法,尽可能简单解释蒸馏用到的策略,并提供了实现源码。 1. Distilling the Knowledge in a Neural Network 链接:https://arxiv.org/pdf/1503.02531.pd3f 发表:NIPS14 最经典的,也是明确提出知识蒸馏概念的工作 全称:Fitnets: hints for thin deep nets 链接:https://arxiv.org/pdf/1412.6550.pdf 发表:ICLR 15 Poster 对中间层进行蒸馏的开山之作 = G_t - G_s loss = (G_diff * G_diff).view(-1, 1).sum(0) / (bsz * bsz) return loss 5. , num_target_channels, init_pred_var=5.0, eps=1e-5)

    1.6K21编辑于 2022-02-11
领券