标准交叉熵损失(Cross-Entropy Loss)是机器学习中常用的损失函数,特别是在分类问题中。它度量的是两个概率分布之间的差异。在分类问题中,我们将它用来衡量模型输出的概率分布与真实标签分布之间的差异。
数学表达式
对于二分类问题,标准的交叉熵损失可以表示为:
$$
\text{CE}(p, y) = - \left[ y \log(p) + (1 - y) \log(1 - p) \right]
$$
其中:
• $p$ 是模型预测的正类概率,$p \in [0, 1]$。
• $y$ 是真实标签,$y \in {0, 1}$。
• $y = 1$ 表示真实标签为正类。
• $y = 0$ 表示真实标签为负类。
解释:
• 当 $y = 1$ 时,损失为 $-\log(p)$,即真实标签为正类时,模型预测正类的概率 $p$ 越大,损失越小。
• 当 $y = 0$ 时,损失为 $-\log(1 - p)$,即真实标签为负类时,模型预测负类的概率 $1 - p$ 越大,损失越小。
• 损失函数的目标是最小化真实标签和预测标签之间的差异。如果模型的预测与真实标签越接近,交叉熵损失越小。
对于多分类问题
在多分类问题中,标准交叉熵损失扩展为:
$$
\text{CE}(p, y) = - \sum_{i=1}^{C} y_i \log(p_i)
$$
其中:
• $C$ 是类别的数量。
• $y_i$ 是真实标签的第 $i$ 类的指示变量(如果样本属于第 $i$ 类,则 $y_i = 1$,否则 $y_i = 0$)。
• $p_i$ 是模型预测的样本属于第 $i$ 类的概率。
解释:
• 在多分类任务中,$p_i$ 表示模型对于每一类别的预测概率。
• 真实标签 $y$ 通常用 one-hot 编码表示,即每个样本的标签只有一个位置为 1,其他位置为 0。
• 损失是对每一类的损失进行求和,而每一类的损失是该类别的真实标签与模型预测概率之间的差异。
交叉熵损失的特点
鼓励高置信度预测:交叉熵损失在模型的预测概率接近真实标签时会惩罚较小,因此模型在预测时会倾向于更高的置信度。
与似然函数相关:交叉熵损失是最大似然估计的结果,在很多模型(如神经网络)中,最小化交叉熵等价于最大化模型的似然。
适用于分类问题:交叉熵损失广泛用于二分类和多分类问题,特别是与 softmax 函数结合使用时,能够有效地训练分类模型。
举个例子:
假设我们有一个二分类问题,真实标签为 $y = 1$(正类),而模型预测为 $p = 0.8$(即模型认为样本属于正类的概率为 80%)。则交叉熵损失为:
$$
\text{CE}(0.8, 1) = - [1 \cdot \log(0.8) + (1 - 1) \cdot \log(1 - 0.8)] = - \log(0.8) \approx 0.223
$$
如果模型预测为 $p = 0.2$,即认为样本属于正类的概率只有 20%:
$$
\text{CE}(0.2, 1) = - \log(0.2) \approx 1.609
$$
在这种情况下,交叉熵损失显然会随着预测的置信度减小而增大,体现了交叉熵对于不确定或错误预测的惩罚作用。
总结:
标准交叉熵损失是分类任务中非常常用的损失函数,它通过衡量模型预测的概率分布与真实标签分布之间的差异来优化模型。对于二分类问题,它根据模型预测正类或负类的概率与真实标签之间的差异计算损失;对于多分类问题,则考虑每个类别的预测概率与真实标签的匹配程度。
💬 评论