32 Softmax 回归
32 Softmax 回归
一、问题背景:从二分类到多分类
- Logistic 回归适用于二分类(输出为 0 或 1)。
- 当面对 $C$ 个类别($C \geq 2$)的分类任务时(如猫、狗、小鸡、“其他”),需要使用 Softmax 回归——这是 Logistic 回归在多分类场景下的自然推广。
💡 类别编号通常为 $0, 1, 2, \dots, C-1$。例如 $C=4$ 时,类别为 {0: 其他, 1: 猫, 2: 狗, 3: 小鸡}。
二、Softmax 回归的核心思想
目标:给定输入 $x$,模型输出一个 概率分布向量 $\hat{y} \in \mathbb{R}^C$,其中:
- $\hat{y}_i = P(y = i \mid x)$,
- 所有元素非负且和为 1:$\sum_{i=0}^{C-1} \hat{y}_i = 1$。
三、Softmax 激活函数的数学定义
设神经网络最后一层(第 $L$ 层)的线性输出为:
\[z^{[L]} = W^{[L]} a^{[L-1]} + b^{[L]} \in \mathbb{R}^C\]然后通过 Softmax 激活函数将其转换为概率分布:
步骤 1:对每个元素取指数
\[t_i = e^{z^{[L]}_i}, \quad \text{for } i = 0, 1, \dots, C-1\]步骤 2:归一化(使总和为 1)
\[a^{[L]}_i = \hat{y}_i = \frac{e^{z^{[L]}_i}}{\sum_{j=0}^{C-1} e^{z^{[L]}_j}}\]\[\boxed{ \text{Softmax}(z)_i = \frac{e^{z_i}}{\sum_{j=0}^{C-1} e^{z_j}} }\]✅ 这就是 Softmax 函数的标准形式:
⚠️ 注意:Softmax 是向量到向量的函数(与 Sigmoid/ReLU 不同,后者是标量到标量)。
四、直观示例
假设:
\[z^{[L]} = \begin{bmatrix} 5 \\ 2 \\ -1 \\ 3 \end{bmatrix} \Rightarrow t = \begin{bmatrix} e^5 \\ e^2 \\ e^{-1} \\ e^3 \end{bmatrix} \approx \begin{bmatrix} 148.4 \\ 7.4 \\ 0.4 \\ 20.1 \end{bmatrix}\]归一化分母:$148.4 + 7.4 + 0.4 + 20.1 = 176.3$
则输出概率为:
\[\hat{y} = a^{[L]} \approx \begin{bmatrix} 148.4 / 176.3 \\ 7.4 / 176.3 \\ 0.4 / 176.3 \\ 20.1 / 176.3 \end{bmatrix} \approx \begin{bmatrix} 0.842 \\ 0.042 \\ 0.002 \\ 0.114 \end{bmatrix}\]- 表示:84.2% 概率为“其他”,11.4% 为“小鸡”,等等。
五、Softmax 作为输出层
- 输出层有 $C$ 个神经元,对应 $C$ 个类别。
- 最终输出 $\hat{y} = a^{[L]} = \text{Softmax}(z^{[L]})$ 是一个 合法的概率分布。
- 预测类别为:$\arg\max_i \hat{y}_i$
六、决策边界特性(无隐藏层时)
若直接将输入 $x$ 接入 Softmax 层(即无隐藏层的单层网络),则:
- 每两类之间的决策边界是 线性的。
- 整体可将输入空间划分为 $C$ 个凸多面体区域(由超平面分割)。
📌 示例:$C=3$ 时,形成三个由直线(2D)或超平面(高维)围成的区域。
- 若加入隐藏层,网络可学习非线性决策边界,处理更复杂的多分类问题。
七、Softmax 与 Logistic 回归的关系
当 $C = 2$ 时,Softmax 退化为 Logistic 回归:
- 只需输出一个概率(另一个为 $1 - p$),
- Softmax 的两个输出冗余,等价于 Sigmoid。
因此,Softmax 是 Logistic 回归在多类情况下的推广。
八、关键要点总结
| 项目 | 内容 |
|---|---|
| 适用场景 | 多类别分类($C \geq 2$) |
| 输出形式 | 概率分布 $\hat{y} \in \mathbb{R}^C$,$\sum \hat{y}_i = 1$ |
| 激活函数 | $\displaystyle \hat{y}_i = \frac{e^{z_i}}{\sum_j e^{z_j}}$ |
| 输入要求 | 向量 $z \in \mathbb{R}^C$ |
| 决策规则 | $\hat{y}_{\text{pred}} = \arg\max_i \hat{y}_i$ |
| 边界性质 | 无隐藏层 → 线性边界;有隐藏层 → 非线性边界 |
| 与 Logistic 关系 | $C=2$ 时等价 |
九、后续步骤提示(课程预告)
下一步将学习如何训练含 Softmax 层的神经网络,包括:
- 定义多分类交叉熵损失函数(Categorical Cross-Entropy Loss)
- 使用反向传播计算梯度
- 更新参数 $W^{[L]}, b^{[L]}$
\[\mathcal{L}(\hat{y}, y) = -\sum_{i=0}^{C-1} y_i \log(\hat{y}_i)\]损失函数形式(预告):
其中 $y$ 是 one-hot 编码的真实标签。
本文由作者按照 CC BY 4.0 进行授权