交叉熵损失可视化

交互式探索机器学习中最常用的损失函数

二分类交叉熵公式

y: 真实标签 (0 或 1)
ŷ: 预测概率 (0 到 1)

交互式演示

0.01 0.99

损失值

0.3567

梯度

-0.4762

置信度

70%
预测正确:模型预测为正类,真实标签也是正类

损失曲线

y = 1 (真实标签为正类)
y = 0 (真实标签为负类)
当前点

关键洞察

置信度惩罚

当预测错误且置信度高时,损失会急剧增加。这鼓励模型在不确定时保持谨慎。

对数尺度

使用对数函数,使得正确预测(概率接近1)的损失趋近于0,错误预测(概率接近0)的损失趋近于无穷大。

梯度解释

梯度表示损失的变化方向。负梯度意味着增加预测概率可以减少损失(当y=1时)。

多分类交叉熵公式

yᵢ: 真实类别 (one-hot编码)
ŷᵢ: 预测概率 (softmax输出)

Softmax演示 (3类分类)

输入Logits

2.0
1.0
-1.0
1.0

Softmax输出概率

选择真实类别

交叉熵损失

0.3265

预测类别

Class A

置信度

70.5%

Softmax公式

概率分布对比

关键洞察

Softmax归一化

Softmax将logits转换为概率分布,所有概率之和为1。指数函数确保所有输出为正。

Logit差异影响

即使logit值相近,经过softmax后概率也会有显著差异。相对差异比绝对差异更重要。

温度效应

温度参数可以控制输出的"锐度":高温使分布更均匀,低温使分布更尖锐。

损失函数对比

比较交叉熵损失与均方误差(MSE)在分类任务中的表现

对比演示

0.01 0.99

交叉熵损失

0.3567
梯度: -0.4762

均方误差(MSE)

0.0900
梯度: -0.6000

损失曲线对比 (y=1)

优缺点对比

特性 交叉熵损失 均方误差(MSE)
错误预测时的梯度 大梯度,快速修正 小梯度,收敛慢
正确预测时的梯度 小梯度,稳定收敛 非零梯度,可能过冲
凸性 对于sigmoid/softmax是凸的 全局凸
概率解释 最大似然估计 最小二乘法
最佳应用 分类任务 回归任务

理论背景

信息论视角

交叉熵衡量两个概率分布之间的差异。在分类中,它表示真实分布与预测分布之间的"距离"。最小化交叉熵等价于最大化似然函数。

KL散度关系

交叉熵 = KL散度 + 熵。由于真实分布的熵是常数,最小化交叉熵等价于最小化KL散度。

为什么分类不用MSE?

MSE假设误差服从高斯分布,适合回归。但对于分类任务,交叉熵提供更强的梯度信号,特别是当预测错误时,能够更快地纠正模型。

实用技巧

数值稳定性

直接计算log(0)会导致数值下溢。实现时通常使用log(sum(exp(x)))的技巧来避免这个问题。

标签平滑

将硬标签(0,1)替换为软标签(如0.1, 0.9),可以防止模型过度自信,提高泛化能力。

类别不平衡

对于不平衡数据集,可以使用加权交叉熵,给予少数类更大的权重。

激活函数选择

二分类使用sigmoid,多分类使用softmax。确保最后一层的激活函数与损失函数匹配。