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

【漫话机器学习系列】094.交叉熵(Cross-Entropy)

交叉熵(Cross-Entropy)详解

1. 引言

在机器学习和深度学习中,交叉熵(Cross-Entropy)是一种常见的损失函数,广泛用于分类任务,特别是二分类和多分类问题。交叉熵的核心思想是衡量两个概率分布之间的差异,并通过最小化这个差异来优化模型,使预测结果尽可能接近真实分布。

在本篇文章中,我们将详细探讨:

  • 交叉熵的定义与公式
  • 交叉熵的数学推导
  • 交叉熵的作用与直观理解
  • 交叉熵在机器学习中的应用
  • 交叉熵与其他损失函数的对比

2. 交叉熵的定义

2.1 交叉熵公式

交叉熵的数学定义如下:

其中:

  • D 表示交叉熵损失(Cross-Entropy Loss)
  • K 是类别的总数
  • ​ 表示样本在类别 k 上的真实概率
  • ​ 是对数操作(一般以自然对数 ln 计算)

2.2 交叉熵的作用

交叉熵用于衡量两个概率分布之间的相似性,当真实分布和预测分布一致时,交叉熵最小(接近 0);当两个分布相差越大时,交叉熵值越大。

例如:

  • 如果模型的预测概率完全匹配真实标签(如 100% 置信度地预测正确),交叉熵损失趋近于 0。
  • 如果模型的预测概率非常不准确(如对错误类别的置信度较高),交叉熵损失会很大,模型需要调整参数。

3. 交叉熵的数学推导

3.1 二分类问题中的交叉熵

对于二分类问题(如 0/1 分类),假设:

  • 真实标签 y∈{0, 1}
  • 预测概率 ​(表示类别 1 的概率)

交叉熵损失函数为:

当真实类别 y = 1 时,损失函数变为:

  • 若模型预测 接近 1(正确预测),损失接近 0
  • 若模型预测 接近 0(错误预测),损失接近无穷大

当真实类别 y = 0 时,损失函数变为:

  • 若模型预测 ​ 接近 0(正确预测),损失接近 0
  • 若模型预测 ​ 接近 1(错误预测),损失趋向无穷大

这表明:交叉熵会对错误的高置信度预测施加较大的惩罚,从而促进模型学习更准确的概率分布。

3.2 多分类问题中的交叉熵

在多分类任务中(Softmax 作为输出层),设:

  • K 为类别数
  • y 为真实类别(one-hot 编码)
  • 为第 k 类的预测概率

交叉熵损失为:

由于 one-hot 编码中,只有真实类别的 ,其余类别的 ,因此公式可以简化为:

其中 ​ 是模型对真实类别的预测概率。

如果模型对正确类别的置信度高,则交叉熵损失较小;如果预测不准确,则损失较大。


4. 交叉熵的作用与直观理解

4.1 交叉熵衡量概率分布的差异

交叉熵的本质是计算两个分布之间的差异。例如:

  • 真实分布:P = (0.9, 0.1)(正确类别置信度 90%)
  • 预测分布:
    • (预测较准确)
    • (预测较混乱)

计算交叉熵:


可以看出,​ 的交叉熵较小,说明预测更接近真实分布,而 ​ 的交叉熵较大,表示预测较差。

4.2 交叉熵与信息论

交叉熵源自信息论,用来衡量数据的不确定性:

  • 如果交叉熵 D 越小,表示预测分布与真实分布越接近,模型越稳定。
  • 如果交叉熵 D 越大,表示预测不稳定,需要优化。

在信息论中,交叉熵可以理解为编码一条信息的最优成本,如果模型的预测更准确,所需的编码长度更短。


5. 交叉熵在机器学习中的应用

5.1 逻辑回归(Logistic Regression)

  • 逻辑回归使用 Sigmoid 作为输出层,交叉熵作为损失函数,优化模型参数。

5.2 神经网络(Neural Networks)

  • 交叉熵常用于分类任务,配合 Softmax 层来计算每个类别的概率分布。

5.3 生成模型(Generative Models)

  • 如 GAN(生成对抗网络)使用交叉熵来衡量真实样本与生成样本的分布差异。

6. 交叉熵 vs 其他损失函数

损失函数适用任务公式特点
均方误差(MSE)回归对异常值敏感
平均绝对误差(MAE)回归对异常值鲁棒,误差的影响更均匀
交叉熵(CE)分类适用于概率预测,能有效优化分类模型

7. 结论

  • 交叉熵衡量两个概率分布的相似性,是分类任务中最常用的损失函数。
  • 交叉熵会对错误高置信度预测施加较大惩罚,从而优化模型训练。
  • 在信息论中,交叉熵反映了编码信息的最优成本。
  • 在深度学习中,交叉熵通常与 Softmax 结合,进行多分类任务的优化。

掌握交叉熵的概念,对优化分类模型和理解概率分布的学习过程至关重要!

 

相关文章:

  • 【LeetCode】15.三数之和
  • Java 实现简单动态字符串
  • 机器学习--逻辑回归模型
  • MyBatis映射文件常用元素详解与示例
  • 青少年编程与数学 02-009 Django 5 Web 编程 16课题、权限管理
  • 【2025最新计算机毕业设计】基于SpringBoot+Vue药管家家庭医药品回收系统【提供源码+答辩PPT+文档+项目部署】
  • 论文阅读_用于低频隔振的高负刚度新型阵列磁性弹簧的分析与设计_1
  • MySQL智障离谱问题,删了库确还存在、也不能再创建同名库
  • linux kasan 使用举例
  • Spring-AOP
  • Windows Docker运行Implicit-SVSDF-Planner
  • Python 面试常见问题解析
  • DockerDesktop更改默认的磁盘镜像地存储位置
  • 使用python进行数据分析工作,要掌握哪些数学知识?
  • Linux下学【MySQL】常用函数助你成为数据库大师~(配sql+实操图+案例巩固 通俗易懂版~)
  • Java8新特性Optional,Function,Supplier,Consumer
  • 计算机网络之网络层(网络层的功能,异构网络互联,路由与转发,SDN基本概念,拥塞控制)
  • 【办公类-90-01】】20250213中班周计划四类活动的写法(分散运动、户外游戏、个别化(美工室图书吧探索室))
  • Redis过期机制
  • 【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第九节】
  • 美乌矿产协议预计最早于今日签署
  • 视频丨中国海警位中国黄岩岛领海及周边区域执法巡查
  • 山西太原一处居民小区发生爆炸,现场产生大量浓烟
  • 王毅:时代不容倒退,公道自在人心
  • 俄乌战火不熄,特朗普在梵蒂冈与泽连斯基会晤后口风突变
  • 龚正会见委内瑞拉副总统罗德里格斯