
视频元信息
- 所属课程:吴恩达深度学习专项课程 - 改善深层神经网络(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 基础内容
- Softmax 回归是逻辑回归从二分类到多分类的推广
- 输出层单元数 = 类别数 C
- 计算步骤:线性输出 → 指数运算 → 归一化
- 输出是所有类别概率的向量,总和为 1
- 无隐藏层时决策边界为分段线性
7.2 关键公式
$$a^{[L]}i = \frac{e^{z^{[L]}_i}}{\sum$$}^{C} e^{z^{[L]}_j}
7.3 注意事项
易错点汇总:
- 类别索引从 0 开始(0 到 C-1)
- Softmax 输入输出都是向量,不是标量
- 输出概率之和必须为 1
- 指数运算可能溢出,实际实现需减去最大值(数值稳定性技巧)
【拓展】数值稳定性:当 z 值很大时,e^z 可能溢出。实际实现中通常计算 softmax(z - max(z)),结果不变但避免溢出。这是工程实现中的重要细节。
7.4 下节预告
下一节将讲解如何训练使用 Softmax 层的神经网络(即 Softmax 的损失函数与反向传播)。
关键标签 / 关键词
Softmax回归 多分类 逻辑回归推广 激活函数 输出层 决策边界 深度学习 吴恩达 神经网络 概率归一化 指数函数 分段线性 C类别 向量输入输出
生成时间:2026-10-10 22:19:33 生成平台:VideoNote www.xygy.top