视频封面

视频元信息

  • 课程来源:吴恩达深度学习专项课程(Deep Learning Specialization)
  • 所属章节:Professionalization of Deep Learning(第三门课)
  • 视频主题:训练一个 Softmax 分类器(Training a Softmax Classifier)
  • 语言:英文讲解(官方中英字幕)

内容摘要(TL;DR)

本节视频深入讲解 Softmax 分类器的训练方法。首先回顾 Softmax 激活函数的计算过程,通过与 Hardmax 对比解释其命名由来;接着说明 Softmax 是逻辑回归在 C 个类别上的推广(C=2 时退化为逻辑回归);然后重点讲解 Softmax 的损失函数(交叉熵损失)及其直觉理解,介绍整个训练集上的代价函数定义和向量化实现;最后给出反向传播的关键公式 dZ^L = ŷ - y,并指出使用深度学习框架时无需手动实现反向传播。


一、Softmax 激活函数回顾 [00:12]

要点总结:回顾上一节视频中 Softmax 层的计算流程,理解从 Z^L 到输出 A^L 的完整过程。

计算流程

假设输出层有 C=4 个类别,则 Z^L 是一个 4×1 维向量。

  1. 计算临时变量 T:对 Z^L 进行逐元素指数运算(element-wise exponentiation)
    • T = e^(Z^L),即对每个元素求 e 的幂
  2. 归一化得到输出:将 T 归一化使其和为 1
    • A^L = T / sum(T),即每个元素除以所有元素之和

具体示例

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

  • 最大值 5 位于第一个位置
  • 经过 Softmax 后,第一个位置的概率最大
  • 最终输出 A^L 中所有元素之和为 1

关键理解:Softmax 的输出是一个概率分布,每个元素表示输入属于对应类别的概率。


二、Softmax 与 Hardmax 的对比 [00:57]

要点总结:通过与 Hardmax 函数对比,理解 Softmax 命名的直觉含义。

Hardmax 函数

  • 找到 Z 向量中最大的元素
  • 在最大值位置输出 1,其余位置输出 0
  • 例如:Z = [5, 2, -1, 3]^T → Hardmax 输出 [1, 0, 0, 0]^T

Softmax 函数

  • 同样关注最大值位置,但输出是"柔和"的概率分布
  • 例如:Z = [5, 2, -1, 3]^T → Softmax 输出 [0.842, 0.042, 0.002, 0.114]^T(近似值)

命名直觉:

  • Hardmax:硬性映射,最大值位置直接给 1,其余给 0
  • Softmax:柔性映射,最大值位置给较大的概率,其余位置给较小的概率,但都不为 0

理解:Softmax 相比 Hardmax 提供了更丰富的信息,不仅告诉哪个类别最可能,还给出了各个类别的相对概率大小。

易混淆点:Softmax 的名字来源于与 Hardmax 的对比,而不是说它"很 soft"。它是将 Z 向量"柔和地"映射为概率分布,而非"硬性"地做 one-hot 编码。


三、Softmax 是逻辑回归的推广 [01:43]

要点总结:理解 Softmax 回归与逻辑回归的关系——Softmax 是逻辑回归在多类别上的推广。

核心结论

  • Softmax 回归(Softmax regression)将逻辑回归从二分类推广到 C 个类别
  • 当 C = 2 时,Softmax 退化为逻辑回归(logistic regression)

证明思路概述

当 C=2 时:

  1. 输出层 A^L 输出两个数,例如 [0.842, 0.158]^T
  2. 这两个数之和恒为 1,因此是冗余的(redundant)
  3. 只需计算其中一个数即可
  4. 计算这一个数的方式,恰好与逻辑回归计算单个输出的方式一致

推导:当 C=2 时,Softmax 输出 a₁ = e^(z₁)/(e^(z₁)+e^(z₂)),分子分母同除以 e^(z₁) 得 a₁ = 1/(1+e^(z₂-z₁)),这正是 Sigmoid 函数的形式,其中 z₂-z₁ 相当于逻辑回归中的线性输出。

考点:Softmax 回归是逻辑回归的推广形式,C=2 时等价于逻辑回归。这是理解 Softmax 本质的重要结论。


四、Softmax 的损失函数 [03:04]

要点总结:定义 Softmax 分类的损失函数,并通过具体示例理解其工作原理。

损失函数定义

对于单个训练样本,Softmax 分类使用的损失函数为:

L(y, ŷ) = -Σ(j=1 to C) y_j · log(ŷ_j)

其中:

  • C 为类别总数
  • y_j 为真实标签的第 j 个分量(one-hot 编码)
  • ŷ_j 为预测概率的第 j 个分量

具体示例

假设真实标签 y = [0, 1, 0, 0]^T(表示这是一张猫的图片,属于第 2 类),网络预测 ŷ = [0.1, 0.2, 0.3, 0.4]^T。

