
视频元信息
- 课程来源:吴恩达(Andrew Ng)深度学习专项课程 · 改善深层神经网络:超参数调试、正则化以及优化(第二课)
- 本节标题:1.9 归一化输入(Normalizing Inputs)
- 视频时长:约 5 分 30 秒
内容摘要(TL;DR)
本节讲解神经网络训练中归一化输入特征的两步法:先减去均值使数据零均值化,再除以标准差使各特征方差为 1。核心要点是训练集与测试集必须使用同一组 μ 和 σ²(由训练集计算得出)。归一化的目的是让代价函数更对称、更接近球形,从而让梯度下降走更直的路径、可用更大学习率、收敛更快。
一、归一化输入的两步法 [00:30]
步骤 1:零均值化(Subtract the Mean)
对每一个训练样本,用该样本减去均值向量 μ:
- 令 μ = (1/m) Σ x⁽ⁱ⁾,即所有训练样本在每个特征维度上的均值组成的向量。
- 对每个样本执行 x := x − μ。
- 效果:把训练数据的分布整体"平移",使其均值为零。
理解:这一步只改变数据的中心位置,不改变数据的形状和离散程度。
步骤 2:归一化方差(Normalize the Variance)
- 计算 σ² = (1/m) Σ (x⁽ⁱ⁾)²,注意这里用的是已经减去均值之后的 x⁽ⁱ⁾。
- 因为已经减去了均值,所以 x⁽ⁱ⁾ 的逐元素平方再求平均,得到的就是每个特征的方差。
- σ² 是一个向量,其每个分量对应一个特征的方差。
- 对每个样本执行 x := x / σ²(逐元素相除)。
易错点:视频中口述为"除以 σ²",但在实际实现中标准做法是除以标准差 σ(即 σ² 的平方根),这样才能让方差真正等于 1。转录中的表述按原文记录,但请以"除以标准差"为准理解。
归一化后的效果
- 特征 x1 原本方差远大于特征 x2。
- 经过两步处理后,x1 和 x2 的方差都变为 1,各特征处于相同尺度。
思考:之所以要先减均值再算方差,是因为若直接用原始数据算平方均值,得到的不是真正的方差(会包含均值平方项)。顺序不能颠倒。
二、关键原则:训练集与测试集用同一组 μ 和 σ² [01:35]
这是本节最重要的实操要点之一:
- 必须用训练集计算出的 μ 和 σ²,然后把这同一组参数应用到测试集上。
- 不要分别在训练集和测试集上各自估计 μ 和 σ²。
- 原因:你希望训练样本和测试样本经过完全相同的变换,由同一个在训练集上计算出的 μ 和 σ² 定义。
易错点 / 考点:测试集绝不能单独计算自己的均值和方差来归一化。如果训练集和测试集用了不同的归一化参数,就相当于对两个数据集做了不同的数据变换,会破坏模型的一致性假设,导致测试表现异常。
理解:这与数据预处理中"fit 在训练集、transform 应用到测试集"的 scikit-learn 思想完全一致,是防止数据泄露(data leakage)的基本原则。
三、为什么要归一化输入特征?[02:16]
代价函数的形状问题
代价函数 J(w, b) 的定义如课程右上角所示。如果不做归一化:
- 若特征尺度差异极大,例如 x1 取值范围是 1 到 1000,而 x2 取值范围是 0 到 1;
- 那么参数 w1 和 w2 的取值范围比例也会相差悬殊;
- 最终代价函数会呈现为一个非常细长、扁平的"肘形"(elongated)等高线。
推导:代价函数对 w1、w2 的敏感度不同,导致等高线在不同方向上被拉伸,形成狭长的椭圆。
对梯度下降的影响
- 在细长的代价函数上运行梯度下降,起点处梯度方向往往不指向最小值;
- 梯度下降需要来回震荡(oscillate back and forth),走很多小步才能到达最小值;
- 因此必须使用很小的学习率,训练缓慢。
归一化后的好处
- 归一化后代价函数更对称、更接近球形(more spherical / round);
- 无论从哪个位置出发,梯度下降几乎可以直接走向最小值;
- 可以采用更大的步长(更大的学习率),减少震荡,收敛更快。
考点:归一化输入的核心收益是——让代价函数更"圆",从而加速梯度下降收敛,并允许使用更大的学习率。
四、尺度差异的判断标准与实操建议 [04:24]
什么情况需要归一化
- 特征尺度差异巨大时(如一个特征 1~1000,另一个 0~1):归一化非常重要。
- 特征尺度相近时:
- 例如 x1 范围 0~1、x2 范围 −1~1、x3 范围 1~2,这些范围比较接近;
- 此时归一化不那么重要,不做也能正常工作。
吴恩达的实践建议
- 即使不确定归一化是否有帮助,做归一化几乎从不会有坏处;
- 因此他常常默认执行归一化,以确保训练加速。
思考:这是一个"低成本、高潜在收益"的操作,属于工程上的稳妥选择。
五、拓展补充【拓展】
1. 与批归一化(Batch Normalization)的区别
- 本节讲的是输入层的归一化(对原始特征做处理);
- 批归一化则是在网络中间层对每个 mini-batch 的激活值做类似操作,是另一节的内容。
- 两者思想一脉相承:让数据分布更稳定,加速训练。
2. 为什么归一化能改善优化
- 从优化角度看,未归一化时代价函数的 Hessian 矩阵条件数很大(病态),梯度下降收敛慢;
- 归一化相当于对参数空间做了一次"预条件",使各方向曲率接近,条件数下降;
- 因此梯度下降方向更接近最优方向,收敛更快。
3. 常见踩坑点
- 顺序错误:必须先减均值,再算方差并归一化。
- 参数不共享:测试集单独算均值方差 → 训练/测试分布不一致。
- 忘记保存 μ 和 σ²:部署推理时也需要用训练阶段保存的这组参数做同样的变换。
- 误用方差代替标准差:实现时注意是除以标准差。
4. 相关概念
- 特征缩放(Feature Scaling):更广义的概念,包括归一化(Normalization)和标准化(Standardization)。
- 标准化(Z-score 标准化):即本节讲的方法(减均值除标准差),与"把数据缩放到 [0,1]"的 min-max 归一化不同,注意术语区分。
关键标签 / 关键词
吴恩达 #深度学习 #归一化输入 #NormalizingInputs #特征缩放 #零均值化 #方差归一化 #梯度下降 #代价函数 #学习率 #数据预处理 #测试集一致性 #改善深层神经网络 #优化算法
生成时间:2026-10-10 22:04:01 生成平台:VideoNote www.xygy.top