知识蒸馏 - 最小化KL散度与最小化交叉熵是完全等价的

知识蒸馏 - 最小化KL散度与最小化交叉熵是完全等价的

flyfish

KL散度与交叉熵的数学关系

对于两个概率分布 PPP(真实分布)和 QQQ(模型预测分布),KL散度的定义是:
DKL(P∥Q)=∑xP(x)log⁡(P(x)Q(x)) D_{KL}(P \| Q) = \sum_{x} P(x) \log\left( \frac{P(x)}{Q(x)} \right) DKL(PQ)=xP(x)log(Q(x)P(x))

通过简单拆分,可以写成:
DKL(P∥Q)=∑xP(x)log⁡P(x)−∑xP(x)log⁡Q(x) D_{KL}(P \| Q) = \sum_{x} P(x) \log P(x) - \sum_{x} P(x) \log Q(x) DKL(PQ)=xP(x)logP(x)xP(x)logQ(x)

其中:
第一项 −∑xP(x)log⁡P(x)-\sum_{x} P(x) \log P(x)xP(x)logP(x) 是真实分布 PPP熵(Entropy),记为 H(P)H(P)H(P)
第二项 −∑xP(x)log⁡Q(x)-\sum_{x} P(x) \log Q(x)xP(x)logQ(x)PPPQQQ交叉熵(Cross-Entropy),记为 H(P,Q)H(P, Q)H(P,Q)

因此,KL散度与交叉熵的关系可以表示为:
DKL(P∥Q)=H(P,Q)−H(P) D_{KL}(P \| Q) = H(P, Q) - H(P) DKL(PQ)=H(P,Q)H(P)

真实分布 PPP 的熵 H(P)H(P)H(P) 是固定不变的常数(甚至为0)

1. 真实分布 PPP 是“确定性的one-hot分布”,与模型无关

在分类任务中,“真实分布 PPP”本质上是样本真实标签的数学表达,它由数据本身的标签决定,与模型的预测(QQQ)无关。

例如:

  • 对于“判断一张图片是猫/狗/鸟”的3类任务,若某样本的真实标签是“猫”,则 PPP 被定义为 [1,0,0][1, 0, 0][1,0,0](one-hot向量,只有“猫”对应的位置为1,其余为0);
  • 若另一样本的真实标签是“狗”,则 PPP 被定义为 [0,1,0][0, 1, 0][0,1,0]

这种“one-hot分布”的核心特点是:确定性——每个样本的真实类别是唯一且固定的,因此 PPP 的形式完全由样本标签决定,不会随模型参数、训练过程变化。

2. one-hot分布的熵必然为0,且不随样本变化

根据信息熵的定义:
H(P)=−∑xP(x)log⁡P(x) H(P) = -\sum_{x} P(x) \log P(x) H(P)=xP(x)logP(x)

对于one-hot分布,可以逐点计算求和项:

  • 对于真实类别对应的 xxxP(x)=1P(x) = 1P(x)=1,而 log⁡1=0\log 1 = 0log1=0,因此该项为 1⋅log⁡1=01 \cdot \log 1 = 01log1=0
  • 对于非真实类别对应的 xxxP(x)=0P(x) = 0P(x)=0,而 0⋅log⁡00 \cdot \log 00log0 在信息熵中被定义为0(因为“不可能发生的事件”对熵没有贡献);

因此,整个求和结果为 ∑xP(x)log⁡P(x)=0\sum_{x} P(x) \log P(x) = 0xP(x)logP(x)=0,代入熵的公式得:
H(P)=−0=0 H(P) = -0 = 0 H(P)=0=0

3. 为什么“固定不变”?

因为:

  • 每个样本的真实标签是确定的(例如“这张图一定是猫”),因此其对应的one-hot分布 PPP 是固定的;
  • 所有样本的真实分布 PPP 的熵 H(P)H(P)H(P) 都为0(如上述计算),且这个值不依赖于模型的预测分布 QQQ(模型怎么预测都不会改变样本的真实标签)。

