从预测到压缩:理解 Softmax 回归与交叉熵背后的直觉

“分类不是问‘多少’,而是问‘哪一个’。”

在机器学习的世界里,线性回归教会我们如何预测连续值——房价、温度、胜场数。但现实中的许多问题本质上是离散选择:这封邮件是垃圾邮件吗?这张图是猫还是狗?用户会点击这个广告吗?

这就是分类任务的舞台,而 Softmax 回归,正是处理多类别分类问题最基础、也最优雅的工具之一。然而,Softmax 不只是一个数学技巧;它的背后,深植于信息论概率建模的坚实土壤。本文将带你从直觉出发,一步步揭开 Softmax 与交叉熵损失的神秘面纱。


一、为什么不能直接用线性输出做分类?

假设我们有一个图像分类任务,类别为 {猫, 鸡, 狗}。我们可以构建一个线性模型,对每个类别输出一个“得分”(logit):

$$
\begin{aligned}
o_1 &= \mathbf{w}_1^\top \mathbf{x} + b_1 \quad (\text{猫}) \
o_2 &= \mathbf{w}_2^\top \mathbf{x} + b_2 \quad (\text{鸡}) \
o_3 &= \mathbf{w}_3^\top \mathbf{x} + b_3 \quad (\text{狗})
\end{aligned}
$$

但这些 $o_j$ 是未规范化的实数——可能为负,总和也不为 1。它们不能直接解释为概率,因为违反了概率的基本公理。

我们需要一个函数,能把任意实数向量 $\mathbf{o}$ 转换为一个合法的概率分布 $\hat{\mathbf{y}}$,即:

  • 每个 $\hat{y}_j \geq 0$
  • $\sum_j \hat{y}_j = 1$

Softmax 函数 正是为此而生:

$$
\hat{y}_j = \frac{\exp(o_j)}{\sum_k \exp(o_k)}
$$

它通过指数化确保非负,再通过归一化确保和为 1。更重要的是,它保持可导性,使得梯度下降成为可能。

💡 有趣事实:Softmax 的思想可追溯至社会科学家邓肯·卢斯(Duncan Luce)1959 年提出的选择公理——人们在多个选项中做选择的概率,正比于各选项“吸引力”的指数。这与 softmax 完美契合!


二、如何训练模型?最大似然估计登场

有了概率输出 $\hat{\mathbf{y}} = P(y \mid \mathbf{x})$,我们自然希望:模型对真实标签的预测概率越高越好

假设我们有 $n$ 个独立样本,真实标签用独热编码表示(如“鸡” → $[0,1,0]$)。那么,整个数据集被观测到的联合概率(即似然)为:

$$
P(\mathbf{Y} \mid \mathbf{X}) = \prod_{i=1}^n P(\mathbf{y}^{(i)} \mid \mathbf{x}^{(i)})
$$

为什么要相乘?
因为样本独立!独立事件同时发生的概率等于各自概率的乘积。这是统计建模的基石。

为了便于优化,我们取负对数,得到负对数似然(Negative Log-Likelihood):

$$
-\log P(\mathbf{Y} \mid \mathbf{X}) = \sum_{i=1}^n -\log P(\mathbf{y}^{(i)} \mid \mathbf{x}^{(i)})
$$

由于 $\mathbf{y}^{(i)}$ 是 one-hot 向量,上式简化为:

$$
l(\mathbf{y}, \hat{\mathbf{y}}) = -\sum_j y_j \log \hat{y}j = -\log \hat{y}{\text{true class}}
$$

这就是著名的 交叉熵损失(Cross-Entropy Loss)


三、交叉熵 = 预期“惊异”?信息论视角

这里,信息论为我们提供了深刻的洞见。

克劳德·香农提出:一个事件的信息量(惊异程度)与其发生概率成反比

$$
I(x) = -\log P(x)
$$

  • 太阳升起?概率 ≈1 → 信息量 ≈0(不意外)
  • 彩票中奖?概率 ≈0 → 信息量很大(很意外)

那么,平均每次观察带来的“惊异”是多少?这就是熵(Entropy)

$$
H(P) = \mathbb{E}_{x \sim P}[-\log P(x)] = -\sum_j P(j) \log P(j)
$$

熵是当你的概率模型完全匹配真实世界时的平均信息量,也是无损压缩的理论极限。

现在,如果我们用一个错误的模型 $Q$ 去描述真实分布 $P$,平均“惊异”就变成了:

$$
H(P, Q) = \mathbb{E}_{x \sim P}[-\log Q(x)] = -\sum_j P(j) \log Q(j)
$$

这正是交叉熵

  • 当 $Q = P$ 时,$H(P, Q) = H(P)$(最小可能值)
  • 当 $Q \neq P$ 时,交叉熵更大

因此,最小化交叉熵损失,本质上是在让模型的预测分布 $Q$ 尽可能接近真实分布 $P$,从而减少“惊异”,提高预测准确性。

压缩与预测的统一
如果你能准确预测下一个符号(即 $Q \approx P$),你就能用接近 $H(P)$ 比特/符号来压缩数据。
反之,分类模型越准,其交叉熵越低,说明它对世界的“不确定性”越小。


四、Softmax 回归的优雅性质

尽管 Softmax 是非线性的,但整个模型仍是线性模型——因为最终决策边界由 $\mathbf{W}\mathbf{x} + \mathbf{b}$ 决定。

更妙的是,交叉熵损失对 logits 的梯度极其简洁:

$$
\frac{\partial l}{\partial o_j} = \hat{y}_j - y_j
$$

即:预测概率与真实标签的差。这与线性回归中 $(\hat{y} - y)$ 的形式惊人地相似,体现了指数族分布模型的统一性。


总结:Softmax 回归的三重身份

视角 解释
工程视角 将线性输出转为概率,支持多分类
统计视角 最大似然估计下的最优分类器
信息论视角 最小化模型对真实世界的“预期惊异”(交叉熵)

Softmax 回归远不止是一个公式。它是预测、压缩与信息三大概念交汇的典范。理解它,就是理解现代机器学习如何用概率语言描述世界。


延伸思考
如果你对“熵”和“压缩”的关系感兴趣,不妨思考:为什么 ZIP 文件对文本压缩效果好,但对已经压缩过的 JPG 图像几乎无效?答案就在数据的可预测性之中。


参考:本文内容主要基于《动手学深度学习》(Dive into Deep Learning)第 3.4 节及附录信息论章节,并融合了香农信息论的核心思想。


希望这篇博客能帮助读者不仅“会用” Softmax,更能“理解”它为何如此设计。欢迎在评论区讨论!