知识蒸馏(Knowledge Distillation)

这篇具有很好参考价值的文章主要介绍了知识蒸馏(Knowledge Distillation)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

知识蒸馏,深度学习,人工智能

知识蒸馏,深度学习,人工智能 论文:[1503.02531] Distilling the Knowledge in a Neural Network (arxiv.org)

知识蒸馏是一种模型压缩方法,是一种基于“教师-学生网络思想”的训练方式,由于其简单,有效,并且已经在工业界被广泛应用。

知识蒸馏使用的是Teacher—Student模型,其中teacher是“知识”的输出者,student是“知识”的接受者。知识蒸馏的过程分为2个阶段:

        ①原始模型训练: 训练"Teacher模型", 简称为Net-T,它的特点是模型相对复杂,也可以由多个分别训练的模型集成而成。我们对"Teacher模型"不作任何关于模型架构、参数量、是否集成方面的限制,唯一的要求就是,对于输入X, 其都能输出Y,其中Y经过softmax的映射,输出值对应相应类别的概率值。

        ②精简模型训练: 训练"Student模型", 简称为Net-S,它是参数量较小、模型结构相对简单的单模型。同样的,对于输入X,其都能输出Y,Y经过softmax映射后同样能输出对应相应类别的概率值。在本论文中,作者将问题限定在分类问题下,或者其他本质上属于分类问题的问题,该类问题的共同点是模型最后会有一个softmax层,其输出值对应了相应类别的概率值。

现实中,由于我们不可能收集到某问题的所有数据来作为训练数据,并且新数据总是在源源不断的产生,因此我们只能退而求其次,训练目标变成在已有的训练数据集上建模输入和输出之间的关系。由于训练数据集是对真实数据分布情况的采样,训练数据集上的最优解往往会多少偏离真正的最优解。

而在知识蒸馏时,由于我们已经有了一个泛化能力较强的Net-T,我们在利用Net-T来蒸馏训练Net-S时,可以直接让Net-S去学习Net-T的泛化能力。一个很直白且高效的迁移泛化能力的方法就是使用softmax层输出的类别的概率来作为“soft target”。

        ①传统training过程(hard targets): 对ground truth求极大似然

        ②KD的training过程(soft targets): 用large model的class probabilities作为soft targets

知识蒸馏,深度学习,人工智能

 例子:

在MNIST手写数字识别任务中

假设某个输入的“2”更加形似"3",softmax的输出值中"3"对应的概率为0.1,而其他负标签对应的值都很小,而另一个"2"更加形似"7","7"对应的概率为0.1。这两个"2"对应的hard target的值是相同的,但是它们的soft target却是不同的,由此我们可见soft target蕴含着比hard target多的信息。并且soft target分布的熵相对高时,其soft target蕴含的知识就更丰富。

知识蒸馏,深度学习,人工智能

 两个”2“的hard target相同而soft target不同。

这就解释了为什么通过蒸馏的方法训练出的Net-S相比使用完全相同的模型结构和训练数据只使用hard target的训练方法得到的模型,拥有更好的泛化能力。

温度T

把其他类别的可能性放大,把他们的相对大小充分暴露出来,让学生网络更加强烈地知道这些非类别的信息。当T=1时,与之前没有变化;当T越大,曲线的波峰就会越来越平滑

知识蒸馏,深度学习,人工智能

 知识蒸馏,深度学习,人工智能

 知识蒸馏的过程:

第一步:有一个已经训练好的Teacher model,把很多数据喂给Teacher model,再把数据喂给(未训练/半成品)Student model,两个都是在T=t时经过Softmax,然后计算这两个的损失函数值,让它们两个越接近越好,学生在模拟老师的预测结果。

第二步:Student model在T=1情况下经过softmax操作,把预测结果hard prediction和真实数据的结果hard label进行求损失值,希望它们两个越接近越好。

总结:Student model(T=t)与Teacher model(T=t)的预测结果越来越接近;Student model(T=1)的预测结果与数据结果(标准答案)越来越接近。

Loss = k1*distillation Loss+k2*student Loss。(加权求和)

知识蒸馏,深度学习,人工智能

知识蒸馏,深度学习,人工智能

 ​​​​知识蒸馏,深度学习,人工智能

在使用Student model时只需要输入数据就行,不需要T,因为模型的参数已经训练完成了,最后只需要经过基础softmax操作得到最终结果。知识蒸馏,深度学习,人工智能

 实验结果:

使用MNIST数据集训练Teacher model,把MNIST数据集中去除”3“相关的所有数据集来训练Student model,实验结果证明,经过知识蒸馏后,没有学习过”3“的Student model可以识别出”3“。

Soft targets可以仅仅使用3%的训练集来训练并达到近似Teacher model的效果。

知识蒸馏的应用场景:

①模型压缩

②优化训练,防止过拟合

③无限大、无监督数据集的数据挖掘

