任意模型都能蒸馏,异构模型的知识蒸馏方法OFAKD已在昇思MindSpore开源

这篇具有很好参考价值的文章主要介绍了任意模型都能蒸馏,异构模型的知识蒸馏方法OFAKD已在昇思MindSpore开源。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

任意模型都能蒸馏,异构模型的知识蒸馏方法OFAKD已在昇思MindSpore开源,开源

自知识蒸馏方法在2014年被首次提出以来,其开始广泛被应用于模型压缩领域。在更强大教师模型辅助监督信息的帮助下,学生模型往往能够实现比直接训练更高的精度。然而,现有的知识蒸馏相关研究只考虑了同架构模型的蒸馏方法,而忽略了教师模型与学生模型异构的情形。例如,最先进的MLP模型在ImageNet上仅能达到83%的精度,无法获取精度更高的同架构教师模型以使用知识蒸馏方法进一步提高MLP模型的精度。因此,对异构模型知识蒸馏的研究具有实际应用意义。

本文的研究者们分析了针对异构模型(CNN,ViT,MLP)特征的差异性,指出特征中模型架构相关的信息会阻碍知识蒸馏的过程。基于此观察,研究者们提出了名为OFAKD异构模型知识蒸馏方法:该方法将特征映射到架构无关的统一空间进行异构模型蒸馏,并使用一种能够自适应增强目标类别信息的损失函数。在CIFAR-100和ImageNet数据集上,该方法实现了对现有同架构知识蒸馏方法的超越。

论文见:https://arxiv.org/abs/2310.19444MindSpore代码:https://gitee.com/mindspore/models/tree/master/research/cv/

异构模型间的特征差异

任意模型都能蒸馏,异构模型的知识蒸馏方法OFAKD已在昇思MindSpore开源,开源

图1 异构模型学习到的特征对比

相比于仅使用logits的蒸馏方法,同步使用模型中间层特征进行蒸馏的方法通常能取得更好的性能。然而在异构模型的情况下,由于不同架构模型对特征的不同学习偏好,它们的中间层特征往往具有较大的差异,直接将针对同架构模型涉及的蒸馏方法迁移到异构模型会导致性能下降。

通用的异构模型蒸馏方法

任意模型都能蒸馏,异构模型的知识蒸馏方法OFAKD已在昇思MindSpore开源,开源

图2 异构模型的知识蒸馏方法

为了在异构模型蒸馏过程中利用中间层特征,需要排除特征中模型架构相关信息的干扰,仅保留任务相关信息。基于此,研究者们提出通过将学生模型的中间层特征映射到logits空间,实现对模型架构相关信息的过滤。此外通过在原始基于KL散度的蒸馏损失函数中引入一项额外的调节系数,修正后的损失函数能够实现对目标类别信息的自适应增强,进一步减缓异构模型蒸馏时无关信息的干扰。

任意模型都能蒸馏,异构模型的知识蒸馏方法OFAKD已在昇思MindSpore开源,开源

图3 原始蒸馏损失与改进后蒸馏损失的对比

实验结果

任意模型都能蒸馏,异构模型的知识蒸馏方法OFAKD已在昇思MindSpore开源,开源

图4 在ImageNet上的异构模型蒸馏结果

上表展示了在ImageNet上的异构蒸馏结果。在所有架构的六种可能异构组合中,本文OFAKD方法都得到了超越现有方法结果。

任意模型都能蒸馏,异构模型的知识蒸馏方法OFAKD已在昇思MindSpore开源,开源

图5 不同值对结果的影响

上表在ImageNet上比较了不同的值设置对结果的影响。可以看出,通过选取合适的值设置,改进后的蒸馏损失函数能得到超越原始蒸馏损失函数的结果。

任意模型都能蒸馏,异构模型的知识蒸馏方法OFAKD已在昇思MindSpore开源,开源

图6 在ImageNet上的同构模型蒸馏结果

本文在ImageNet上与传统同构模型蒸馏方法进行了对比。在常见的ResNet34和ResNet18同构教师学生模型组合上,OFAKD也具有与现有SOTA方法相当的表现。

任意模型都能蒸馏,异构模型的知识蒸馏方法OFAKD已在昇思MindSpore开源,开源

图7 MLP学生模型的蒸馏结果

最后,本文比较了文首提到的MLP作为学生模型时的蒸馏结果。通过选用ViT架构的BEiT v2-base作为教师模型,仅中等尺寸的CycleMLP-B3就刷新了MLP模型在ImageNet上的最佳结果。

结论

本文研究了异构模型之间的知识蒸馏方法,通过将学生模型中间层特征映射到logits空间来拟合教师模型最终输出,并使用在原始知识蒸馏损失函数基础上改进而来的自适应目标信息增强损失,提出的OFAKD方法在多种数据集和教师学生模型组合上实现了对现有方法的超越,扩展了知识蒸馏的应用范围。文章来源地址https://www.toymoban.com/news/detail-834540.html

