当前位置: 首页 > news >正文

【DL】浅谈深度学习中的知识蒸馏 | 输出层知识蒸馏

目录

一 核心概念与背景

二 输出层知识蒸馏

1 教师模型训练

2 软标签生成(Soft Targets)

3 学生模型训练

三 扩展

1 有效性分析

2 关键影响因素

3 变体



一 核心概念与背景

知识蒸馏(Knowledge Distillation, KD)是一种模型压缩知识迁移技术,由Hinton等人于2015年在《Distilling the Knowledge in a Neural Network》中提出。其核心目标是将复杂模型(教师模型)中的“知识”迁移到更轻量的模型(学生模型)中,使学生模型在保持较小计算代价的同时,逼近甚至超越教师模型的性能

核心思想:教师模型通过输出软标签(Soft Targets,即概率分布)传递隐含知识(如类别间相似性),而非仅依赖硬标签(One-hot编码标签)。学生模型通过模仿教师模型的输出分布,学习更泛化的特征表示。

输出层知识蒸馏

论文题目:Distilling the Knowledge in a Neural Network(2015.3.9)

论文地址:https://arxiv.org/pdf/1503.02531

【摘要】提高几乎任何机器学习算法性能的一个非常简单的方法是在同一数据上训练许多不同的模型,然后对它们的预测进行平均。不幸的是,使用整个模型集合进行预测是很麻烦的,并且可能过于昂贵,无法部署到大量的用户,特别是如果单个模型是大型神经网络。卡鲁阿纳及其合作者的研究表明,将一个集合中的知识压缩为一个更易于部署的单一模型是可能的,我们进一步使用不同的压缩技术来开发这种方法。我们在MNIST上取得了一些令人惊讶的结果,我们表明,通过将模型集合中的知识提取到单个模型中,我们可以显著地改进大量使用的商业系统的声学模型。我们还介绍了一种由一个或多个全模型和许多专家模型组成的新型集成,它们能够学习区分全模型混淆的细粒度类。与混合专家不同,这些专家模型可以快速并行地进行训练。

1 教师模型训练

教师模型对输入样本的预测输出是一个概率分布,而不是单一的类别标签。这种概率分布包含了教师模型对于各个类别的置信度,比硬标签提供了更多关于类间关系的信息

教师模型需在目标任务上充分训练至收敛,通常选择参数量大、性能优越的模型(如ResNet-152、BERT-large)。教师模型的logits输出(未经Softmax的原始分数)或经过温度参数调整的软概率分布

2 软标签生成(Soft Targets)

通过温度参数 T调整Softmax函数,生成更平滑的概率分布:

其中 T > 1时分布更平缓,揭示类别间相似性;T=1时为标准Softmax。

3 学生模型训练

生模型同时学习教师的软标签和真实标签,损失函数为加权和:

loss = αH(teacher(x),student(x)) + (1−α)H(target,student(x))

其中:H(teacher(x),student(x)) 是教师模型与学生模型的交叉熵H(target,student(x)) 是学生模型与真实情况的交叉熵α 是一个超参数,用来平衡两个损失项的权重

蒸馏的过程如下图。

三 扩展

1 有效性分析

 知识传递机制

软标签包含类间关系,而硬标签仅保留正确类别信息。

温度参数 T 控制知识粒度:高 T 强调类间关系,低 T 聚焦主要类别。

 正则化效应

教师模型的软标签为学生提供额外监督信号,缓解小模型过拟合问题。

 优化轨迹引导

教师模型的输出分布为学生模型提供更平滑的优化路径,降低陷入局部最优风险。

2 关键影响因素

 温度参数 T

经验值范围:T∈[3,10],需根据任务调整。过高导致分布过于平缓,过低则接近硬标签。

 教师-学生容量差距

学生模型需具备足够容量学习教师知识,差距过大会限制性能上限。渐进式蒸馏(如先训练中等模型)可缓解此问题。

 数据增强策略

使用与教师模型相同的数据增强方法,确保知识迁移一致性。

3 变体

 中间特征蒸馏

直接对齐教师与学生中间层的特征(如注意力图、特征图)。

 自蒸馏(Self-Distillation)

同一模型在不同训练阶段或不同子模块间迁移知识,无需独立教师模型。

 对抗蒸馏

引入生成对抗网络(GAN),通过判别器强制学生模仿教师特征分布。

至此,本文的内容就结束啦。

相关文章:

【DL】浅谈深度学习中的知识蒸馏 | 输出层知识蒸馏

目录 一 核心概念与背景 二 输出层知识蒸馏 1 教师模型训练 2 软标签生成(Soft Targets) 3 学生模型训练 三 扩展 1 有效性分析 2 关键影响因素 3 变体 一 核心概念与背景 知识蒸馏(Knowledge Distillation, KD)是一种模…...

应急响应(linux 篇,以centos 7为例)

一、基础命令 1.查看已经登录的用户w 2.查看所有用户最近一次登录:lastlog 3.查看历史上登录的用户还有登录失败的用户 历史上所有登录成功的记录 last /var/log/wtmp 历史上所有登录失败的记录 Lastb /var/log/btmp 4.SSH登录日志 查看所有日志:…...

EasyRTC:智能硬件适配,实现多端音视频互动新突破

一、智能硬件全面支持,轻松跨越平台障碍 EasyRTC 采用前沿的智能硬件适配技术,无缝对接 Windows、macOS、Linux、Android、iOS 等主流操作系统,并全面拥抱 WebRTC 标准。这一特性确保了“一次开发,多端运行”的便捷性&#xff0c…...

