视频封面

视频元信息

  • 所属课程:吴恩达深度学习专项课程 - 改善深层神经网络(Professionalization of Deep Learning)
  • 章节编号:3.8 Softmax 回归
  • 视频时长:约 11 分 45 秒
  • 授课语言:英文(官方中英字幕)

内容摘要(TL;DR)

本节讲解 Softmax 回归——逻辑回归从二分类到多分类的推广。当类别数 C ≥ 2 时,网络输出层使用 C 个单元,通过 Softmax 激活函数将线性输出 z 转换为 C 个概率值,且所有概率之和为 1。视频详细推导了 Softmax 的计算过程,并通过数值示例和决策边界可视化说明其作用。


1. 从二分类到多分类 [00:00]

1.1 问题背景

之前的分类示例都使用二分类(Binary Classification),即只有两个可能的标签:0 或 1(是猫 / 不是猫)。

思考:当需要识别多个类别时,二分类方法不再适用,需要一种推广形式。

1.2 多分类问题实例

假设不只识别猫,而是需要识别以下类别:

  • 类别 1:猫(Cat)
  • 类别 2:狗(Dog)
  • 类别 3:小鸡(Baby Chick)
  • 类别 0:以上都不是(None of the above)

注意:类别索引从 0 开始,到 C-1 结束(当 C=4 时,索引为 0, 1, 2, 3)。

易错点:类别编号从 0 开始而非 1,这是吴恩达课程的一贯约定。实际编程中(如 PyTorch)通常从 0 开始编号,但某些框架(如 MATLAB)从 1 开始,需注意转换。

1.3 符号约定

  • 用大写 C 表示类别总数
  • 本例中 C = 4(包含"以上都不是"类别)
  • 类别索引范围:0 到 C-1

2. 网络结构设计 [01:31]

2.1 输出层单元数

  • 输出层单元数 n^[L] = C
  • 本例中输出层有 4 个单元,每个单元对应一个类别的概率

2.2 输出含义

每个输出单元表示给定输入 x 时属于该类别的概率:

  • 第 1 个单元:P(other | x)
  • 第 2 个单元:P(cat | x)
  • 第 3 个单元:P(dog | x)
  • 第 4 个单元:P(baby chick | x)

2.3 输出向量 ŷ

  • ŷ 是一个 4×1 维向量
  • 四个概率值之和应为 1

考点:Softmax 输出的核心性质——所有类别概率之和为 1,这是与普通多输出网络的关键区别。


3. Softmax 层的计算过程 [03:06]

3.1 第一步:计算线性部分

与普通网络相同,先计算最后一层的线性输出:

$$z^{[L]} = W^{[L]} \cdot a^{[L-1]} + b^{[L]}$$

本例中 z^[L] 是 4×1 维向量。

3.2 第二步:计算临时变量 t

对 z^[L] 进行逐元素指数运算:

$$t = e^{z^{[L]}}$$

  • 这是逐元素(element-wise)操作
  • t 也是 4×1 维向量

3.3 第三步:归一化得到输出

$$a^{[L]}i = \frac{t_i}{\sum$$}^{4} t_j

即:

$$a^{[L]} = \frac{e^{z^{[L]}}}{\sum_{j=1}^{C} e^{z^{[L]}_j}}$$

理解:分子是当前类别的指数值,分母是所有类别指数值之和。这种设计保证了输出为正且总和为 1。

3.4 完整公式

$$a^{[L]} = g(z^{[L]}) = \text{softmax}(z^{[L]})$$


4. 数值计算示例 [05:07]

4.1 输入向量

假设 z^[L] = [5, 2, -1, 3]^T

4.2 计算 t(指数运算)

元素 计算 结果
t₁ e⁵ 148.4
t₂ e² 7.4
t₃ e⁻¹ 0.4
t₄ e³ 20.1

4.3 计算分母(归一化常数)

$$\sum t = 148.4 + 7.4 + 0.4 + 20.1 = 176.3$$

4.4 计算最终输出