到了这里,关于任意模型都能蒸馏,异构模型的知识蒸馏方法OFAKD已在昇思MindSpore开源的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • TextBrewer:融合并改进了NLP和CV中的多种知识蒸馏技术、提供便捷快速的知识蒸馏框架、提升模型的推理速度,减少内存占用

    TextBrewer 是一个基于PyTorch的、为实现NLP中的 知识蒸馏 任务而设计的工具包, 融合并改进了NLP和CV中的多种知识蒸馏技术,提供便捷快速的知识蒸馏框架,用于以较低的性能损失压缩神经网络模型的大小,提升模型的推理速度,减少内存占用。 TextBrewer 为NLP中的知识蒸馏任务

    2024年02月13日
    浏览(43)
  • 【Transformer论文】CMKD:用于音频分类的基于 CNN/Transformer 的跨模型知识蒸馏

    文献题目:CMKD: CNN/Transformer-Based Cross-Model Knowledge Distillation for Audio Classification 文献时间:2022 音频分类是一个活跃的研究领域,具有广泛的应用。 在过去十年中,卷积神经网络 (CNN) 已成为端到端音频分类模型的事实上的标准构建块。 最近,仅基于自注意力机制(如音频频谱

    2023年04月17日
    浏览(39)
  • yolov8(目标检测、图像分割、关键点检测)知识蒸馏:logit和feature-based蒸馏方法的实现

    在目标检测中,知识蒸馏的原理主要是利用教师模型(通常是大型的深度神经网络)的丰富知识来指导学生模型(轻量级的神经网络)的学习过程。通过蒸馏,学生模型能够在保持较高性能的同时,减小模型的复杂度和计算成本。 知识蒸馏实现的方式有多种,但核心目标是将

    2024年04月28日
    浏览(85)
  • 扩散模型相关论文阅读,扩散模型和知识蒸馏的结合提升预测速度: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日
    浏览(39)
  • LLMs之HFKR:HFKR(基于大语言模型实现异构知识融合的推荐算法)的简介、原理、性能、实现步骤、案例应用之详细攻略

    LLMs之HFKR:HFKR(基于大语言模型实现异构知识融合的推荐算法)的简介、原理、性能、实现步骤、案例应用之详细攻略 目录 HFKR的简介 异构知识融合:一种基于LLM的个性化推荐新方法

    2024年02月06日
    浏览(51)
  • 【知识蒸馏】知识蒸馏(Knowledge Distillation)技术详解

    参考论文:Knowledge Distillation: A Survey        ​ 近年来,深度学习在学术界和工业界取得了巨大的成功,根本原因在于其可拓展性和编码大规模数据的能力。但是, 深度学习的主要挑战在于,受限制于资源容量,深度神经模型很难部署在资源受限制的设备上。如嵌入式设备

    2024年01月23日
    浏览(40)
  • 知识蒸馏之自蒸馏

    知识蒸馏之自蒸馏@TOC 本文整理了 近几年顶会中的蒸馏类文章(强调self- distillation) ,后续可能会继续更新其他计算机视觉领域顶会中的相关工作,欢迎各位伙伴相互探讨。 注意力蒸馏 (Attention distillation) :用于把大网络学习到的注意力特征图(attention map)迁移到小网络中

    2024年02月06日
    浏览(36)
  • 知识蒸馏实战:使用CoatNet蒸馏ResNet

    知识蒸馏(Knowledge Distillation),简称KD,将已经训练好的模型包含的知识(”Knowledge”),蒸馏(“Distill”)提取到另一个模型里面去。Hinton在\\\"Distilling the Knowledge in a Neural Network\\\"首次提出了知识蒸馏(暗知识提取)的概念,通过引入与教师网络(Teacher network:复杂、但预测精度优

    2024年02月06日
    浏览(49)
  • 知识蒸馏

    目录 一 引言 1.1 深度学习的优点 1.2 深度学习的缺点 二 什么是知识蒸馏 2.1 模型压缩 2.2 什么是学习 2.3 什么是知识蒸馏 2.4 知识蒸馏的一般流程 三 知识蒸馏的分类 3.1 模型结构的种类 3.2 知识的分类 3.3 如何蒸馏 四 输出层知识蒸馏 《Distilling the Knowledge in a Neural Network 》 20

    2024年02月03日
    浏览(34)
  • 知识蒸馏(Knowledge Distillation)

     论文:[1503.02531] Distilling the Knowledge in a Neural Network (arxiv.org) 知识蒸馏是一种模型压缩方法,是一种基于“教师-学生网络思想”的训练方式,由于其简单,有效,并且已经在工业界被广泛应用。 知识蒸馏使用的是Teacher—Student模型,其中teacher是“知识”的输出者,student是“

    2024年02月06日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包