因此,在整个训练过程中,真实分布 PPP 的熵 H(P)H(P)H(P) 始终是0(或固定的常数),不会随模型参数变化而改变。

真实分布 PPP 由样本的真实标签唯一确定(one-hot形式),其熵计算结果恒为0,且与模型无关,是固定不变的常数

因此:优化交叉熵 ≡ 优化KL散度

在上述场景中(真实分布 PPP 固定,且 H(P)H(P)H(P) 为常数),KL散度的表达式简化为:
DKL(P∥Q)=H(P,Q)−常数 D_{KL}(P \| Q) = H(P, Q) - 常数 DKL(PQ)=H(P,Q)常数

这意味着:最小化KL散度 DKL(P∥Q)D_{KL}(P \| Q)DKL(PQ) 与最小化交叉熵 H(P,Q)H(P, Q)H(P,Q) 是完全等价的(因为常数不影响优化方向)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/91970.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/91970.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计心得——网络包的处理

一、介绍 在程序的开发中,网络开发是一个重要的应用场景。毕竟这些年IT行业之所以火,主要还是互联网(移动互联网)带来的。网络开发,有各种平台、框架以及系统和库提供的API,如果说网络开发是一个特别复杂和…

sqli-labs通关笔记-第30关GET字符注入(WAF绕过 双引号闭合 手工注入+脚本注入两种方法)

目录 一、源码分析 1、index.php代码审计 2、login.php代码审计 3、java_implimentation函数 4、whitelist函数 5、SQL安全性分析 二、渗透实战 1、进入靶场 2、WAF探测 (1)触发WAF (2)绕过WAF 3、手工注入 &#xf…

【openlayers框架学习】九:openlayers中的交互类(select和draw)

文章目录openlayers进阶28 openlayers中的事件29 openlayers中select交互类的使用30 openlayers中select常见的配置选项31 openlayers中绘制交互类(Draw)openlayers进阶 28 openlayers中的事件 常用进行事件交互的对象:map\view\source29 o…

Java企业级应用性能优化实战

在企业级Java应用开发中,性能优化是确保系统稳定运行的关键因素。本文将从多个维度深入分析Java应用性能瓶颈,并提供实战优化方案。 🎯 性能优化核心领域 1. 对象操作性能优化 在企业应用中,对象拷贝是一个高频操作,特别是在分层架构中的DO、DTO、VO转换。选择合适的拷…

LLM Prompt与开源模型资源(3)如何写一个好的 Prompt

学习材料:https://www.hiascend.com/developer/courses/detail/1935520434893606913 (3.5)学习时长: 预计 60 分钟学习目的: 了解提示工程的定义与作用熟悉提示工程的关键技术相关概念掌握基于昇腾适配的大模型提示工程…

日志管理工具 ——ELK Stack

一、ELK Stack 概述1.1 核心组件ELK Stack(现更名为 Elastic Stack)是一套开源的日志收集、存储、分析和可视化平台,由三个核心组件构成:Elasticsearch:分布式搜索引擎,负责日志数据的存储、索引和快速查询…

SpringAI:AI工程应用框架新选择

Spring AI 是一个用于 AI 工程的应用框架 Spring AI 是一个用于 AI 工程的应用框架。其目标是将可移植性和模块化设计等 Spring 生态系统设计原则应用于 AI 领域,并推广使用 POJO 作为应用程序的构建块到 AI 领域。 Spring AI 的核心是解决 AI 集成的基本挑战:将企业数据和…

Kettle 开源ETL数据迁移工具从入门到实战

ETL(Extract, Transform, Load)工具是用于数据抽取、转换和加载的软件工具,用于支持数据仓库和数据集成过程。Kettle作为传统的ETL工具是纯 java 开发的开源的 ETL工具,用于数据库间的数据迁移 。可以在 Linux、windows、unix 中运…

Maven中的bom和父依赖