堆和栈的区别

堆和栈 不同点: 内存分配方式不同: 栈:栈上的内存是自动分配和释放的,通常用于存储函数调用过程中的局部变量、调用参数和使用的寄存器状态等信息。堆:堆上的内存是动态分配的,程序在运行时可以根据需要分…...

【信息系统项目管理师】专业英语重点词汇大汇总

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 一、信息和信息系统重要词汇汇总1.Computer(计算机)重要词汇2.Information system(信息系统)重要词汇3.Software Engineering(软件工程)重要词汇4.Network(网络)相关重要词汇5.信息安全重要词汇6.Electronic Co…...

CV -- YOLOv8 图像分割(GPU环境)

目录 参考视频: 标注 JSON转为TXT 训练 验证 参考视频: 使用 Yolov8 自定义数据集进行图像分割_哔哩哔哩_bilibili 标注 数据集: 我使用的是一些苹果数据集,可以在我的csdn资源中下载: https://download.csdn.net/do…...

Cherry-Studio下载安装教程,AI面向开发者的工具或平台(付安装包)

文章目录 一、Cherry Studio是什么?二、功能特点 一、Cherry Studio是什么? Cherry Studio 是一款开源跨平台的多模型服务桌面客户端,集成超 300 个大语言模型,内置 300 多个预配置 AI 助手,支持多格式文件处理、全局…...

【Javascript Day19】BOM

目录 BOM对象的方法 定时器方法 短信验证码案例 计时器元素动画 同步代码和异步代码 location对象 跳转查询页面参数 跳转多查询参数 BOM对象的方法 // window.alert("提示");// window 中提供的方法和属性,可以在省略window对象的情况下直接调用…...

git 操作 已经 commit 但是没有 push 怎么办

前言: 在操作commit后发现提交错了分支,直接切换分支是不行的,只能先取消commit的代码才能切换分支,因此记录一下git的操作 如果你已经执行了 git commit 但还没有进行 git push,可以通过以下几种方式撤回或修改提交…...

在 macOS 的 ARM 架构上按住 Command (⌘) + Shift + .(点)。这将暂时显示隐藏文件和文件夹。

在 macOS 的 ARM 架构(如 M1/M2 系列的 Mac)上,设置 Finder(访达)来显示隐藏文件夹的步骤如下: 使用快捷键临时显示隐藏文件: 在Finder中按住 Command (⌘) Shift .(点&#xff…...

【核心算法篇二十】《DeepSeek符号回归:让AI化身「数学神探」破解数据背后的宇宙公式》

“宇宙最不可理解之处,就是它居然可以被理解。”——爱因斯坦 如果让AI来续写这句话,或许会是:"数据最迷人的地方,在于它总能用数学公式讲出故事。"今天我们要聊的DeepSeek符号回归技术,就是教AI从杂乱数据中自动发现精妙数学规律的「黑魔法」。全程高能预警,建…...

如何在 Visual Studio Code 中使用 DeepSeek R1 和 Cline?

让我们面对现实吧:像 GitHub Copilot 这样的 AI 编码助手非常棒,但它们的订阅费用可能会在你的钱包里烧一个洞。进入 DeepSeek R1 — 一个免费的开源语言模型,在推理和编码任务方面可与 GPT-4 和 Claude 3.5 相媲美。将它与 Cline 配对&#…...

PHP旅游门票预订系统小程序源码

🌍 旅游门票预订系统:一站式畅游新体验,开启您的梦幻旅程 🌟 一款基于ThinkPHPUniapp精心雕琢的旅游门票预订系统,正翘首以待,为您揭开便捷、高效、全面的旅游预订新篇章!它超越了传统预订平台…...

在项目中调用本地Deepseek(接入本地Deepseek)

前言 之前发表的文章已经讲了如何本地部署Deepseek模型,并且如何给Deepseek模型投喂数据、搭建本地知识库,但大部分人不知道怎么应用,让自己的项目接入AI模型。 文末有彩蛋哦!!! 要接入本地部署的deepsee…...

notepad++右键菜单不见了

卸载时没点击完成,又重新安装了一个,最终导致了一些bug,导致右键没有notepad菜单。 解决方式: 新建一个register.reg文件,加入以下代码,然后双击执行即可 代码说明:Open with Notepad 是右…...

如何用ollama快速布署deepseek-r1大模型

deepseek在春节期间因为特朗普的一番发言而在中国已几乎人尽皆知,热度到了连90高寿的老父亲都向我推荐这个中国产的AI大模型,而且它是开源的!我试验了下,用ollama也可以快速度安装布署deepseek-r1大模型。本想写篇文章来介绍下dee…...

python-leetcode 36.二叉树的最大深度

题目: 给定一个二叉树root,返回其最大深度 二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数 方法一:深度优先搜索 知道了左子树和右子树的最大深度l和r,那么该二叉树的最大深度即为:max(l,r)1 而左子树和右子树的最大深…...

MySQL事务的特性和隔离级别

一、事务的特性 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作,即这些操作要么同时成功,要么同时失败 事务的有以下四个特性(acid)&#xf…...

Oracle视图(基本使用)

视图 视图是通过定制的方式显示一个或者多个表的数据。 视图可以视为“虚拟表”或“存储的查询”。 视图的优点: 提供了另外一种级别的表安全性隐藏了数据的复杂性简化了用户的SQL命令隔离基表结构的改变通过重命名列,从另一个角度提供数据。 视图里…...

C++ Primer 类的作用域

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...

Cursor实现用excel数据填充word模版的方法

cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...