计算过程:

  • 由于 y₁ = y₃ = y₄ = 0,只有 y₂ = 1
  • 求和式中所有 y_j = 0 的项都变为 0
  • 只剩下:L = -y₂ · log(ŷ₂) = -log(ŷ₂)

直觉理解:

  • 要让损失变小,就需要让 ŷ₂ 尽可能大
  • 这符合直觉:既然图片是猫(第 2 类),我们希望网络预测第 2 类的概率尽可能高
  • 更一般地,损失函数找到真实类别对应的位置,并试图让该位置的概率尽可能高

理解:这个损失函数实际上是交叉熵损失(cross-entropy loss)在 one-hot 标签下的简化形式。

【拓展】如果熟悉统计学中的极大似然估计(Maximum Likelihood Estimation, MLE),这个损失函数正是极大似然估计的一种形式。最大化似然函数等价于最小化负对数似然,即最小化交叉熵损失。不过不熟悉也没关系,上面的直觉理解已经足够。

易错点:当使用 one-hot 标签时,交叉熵损失只关注真实类别对应的那一个概率值。不要被求和符号迷惑——实际上只有一项是非零的。


五、整个训练集上的代价函数 [05:58]

要点总结:将单个样本的损失推广到整个训练集,定义代价函数 J。

代价函数定义

J(w, b) = (1/m) · Σ(i=1 to m) L(y^(i), ŷ^(i))

其中:

  • m 为训练样本数量
  • L(y^(i), ŷ^(i)) 为第 i 个样本的损失
  • w, b 为网络的所有参数

训练目标

使用梯度下降(gradient descent)最小化代价函数 J,从而学习到最优参数。

基础事实:这与之前学过的二分类、回归问题的代价函数定义方式一致——都是对所有训练样本的损失取平均。


六、向量化实现细节 [06:26]

要点总结:介绍如何用向量化方式组织训练数据,提高计算效率。

数据组织方式

当 C=4 时:

  • 每个样本的 y 是 4×1 向量
  • 每个样本的 ŷ 也是 4×1 向量

向量化排列:

  • 矩阵 Y:将 y^(1), y^(2), ..., y^(m) 水平排列(按列堆叠),得到 4×m 维矩阵
    • 例如第一个样本是猫:Y 的第一列为 [0, 1, 0, 0]^T
    • 第二个样本是狗:Y 的第二列对应狗的位置为 1
    • 以此类推
  • 矩阵 Ŷ:将 ŷ^(1), ŷ^(2), ..., ŷ^(m) 水平排列,同样得到 4×m 维矩阵

理解:这种按列堆叠的方式与之前课程中处理训练数据的方式一致,便于利用矩阵运算加速计算。

易错点:注意矩阵 Y 和 Ŷ 的维度是 C×m(类别数×样本数),而不是 m×C。这与之前学过的输入矩阵 X 的维度 n×m 类似。


七、Softmax 层的反向传播 [07:33]

要点总结:介绍 Softmax 输出层反向传播的关键公式,以及使用深度学习框架时的注意事项。

前向传播流程

  1. 输出层计算 Z^L(C×1 维向量,如 4×1)
  2. 应用 Softmax 激活函数得到 A^L = ŷ
  3. 计算损失函数 L(ŷ, y)

反向传播关键公式

初始化反向传播的关键方程为:

dZ^L = ŷ - y

其中:

  • ŷ 是 C×1 的预测概率向量
  • y 是 C×1 的真实标签向量
  • dZ^L 是代价函数对 Z^L 的偏导数

推导:这个公式的形式与逻辑回归中 dZ = a - y 完全一致,体现了 Softmax 作为逻辑回归推广的统一性。

使用深度学习框架

  • 本周编程练习将开始使用深度学习编程框架
  • 使用框架时,只需关注前向传播的实现
  • 只要正确指定前向传播,框架会自动计算反向传播
  • 因此 dZ^L = ŷ - y 这个公式在本周练习中不会直接用到

重点记忆:dZ^L = ŷ - y 这个公式在需要从零实现 Softmax 回归时非常重要。虽然使用框架时不需要手动实现,但理解这个公式有助于深入理解 Softmax 的工作原理。


八、总结与展望 [09:44]

要点总结:总结 Softmax 分类的学习内容,预告下一节课程。

本节核心收获

  • 掌握了 Softmax 分类器的训练方法
  • 学会了定义损失函数和代价函数
  • 了解了反向传播的关键公式
  • 现在可以实现将输入分为 C 个不同类别的学习算法(而不仅仅是二分类)

下节预告

下一节将介绍深度学习编程框架,这些框架可以大大提高实现深度学习算法的效率。


关键标签/关键词

Softmax Hardmax 逻辑回归 多分类 交叉熵损失 损失函数 代价函数 梯度下降 反向传播 dZ = ŷ - y 向量化 one-hot编码 极大似然估计 深度学习框架 吴恩达 Deep Learning Specialization


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