maven最全避坑指南写完后,发现自己对于bom和父pom的理解还是不够深入,特此转载DeepSeek的回答,和大家一起学习了。 在 Maven 的依赖管理中,父 POM (Parent POM) 和 BOM (Bill of Materials) 都是用于实现集中化管理和控制的核心机…

Python 操作 Word 文档:主流库对比与选择指南

在办公自动化、报告生成、数据处理等领域,利用 Python 程序化地创建、读取或修改 Microsoft Word 文档 (.docx 格式) 是一项非常实用的技能。Python 生态中有多个优秀的库可以完成这项任务,但它们各有侧重和优缺点。选择哪一个“最好用”,关键…

怎么修改论文格式呢?提供一份论文格式模板

注!!!本文内容是作者自己整理的一份模板,仅供参考,各位如何修改,还需要看学校的要求。 一、参考文献 1、有一定数量的近几年参考文献、不宜过多中文文献 英文期刊模板 [1] Taesoo K, Sooyoung K, Kyunghan L, et al. Special issue on 6G and satellite communication…

MVC 发布

MVC 发布 引言 MVC(Model-View-Controller)模式是一种广泛应用于软件开发的架构模式。它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。这种模式不仅提高了代码的可维护性和可扩展性,而且使得开发者可以更加专注于各个组件的开发。本文…

arkui 动画曲线

参考文档 https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-curve#curvesinterpolatingspring10 可视化工具网站 https://easingwizard.com/ https://www.desmos.com/calculator/k01p40v0ct?langzh-CN 基本介绍 import { curves } from kit.A…

大语言模型(LLM)技术架构与工程实践:从原理到部署

在自然语言处理领域,大语言模型(LLM)已成为颠覆性技术。从 GPT 系列到 LLaMA、ChatGLM,这些参数规模动辄百亿甚至万亿的模型,不仅实现了流畅的自然语言交互,更在代码生成、逻辑推理等复杂任务中展现出惊人能力。本文将从技术底层拆解 LLM 的核心架构,分析训练与推理的关…

python后端之DRF框架(上篇)

一、DRF框架介绍 1、web应用开发模式 1.1、前后端不分离1.2、前后端分离2、RESTful介绍 RESTful是目前最流行的API设计风格 , REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。 1、每一个URI代表1种资源; 2、客…

信创数据库-DM(达梦)数据库安装教程

官方安装文档在这:安装前准备 | 达梦技术文档 本文也是基于这个来写的,微调了一下。 1,下载安装包 体验版直接到官方下载即可:产品下载 | 达梦在线服务平台 如果是有需要商业版等,需要联系客服申请。 安装包要选择CPU…

docker常用命令集(6)

接前一篇文章:docker常用命令集(5) 本文内容参考: Docker login/logout 命令 | 菜鸟教程 Docker命令_docker login-CSDN博客 特此致谢! 9. docker login 简介 docker login命令用于登录到docker注册表&#xff08…

[LINUX操作系统]shell脚本之循环

1.编写脚本for1.sh,使用for循环创建20账户,账户名前缀由用户从键盘输入,账户初始密码由用户输入,例如:test1、test2、test3......[rootmaster ~]# vim for1.sh #!/bin/bashread -p "请输入账户名称前缀:" prefixread -p…

空间设计:不是餐厅的装饰游戏

餐厅空间设计,是通过布局规划与环境营造,将功能需求、品牌调性与顾客体验融合的系统性工程 —— 它不仅决定顾客「坐得舒不舒服」,更影响「愿不愿意再来」「会不会主动分享」的消费决策。体验感知的第一触点:顾客进门 3 秒内&…

XSS-DOM 2

目录 1 DOMPurify 1.1 漏洞源码 1.2 加载框架 ​编辑 setTimeout 1.3 ok? 1.4 window和document 1.5 Overwrite(document.x) 1.5.1 打印cookie 1.6 Overwrite2(document.x.y) 1.6.1 form表单 1.7 toString…