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

轻量化模型-知识蒸馏1

硬标签、软标签和温度参数,其实就像老师给「水果分类」的三种不同判断方式 —— 硬标签是 “非黑即白定死类”,软标签是 “细致说清各概率”,温度参数则是 “调节概率的松紧度”。

1. 硬标签:简单粗暴的 “唯一答案”

硬标签就像老师拿到一个苹果后,只说一句:“这就是苹果,不是其他任何水果”——只给最终类别,完全忽略 “相似性”
比如我们要分 3 类水果:「苹果」「梨」「橙子」,硬标签会用 “独热编码”(像 “只有一个 1,其他都是 0” 的密码)来表示:

  • 如果样本是苹果,硬标签就是 [1, 0, 0](1 代表 “是”,0 代表 “不是”);
  • 如果样本是梨,硬标签就是 [0, 1, 0]
  • 如果样本是橙子,硬标签就是 [0, 0, 1]

2. 软标签:带 “相似性” 的 “概率清单”

软标签则像老师拿到苹果后,会细致分析:“这大概率是苹果(80%),但有点像梨(15%),不太像橙子(5%)”——给出每个类别的概率,能体现 “谁和谁更像”
它不是凭空来的:模型(比如教师模型)会先算出每个类别的 “原始分数”(叫 logits,比如苹果得 9 分、梨得 5 分、橙子得 2 分),再通过一个叫 “softmax (T)” 的公式,把分数转换成 “加起来等于 100% 的概率”,这就是软标签。
比如刚才的苹果,软标签可能是 [0.8, 0.15, 0.05](80% 苹果、15% 梨、5% 橙子)。

3. 温度参数 T:调节概率的 “松紧旋钮”

温度参数 T,就是控制软标签 “概率分布平滑程度” 的旋钮 ——T 越小,概率越 “集中”(像硬标签);T 越大,概率越 “分散”(相似性越明显)

还是用刚才的苹果(原始分数:苹果 9 分、梨 5 分、橙子 2 分),看 T 不同时软标签的变化:

温度参数 T软标签(概率分布)直观理解(老师的判断)
T=0.5(小 T)[0.98, 0.02, 0.00]“几乎 100% 是苹果,一点都不像梨和橙子”—— 概率高度集中,接近硬标签
T=1(中等 T)[0.80, 0.15, 0.05]“80% 是苹果,15% 像梨,5% 像橙子”—— 正常体现相似性
T=10(大 T)[0.45, 0.35, 0.20]“45% 像苹果,35% 像梨,20% 像橙子”—— 概率分散,更突出 “苹果和梨像” 的关联,甚至有点分不清

简单说:

  • T 越小,就像老师 “越固执”,只盯着最像的类别,其他类的概率几乎被忽略;
  • T 越大,就像老师 “越宽容”,会更细致地考虑 “和其他类的相似性”,把概率分给更多类别。

温度参数 T 的核心作用,是调节软标签(概率分布)的 “平滑程度”—— 简单说,它像一个 “松紧旋钮”:T 越小,概率越 “集中”(只盯着最可能的类别);T 越大,概率越 “分散”(更关注类别间的相似性)

它不改变 “哪个类别最可能” 的结论,但会改变 “各个类别概率的差距”,最终影响模型能学到的信息(比如是否能捕捉到 “猫和老虎相似” 这类关联)。

比如在 “小模型学大模型(知识蒸馏)” 中:如果想让小模型学到 “类别相似性”(比如区分 “贵宾犬” 和 “比熊犬” 的细微关联),就会调大 T;如果只需要小模型快速明确分类(比如 “狗” 和 “猫” 的粗分类),就会调小 T。

4.损失函数

损失函数本质是模型的 “错题评分标准”—— 它专门用来衡量 “模型的预测结果” 和 “真实情况” 之间的差距(这个差距叫 “损失值”)。就像老师批作业:正确答案是 “真实情况”,学生答案是 “模型预测”,损失函数就是 “扣分规则”,差距越大,扣的分(损失值)越多。

它的核心作用是给模型 “指方向”:模型会根据损失值的大小,调整自己的参数(比如 “怎么判断一张图是猫”),最终让损失值越来越小 —— 也就是预测得越来越准。

核心总结:损失函数的 3 个作用

  1. “打分”:量化模型预测和真实情况的差距,损失值越小 = 预测越准。
  2. “指路”:模型通过减少损失值来调整参数(比如从 “猫 10%” 调到 “猫 90%”),是模型 “学习” 的核心依据。
  3. “适配任务”:回归任务(预测数值)用 MSE,分类任务(预测类别)用交叉熵 —— 不同任务用不同的 “评分规则”,才能评得合理。

