对比 交叉熵损失(Cross-Entropy Loss)和KL散度(Kullback-Leibler Divergence)

这是一个非常核心且经常让人混淆的问题!交叉熵损失(Cross-Entropy Loss)和KL散度(Kullback-Leibler Divergence)在形式上非常相似,而且在某些特定情况下,它们在优化目标上是等价的,但这并不意味着它们完全相同。我们来深入探讨一下。

1. 交叉熵损失 (Cross-Entropy Loss)

定义和目的:
交叉熵损失是机器学习中,特别是分类任务中最常用的一种损失函数。它衡量的是两个概率分布之间的差异。在分类任务中,这两个分布通常是:

  1. 真实标签的概率分布 §:通常是one-hot编码,表示某个样本属于某个类别的真实概率为1,其他为0。例如,对于一个猫的图片,真实标签分布可能是 [0, 1, 0] (假设第二个是猫)。
  2. 模型预测的概率分布 (q):模型(通常是经过softmax层)输出的每个类别的概率。例如,模型预测猫的概率是0.8,狗是0.1,鸟是0.1,那么预测分布是 [0.1, 0.8, 0.1]

公式:
对于离散概率分布 pppqqq,它们的交叉熵定义为:
H(p,q)=−∑i=1Npilog⁡(qi)H(p, q) = -\sum_{i=1}^{N} p_i \log(q_i)H(p,q)=i=1Npilog(qi)

其中:

  • NNN 是类别的数量。
  • pip_ipi 是真实分布中第 iii 个类别的概率。
  • qiq_iqi 是预测分布中第 iii 个类别的概率。

在分类任务中的简化:
由于在标准的分类任务中,ppp 通常是one-hot编码,即只有一个 pk=1p_k=1pk=1 (真实类别),其他 pi=0p_i=0pi=0,所以公式简化为:
H(p,q)=−1⋅log⁡(qtrue_class)+∑i≠true_class0⋅log⁡(qi)=−log⁡(qtrue_class)H(p, q) = -1 \cdot \log(q_{true\_class}) + \sum_{i \neq true\_class} 0 \cdot \log(q_i) = -\log(q_{true\_class})H(p,q)=1log(qtrue_class)+i=true_class0

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值