Post

交叉熵为什么可以被用作损失函数

交叉熵为什么可以被用作损失函数

在机器学习中,交叉熵(Cross-Entropy)被广泛用作损失函数,尤其是在分类任务中。以下是其理论背景和直观解释:


1. 交叉熵的定义

交叉熵衡量两个概率分布P(真实分布)和Q(预测分布)之间的差异:

\[H(P, Q) = -\sum_{x} P(x) \log Q(x).\]
  • P(x) 是真实标签的概率分布(如 one-hot 编码)。
  • Q(x) 是模型的预测概率分布。

目标:最小化交叉熵 H(P, Q) ,即让预测分布 Q 尽可能接近真实分布 P 。


2. 交叉熵与KL散度的关系

交叉熵可以分解为熵(Entropy)和KL散度(Kullback-Leibler Divergence)的和:

\[H(P, Q) = \underbrace{H(P)}_{\text{固定值}} + D_{KL}(P \parallel Q).\]
  • 熵H(P):真实分布P的固有不确定性(固定值,与模型无关)。
  • KL散度: $D_{KL}(P \parallel Q)$:衡量Q偏离P的程度。

结论
最小化交叉熵H(P, Q)等价于最小化KL散度即让Q逼近P 。
因此,交叉熵直接量化了模型预测与真实分布的差异。


3. 交叉熵与最大似然估计(MLE)

在分类任务中,交叉熵损失与最大似然估计等价。

  • 似然函数:假设样本独立同分布(i.i.d.),模型的似然函数为:
\[\mathcal{L} = \prod_{i} Q(x_i)^{P(x_i)},\]

其中 P(x_i) 是真实标签0或1。

  • 负对数似然:取对数并取负号后得到:

    \[-\log \mathcal{L} = -\sum_{i} P(x_i) \log Q(x_i),\]

    这正是交叉熵的表达式。

结论
最小化交叉熵损失等价于最大化模型对数据的似然概率(即极大似然估计)。


4. 交叉熵的实践优势

除了理论上的合理性,交叉熵在实践中还有以下优点:

(1) 梯度计算友好

  • 以分类任务为例
    假设使用 Softmax 输出预测概率Q(x),交叉熵的梯度为:

    \[\frac{\partial H(P, Q)}{\partial \text{logits}} = Q(x) - P(x).\]

    梯度仅取决于预测概率与真实标签的差异,避免了均方误差MSE可能出现的梯度消失问题。

(2) 适用于概率输出

  • 交叉熵天然适用于概率模型(如逻辑回归、神经网络中的 Softmax 层)。
  • 直接惩罚预测概率与真实标签的偏差,与分类目标高度一致。

(3) 对错误预测的强惩罚

  • 当模型对某个类别的预测概率Q(x)很低,而真实标签P(x) = 1时,交叉熵会给出极大的损失值,迫使模型快速修正错误。

5. 交叉熵 vs. 均方误差(MSE)

在分类任务中,交叉熵通常优于 MSE:

  • MSE 的问题
    • 梯度中包含 Q(x)(1 - Q(x)) 项,当预测概率接近 0 或 1 时,梯度趋于 0(梯度消失)。
    • 对概率的惩罚不够直接,可能导致训练缓慢。
  • 交叉熵的优势
    • 梯度直接反映预测误差,更新效率高。
    • 更适合概率建模。

总结

交叉熵作为损失函数的核心原因是:

  1. 理论层面:等价于最小化 KL 散度,与最大似然估计一致。
  2. 实践层面:梯度计算高效,适合概率输出,对错误预测敏感。

在分类任务(如图像分类、文本分类)中,交叉熵是自然且高效的选择。

This post is licensed under CC BY 4.0 by the author.

Trending Tags