5.“KL 散度” 的基础

它本质是计算两个 “概率分布” 的差异。比如教师对一张猫图的预测分布是 [0.9, 0.08, 0.02](猫、狗、鸟的概率),学生一开始的预测是 [0.3, 0.5, 0.2],KL 散度就会算出一个很大的 “差异值”;随着学生学习,预测变成 [0.88, 0.1, 0.02],KL 散度就变小了 —— 说明学生越来越像教师。

简单说:KL 散度是 “学生抄作业的评分标准”,分数越低(差异越小),抄得越像

第二步:“扰动” 是用来解决什么问题的?

普通 KL 散度有个缺点:学生容易 “死记硬背” 教师的固定答案,遇到一点变化就慌了
比如教师只给 “清晰的猫图” 输出固定分布 [0.9, 0.08, 0.02],学生学会了匹配这个分布,但遇到 “稍微模糊的猫图”“光线暗的猫图”,就不会判断了 —— 因为教师没教过 “遇到变化该怎么调整答案”。

这时候 “扰动” 就派上用场了:给教师的 “作业” 加一点 “小噪音”,让教师的答案稍微变一变,迫使学生不仅学 “固定答案”,还学 “应对变化的能力”

一句话:它是 “加了小噪音的抄作业评分标准”
在知识蒸馏中,通过给教师模型的输入 / 输出加微小扰动,让教师的 “知识” 变得更灵活;再用 KL 散度衡量学生与 “带扰动的教师知识” 的差异,迫使学生不仅学教师的 “核心答案”,还学教师 “应对微小变化的鲁棒性”,最终让学生模型在实际使用中(遇到不完美数据时)效果更好。

6.特征蒸馏损失和交叉熵损失

  • 交叉熵损失(Cross-Entropy Loss):最常用的 “分类任务损失”,核心是让模型的 “预测结果” 贴近 “真实答案”(比如预测 “猫” 的概率要贴近标签里的 “猫 = 1,其他 = 0”)。
  • 特征蒸馏损失(Feature Distillation Loss):知识蒸馏专属的 “特征模仿损失”,核心是让学生模型的 “中间特征” 贴近教师模型的 “中间特征”(比如学生模型卷积层输出的特征图,要和教师的长得像)。
  • 交叉熵损失:保证学生模型 “分类结果准”(不跑偏,至少能正确识别类别);
  • 特征蒸馏损失:让学生模型 “学到教师的深层特征”(不仅能分类,还能像教师一样理解图片的关键细节,提升泛化能力,比如抗噪声、识别罕见样本)。

比如:最终的蒸馏总损失 = α×(蒸馏交叉熵损失) + β×(特征蒸馏损失)(α、β 是权重,平衡两者的重要性)。

http://www.xdnf.cn/news/19179.html

相关文章:

  • Carrier Aggregation Enabled MIMO-OFDM Integrated Sensing and Communication
  • Spring Cache实现简化缓存功能开发
  • 内网穿透系列十二:一款基于 HTTP 传输和 SSH 加密保护的内网穿透工具 Chisel ,具备抗干扰、稳定、安全特性
  • 聊一聊 .NET 的 AssemblyLoadContext 可插拔程序集
  • HarmonyOS AppStorage:跨组件状态管理的高效解决方案
  • SW - 做装配体时,使用零件分组好处多
  • 系统架构设计师选择题精讲与解题技巧
  • STM32的内存分配与堆栈
  • compute:古老的计算之道
  • (二)设计模式(Command)
  • 为什么企业需要项目管理
  • Python Requests 爬虫案例
  • 面试问题详解十二:Qt 多线程同步:QMutex讲解
  • SystemVerilog学习【七】包(Package)详解
  • FFmpeg音视频处理解决方案
  • 【GaussDB】在逻辑复制中剔除指定用户的事务
  • 【C++】C++ const成员函数与取地址操作符重载
  • 【Leetcode hot 100】21.合并两个有序链表
  • Flutter MVVM+provider的基本示例
  • ceph配置集群
  • VGG改进(6):基于PyTorch的VGG16-SE网络实战
  • “我店模式“当下观察:三方逻辑未变,三大升级重构竞争力
  • 详解常见的多模态大模型指令集构建
  • vue表格底部添加合计栏,且能跟主表同时滑动
  • 「鸿蒙系统的编程基础」——探索鸿蒙开发
  • 机器视觉学习-day12-图像梯度处理及图像边缘检测
  • REST API 是无状态的吗,如何保障 API 的安全调用?
  • 中科院人机交互科研分享-田丰
  • OpenCV 轮廓分析实战:从检测到形状匹配的完整指南
  • 【后端】云服务器用nginx配置域名访问前后端分离项目