交叉熵损失

交叉熵是一种常用于测量两个概率分布之间差异的方法,特别是在分类任务中用于评估模型的输出与真实标签之间的匹配程度。在机器学习中,特别是在使用神经网络进行多类分类时,交叉熵损失函数被广泛使用。其基本计算公式如下:

公式

对于一个多类分类问题,如果有 ( C ) 个类别,模型对于一个样本的输出概率分布为 ( p ),而真实的标签概率分布为 ( q ),交叉熵损失可以表示为:

H ( q , p ) = − ∑ c = 1 C q c log ⁡ ( p c ) H(q, p) = -\sum_{c=1}^C q_c \log(p_c) H(q,p)=c=1Cqclog(pc)

其中:

  • q c q_c qc 是真实标签的概率分布,对于真实类别 $c$,其值为 1,其余类别的值为 0。这是一个"one-hot"编码。
  • p c p_c pc 是模型预测第 c c c 类的概率。
  • log ⁡ \log log 通常指自然对数。

理解

交叉熵损失的关键在于它惩罚那些预测概率与实际标签相差较大的情况。例如,如果真实标签的类别为 c c c,模型预测该类别的概率 p c p_c pc 越接近于 1,对数项 log ⁡ ( p c ) \log(p_c) log(pc) 越接近于 0,因此损失越小;反之,如果 p c p_c pc 很小,对数项 log ⁡ ( p c ) \log(p_c) log(pc) 的值将非常负,使得损失增大。

计算示例

假设有一个三类的分类问题,其中一个样本的真实类别为第二类,那么它的"one-hot"标签 q q q 将是 [ 0 , 1 , 0 ] [0, 1, 0] [0,1,0]。假设模型预测的概率分布 p p p [ 0.2 , 0.7 , 0.1 ] [0.2, 0.7, 0.1] [0.2,0.7,0.1],交叉熵损失计算如下:

H ( q , p ) = − ( 0 × log ⁡ ( 0.2 ) + 1 × log ⁡ ( 0.7 ) + 0 × log ⁡ ( 0.1 ) ) = − log ⁡ ( 0.7 ) H(q, p) = -(0 \times \log(0.2) + 1 \times \log(0.7) + 0 \times \log(0.1)) = -\log(0.7) H(q,p)=(0×log(0.2)+1×log(0.7)+0×log(0.1))=log(0.7)

这个结果给出了模型预测的损失值,根据真实标签与预测概率之间的匹配程度进行评分。

应用

在实际的深度学习框架如 TensorFlow 或 PyTorch 中,通常直接使用内置的交叉熵损失函数,这些函数能够自动处理多类标签的"one-hot"编码,并有效地进行批量处理,同时还包括一些数值稳定性的改进。这使得交叉熵损失函数成为训练分类模型的标准选择之一。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yiruzhao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值