类别 计算 概率
类别 0 148.4 / 176.3 0.842(84.2%)
类别 1 7.4 / 176.3 0.042(4.2%)
类别 2 0.4 / 176.3 0.002(0.2%)
类别 3 20.1 / 176.3 0.114(11.4%)

易错点:四个概率之和必须为 1。验证:0.842 + 0.042 + 0.002 + 0.114 = 1.000 ✓

思考:z 值越大,对应类别的概率越高。z₁=5 最大,所以类别 0 的概率最高(84.2%)。这体现了 Softmax 的"赢家通吃"倾向,但并非硬性选择,而是软概率分配。


5. Softmax 激活函数的特殊性 [08:03]

5.1 与普通激活函数的对比

激活函数 输入 输出
Sigmoid 单个实数 单个实数
ReLU 单个实数 单个实数
Softmax 向量 向量

5.2 为什么 Softmax 特殊

  • 普通激活函数:逐元素操作,输入输出维度相同,各元素独立
  • Softmax:需要在不同输出之间进行归一化,因此必须接收向量输入并输出向量

考点:Softmax 是少数需要跨元素计算的激活函数,不能拆分为独立的标量函数。

理解:正因为需要归一化,Softmax 的输出单元之间不再独立——改变任何一个 z 值都会影响所有输出概率。


6. Softmax 分类器的决策边界 [08:55]

6.1 无隐藏层的简单网络

考虑一个无隐藏层的网络:

$$z^{[1]} = W^{[1]} x + b^{[1]}$$ $$\hat{y} = a^{[1]} = \text{softmax}(z^{[1]})$$

输入为 x₁, x₂,输出为 C 个类别的概率。

6.2 C = 3 时的决策边界

  • 决策边界是分段线性的
  • 能够将数据空间划分为 3 个区域
  • 任意两个类别之间的边界是线性的

理解:这是逻辑回归决策边界的自然推广——二分类时是一条直线,多分类时是多条直线围成的区域。

6.3 更多类别的示例

  • C = 4:4 个类别的线性决策边界
  • C = 5:5 个类别的线性决策边界
  • C = 6:6 个类别的线性决策边界

6.4 关键结论

考点:无隐藏层的 Softmax 分类器,任意两个类别之间的决策边界都是线性的。

6.5 深层网络的扩展

当使用更深的神经网络(含隐藏层)时:

  • 可以学习更复杂的非线性决策边界
  • 能够分离更多不同的类别
  • 表达能力随网络深度增加而增强

【拓展】在实际应用中,深层网络 + Softmax 输出层是图像分类(如 ImageNet 1000 类)的标准架构。隐藏层负责特征提取,Softmax 层负责最终的类别概率分配。


7. 核心要点总结

7.1 基础内容

  1. Softmax 回归是逻辑回归从二分类到多分类的推广
  2. 输出层单元数 = 类别数 C
  3. 计算步骤:线性输出 → 指数运算 → 归一化
  4. 输出是所有类别概率的向量,总和为 1
  5. 无隐藏层时决策边界为分段线性

7.2 关键公式

$$a^{[L]}i = \frac{e^{z^{[L]}_i}}{\sum$$}^{C} e^{z^{[L]}_j}

7.3 注意事项

易错点汇总:

  1. 类别索引从 0 开始(0 到 C-1)
  2. Softmax 输入输出都是向量,不是标量
  3. 输出概率之和必须为 1
  4. 指数运算可能溢出,实际实现需减去最大值(数值稳定性技巧)

【拓展】数值稳定性:当 z 值很大时,e^z 可能溢出。实际实现中通常计算 softmax(z - max(z)),结果不变但避免溢出。这是工程实现中的重要细节。

7.4 下节预告

下一节将讲解如何训练使用 Softmax 层的神经网络(即 Softmax 的损失函数与反向传播)。


关键标签 / 关键词

Softmax回归 多分类 逻辑回归推广 激活函数 输出层 决策边界 深度学习 吴恩达 神经网络 概率归一化 指数函数 分段线性 C类别 向量输入输出


生成时间:2026-10-10 22:19:33 生成平台:VideoNote www.xygy.top