④少样本、零样本学习文章来源地址https://www.toymoban.com/news/detail-740747.html

到了这里,关于知识蒸馏(Knowledge Distillation)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深度学习概念(术语):Fine-tuning、Knowledge Distillation, etc

    这里的相关概念都是基于已有预训练模型,就是模型本身已经训练好,有一定泛化能力。需要“再加工”满足别的任务需求。 进入后GPT时代,对模型的Fine-tuning也将成为趋势,借此机会,我来科普下相关概念。 有些人认为微调和训练没有区别,都是训练模型,但是微调是在原

    2024年02月09日
    浏览(30)
  • 人工智能前沿研究综述:对比学习、迁移学习、知识蒸馏的探索与未来展望

    导言         随着人工智能领域的不断发展,对比学习、迁移学习和知识蒸馏等研究方向成为热门话题。本文将全面探讨这些前沿研究的发展、面临的问题、解决过程,以及未来可能的研究趋势。 1. 对比学习的发展与挑战               1.1 发展历程         演

    2024年01月22日
    浏览(36)
  • 扩散模型相关论文阅读,扩散模型和知识蒸馏的结合提升预测速度:Progressive Distillation for Fast Sampling of Diffusion Models

    谷歌research的成果,ICLR 2022 https://arxiv.org/abs/2202.00512 tenserflow官方开源代码: https://github.com/google-research/google-research/tree/master/diffusion_distillation pytorch非官方代码:https://github.com/lucidrains/imagen-pytorch 1.扩散模型虽然取得了很好的效果,但是预测速度慢。 2.作者提出了一种逐步蒸馏

    2024年02月16日
    浏览(27)
  • 人工智能大模型技术基础系列之:模型蒸馏与知识蒸馏

    作者:禅与计算机程序设计艺术 模型蒸馏(Model Distillation)是将一个复杂的大型机器学习模型压缩到更小且效率更高的模型上的一种技术。它可以让用户获得更高质量的模型,同时降低计算资源占用和部署成本。目前国内外多种公司在使用模型蒸馏技术,如阿里巴巴在内部业

    2024年02月05日
    浏览(38)
  • [读论文][backbone]Knowledge Diffusion for Distillation

    DiffKD 摘要 The representation gap between teacher and student is an emerging topic in knowledge distillation (KD). To reduce the gap and improve the performance, current methods often resort to complicated training schemes, loss functions, and feature alignments, which are task-specific and feature-specific. In this paper, we state that the essence of the

    2024年02月08日
    浏览(36)
  • 【论文阅读】SKDBERT: Compressing BERT via Stochastic Knowledge Distillation

    2022-2023年论文系列之模型轻量化和推理加速 通过Connected Papers搜索引用PaBEE/DeeBERT/FastBERT的最新工作,涵盖: 模型推理加速 边缘设备应用 生成模型 BERT模型 知识蒸馏 SmartBERT: A Promotion of Dynamic Early Exiting Mechanism for Accelerating BERT Inference SKDBERT: Compressing BERT via Stochastic Knowledge Di

    2024年02月12日
    浏览(29)
  • 【深度学习之模型优化】模型剪枝、模型量化、知识蒸馏概述

            模型部署优化这个方向其实比较宽泛。从模型完成训练,到最终将模型部署到实际硬件上,整个流程中会涉及到很多不同层面的工作,每一个环节对技术点的要求也不尽相同。但本质的工作无疑是通过减小模型大小,提高推理速度等,使得模型能够成功部署在各个硬

    2024年01月23日
    浏览(36)
  • 论文笔记|CVPR2023:Supervised Masked Knowledge Distillation for Few-Shot Transformers

    这篇论文的题目是 用于小样本Transformers的监督遮掩知识蒸馏 论文接收: CVPR 2023 论文地址: https://arxiv.org/pdf/2303.15466.pdf 代码链接: https://github.com/HL-hanlin/SMKD 1.ViT在小样本学习(只有少量标记数据的小型数据集)中往往会 过拟合,并且由于缺乏 归纳偏置 而导致性能较差;

    2024年02月06日
    浏览(35)
  • 知识蒸馏学习

    知识蒸馏 ----教师和学生模型:将已训练完善的模型作为教师模型,通过控制“温度”从模型的输出结果中“蒸馏”出“知识”用于学生模型的训练,并希望轻量级的学生模型能够学到教师模型的“知识”,达到和教师模型相同的表现。 本质上属于 迁移学习 优点: 1.节省成

    2024年02月09日
    浏览(25)
  • 知识蒸馏学习记录

    最近在学习降噪处理不良天气的算法过程中,接触到了知识蒸馏,该算法作为一个深度学习通用算法,不仅广泛应用在自然语言处理方面,在计算机视觉等领域也广受追捧。 简单来说,知识蒸馏就是将一个大的教师网络萃取到一个小的学生网络中,即完成一个知识迁移的过程

    2024年02月11日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包