Machine Learning Specialization - Week 2, 21-30学习总结

Machine Learning Specialization — Course 1, Week 2 (Part 2)

第 21-30 课学习总结


课程基本信息

项目内容
课程Supervised Machine Learning: Regression and Classification
周次Week 2 — Regression with Multiple Input Variables
涵盖课时2-1 至 2-10(共 10 个视频,对应课程编号 P21-P30)
总时长约 60 分钟

第 2-1 课:多特征(Multiple Features)

课程概述

这一课将线性回归从单变量扩展到多变量场景。在实际问题中,预测目标往往受多个因素共同影响,仅用单一特征难以准确描述。因此,课程引入了多特征线性回归的概念,让模型能够同时利用多个输入变量进行预测。

从单变量到多变量的动机

在单变量线性回归中,预测函数只有一个输入特征,形式为 fw,b(x)=wx+bf_{w,b}(x) = wx + bfw,b(x)=wx+b。然而,现实世界的预测任务通常涉及多个影响因素。以房价预测为例,房屋价格不仅取决于面积,还受到卧室数量、楼层、房龄、地段等多种因素的综合影响。如果只用面积一个特征来预测,模型会遗漏大量有价值的信息,导致预测精度不足。

多特征线性回归的数学表达

当有 nnn 个特征时,每个训练样本表示为一个 nnn 维特征向量:

x(i)=[x1(i),x2(i),…,xn(i)]\mathbf{x}^{(i)} = [x_1^{(i)}, x_2^{(i)}, \dots, x_n^{(i)}]x(i)=[x1(i),x2(i),,xn(i)]

其中 xj(i)x_j^{(i)}xj(i) 表示第 iii 个样本的第 jjj 个特征值。例如,对于房价预测,x1x_1x1 可能是面积,x2x_2x2 是卧室数,x3x_3x3 是楼层,以此类推。

多特征线性回归的预测函数为:

fw,b(x)=w1x1+w2x2+⋯+wnxn+bf_{\mathbf{w},b}(\mathbf{x}) = w_1 x_1 + w_2 x_2 + \dots + w_n x_n + bfw,b(x)=w1x1+w2x2++wnxn+b

其中 w=[w1,w2,…,wn]\mathbf{w} = [w_1, w_2, \dots, w_n]w=[w1,w2,,wn] 是参数向量,每个 wjw_jwj 对应一个特征的权重,bbb 是偏置项。参数 wjw_jwj 的符号和大小反映了对应特征对预测结果的贡献方向和强度。

符号体系的演进

课程在此引入了更紧凑的向量表示法,这是后续向量化计算的基础。将参数和特征都表示为向量后,预测函数可以写成点积形式:

fw,b(x)=w⋅x+bf_{\mathbf{w},b}(\mathbf{x}) = \mathbf{w} \cdot \mathbf{x} + bfw,b(x)=wx+b

这种表示不仅书写简洁,更重要的是为后续利用 NumPy 等库进行高效并行计算奠定了基础。


第 2-2 课:向量化(Vectorization)

课程概述

向量化是机器学习中一项至关重要的编程实践。这一课讲解了为什么在多特征场景下必须使用向量化计算,以及向量化带来的巨大性能优势。

向量化的核心目的:计算效率

向量化不仅仅是数学表达上的简洁,其根本目的是计算效率。在 Python 中,如果使用显式的 for 循环逐个计算每个样本的预测值,代码不仅冗长,而且执行速度极慢。这是因为 Python 是解释型语言,循环中的每次迭代都涉及解释器开销。

向量化利用 NumPy 等科学计算库,将运算表达为矩阵和向量操作,底层由高度优化的 C/Fortran 代码实现,能够充分利用 CPU 的 SIMD(单指令多数据)并行指令集和 GPU 的并行计算能力。实际测试表明,对于大规模数据,向量化代码比循环版本快数十倍甚至数百倍。

向量化的数学表达

对于 mmm 个样本、nnn 个特征的数据集,将所有样本堆叠为设计矩阵 X\mathbf{X}X(形状为 m×nm \times nm×n),将所有参数堆叠为向量 w\mathbf{w}w(形状为 n×1n \times 1n×1),则所有样本的预测值可以一次性计算:

f=Xw+b\mathbf{f} = \mathbf{X} \mathbf{w} + bf=Xw+b

其中 f\mathbf{f}f 是一个 m×1m \times 1m×1 的向量,包含所有样本的预测结果。这一行代码等价于对 mmm 个样本各执行一次 nnn 维点积,但执行效率远高于显式循环。

实践原则

吴恩达在这一课中反复强调一个核心实践原则:避免使用显式循环,尽可能使用向量化操作。这是从初学者进阶为高效机器学习实践者的关键一步。在后续的梯度下降实现中,参数更新同样可以通过向量化一次性完成,而不是对每个参数逐个更新。


第 2-3 课:多元线性回归的梯度下降(Gradient Descent for Multiple Regression)

课程概述

这一课将梯度下降算法从单变量场景扩展到多变量场景。核心思想保持不变——通过迭代更新参数来最小化成本函数——但更新规则需要对每个参数分别求偏导数。

多元梯度下降的更新规则

对于多特征线性回归,成本函数为:

J(w,b)=12m∑i=1m(fw,b(x(i))−y(i))2J(\mathbf{w}, b) = \frac{1}{2m} \sum_{i=1}^{m} (f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)})^2J(w,b)=2m1i=1m(fw,b(x(i))y(i))2

对每个参数 wjw_jwj 求偏导数,得到梯度:

∂J∂wj=1m∑i=1m(fw,b(x(i))−y(i))xj(i)\frac{\partial J}{\partial w_j} = \frac{1}{m} \sum_{i=1}^{m} (f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)}) x_j^{(i)}wjJ=m1i=1m(fw,b(x(i))y(i))xj(i)

参数更新规则为:

wj:=wj−α∂J∂wjw_j := w_j - \alpha \frac{\partial J}{\partial w_j}wj:=wjαwjJ

b:=b−α∂J∂bb := b - \alpha \frac{\partial J}{\partial b}b:=bαbJ

其中 α\alphaα 是学习率。关键要点是:所有参数的梯度必须在更新前同时计算,然后统一更新,而不是更新一个参数后立即用它计算下一个参数的梯度。这种同步更新确保了梯度下降的正确性。

向量化实现

利用向量化,所有参数的梯度可以一次性计算。定义误差向量 e=f−y\mathbf{e} = \mathbf{f} - \mathbf{y}e=fy,则参数梯度为:

∂J∂w=1mXTe\frac{\partial J}{\partial \mathbf{w}} = \frac{1}{m} \mathbf{X}^T \mathbf{e}wJ=m1XTe

这使得整个梯度下降迭代可以用简洁的向量化代码实现,大幅提升计算效率。


第 2-4 课:特征缩放(Feature Scaling)

课程概述

特征缩放是应用梯度下降前的重要预处理步骤。当不同特征的量纲和数值范围差异很大时,梯度下降的收敛会变得非常缓慢,甚至无法有效收敛。特征缩放通过将各特征变换到相近的数值范围,显著加速梯度下降的收敛。

为什么需要特征缩放

假设房价预测中有两个特征:房屋面积(范围约 300-3000 平方英尺)和卧室数量(范围约 1-5)。这两个特征的数值范围相差数百倍。在成本函数的等高线图中,这会导致等高线呈现极度拉长的椭圆形状,长轴和短轴的比例与特征范围的比例相当。

在这种 elongated 的等高线地形中,梯度下降会沿着等高线的长轴方向缓慢振荡,需要大量迭代才能收敛到最优解。这是因为梯度方向与指向最优解的方向并不一致,每次更新都带有大量在"峡谷"壁上来回反弹的分量,而沿最优方向前进的分量很小。

特征缩放不影响最终预测结果

需要特别强调的是,特征缩放不会改变模型的最终预测能力。无论是否进行缩放,训练完成后的模型在测试数据上的表现是相同的。特征缩放的作用纯粹是优化优化过程——让梯度下降更快、更稳定地收敛到最优参数。

特征缩放的常用方法

课程介绍了两种主要的特征缩放方法。

最大最小归一化(Min-Max Scaling):将特征线性变换到 [0,1][0, 1][0,1] 区间:

xj,scaled=xj−xj,minxj,max−xj,minx_{j,scaled} = \frac{x_j - x_{j,min}}{x_{j,max} - x_{j,min}}xj,scaled=xj,maxxj,minxjxj,min

这种方法的优点是变换后的值严格落在 [0,1][0, 1][0,1] 范围内,缺点是容易受异常值影响。

Z-score 标准化(Standardization):将特征变换为均值为 0、标准差为 1 的分布:

xj,scaled=xj−μjσjx_{j,scaled} = \frac{x_j - \mu_j}{\sigma_j}xj,scaled=σjxjμj

其中 μj\mu_jμj 是特征 jjj 的均值,σj\sigma_jσj 是其标准差。这种方法对异常值更鲁棒,是实际应用中最常用的缩放方法。变换后的值通常在 [−3,3][-3, 3][3,3] 范围内,绝大多数值集中在 [−1,1][-1, 1][1,1] 附近。

缩放后的参数还原

特征缩放后训练得到的参数是对应缩放后特征的。如果需要得到原始尺度下的参数,可以通过逆变换还原。但在实际预测时,通常的做法是对新输入数据应用同样的缩放变换,然后直接用缩放后的参数进行预测。


第 2-5 课:判断梯度下降是否收敛(Checking Gradient Descent for Convergence)

课程概述

这一课介绍了如何判断梯度下降算法是否已经收敛到最优解,以及如何监控训练过程中的收敛状态。

学习曲线:可视化收敛过程

判断收敛最直观的方法是绘制学习曲线(Learning Curve)——以迭代次数为横轴、成本函数 J(w,b)J(\mathbf{w}, b)J(w,b) 的值为纵轴,观察 JJJ 随迭代的变化趋势。理想情况下,JJJ 应该随着迭代单调递减,最终趋于平稳。

如果学习曲线显示 JJJ 在持续下降后趋于一条水平线,说明梯度下降已经收敛。如果 JJJ 在下降过程中出现上下波动或上升,则可能是学习率过大导致的振荡或发散。

自动收敛测试

除了可视化,还可以设置自动收敛判据。一种常用方法是:当某次迭代中 JJJ 的减少量小于一个预设的小阈值 ϵ\epsilonϵ(例如 10−310^{-3}103)时,认为算法已收敛,可以提前停止迭代。即:

∣Jnew−Jold∣<ϵ|J_{\text{new}} - J_{\text{old}}| < \epsilonJnewJold<ϵ

然而,选择合适的不阈值 ϵ\epsilonϵ 并不总是容易的。如果 ϵ\epsilonϵ 太大,可能在尚未充分收敛时就提前停止;如果 ϵ\epsilonϵ 太小,可能导致不必要的额外迭代。因此,学习曲线可视化通常作为辅助手段,帮助确定合适的阈值。

梯度下降的收敛特性

在正确实现且学习率合适的情况下,梯度下降保证每次迭代都降低 JJJ 的值(或至少不增加)。如果观察到 JJJ 在某次迭代后上升,几乎总是意味着实现中存在错误(如更新方向符号错误)或学习率过大。


第 2-6 课:选择学习率(Choosing the Learning Rate)

课程概述

学习率 α\alphaα 是梯度下降中最重要的超参数之一。这一课讲解了如何选择合适的学习率,以及学习率过大或过小带来的问题。

学习率过小的问题

当学习率 α\alphaα 过小时,每次参数更新的步长很小,梯度下降收敛极其缓慢。虽然最终仍可能收敛到最优解,但需要数百次甚至数千次迭代,计算成本高昂。在学习曲线上表现为 JJJ 缓慢但稳定地下降,曲线非常平缓。

学习率过大的问题

当学习率 α\alphaα 过大时,梯度下降可能无法收敛。具体表现有两种形式:一是 JJJ 在迭代过程中上下剧烈振荡,永远无法稳定下降;二是 JJJ 在每次迭代后反而增大,最终发散到无穷大。在等高线图中,过大的步长导致更新"跳过"最优解,在峡谷两侧来回反弹,甚至越跳越远。

学习率的选择策略

吴恩达推荐的学习率选择策略是:从一个较小的值开始,逐步增大,找到能使 JJJ 稳定单调递减的最大学习率

具体操作建议:从 α=0.001\alpha = 0.001α=0.001 开始尝试,然后按约 3 倍的倍数递增尝试:0.003,0.01,0.03,0.1,0.3,10.003, 0.01, 0.03, 0.1, 0.3, 10.003,0.01,0.03,0.1,0.3,1 等。对于每个候选值,运行少量迭代(如 10-20 次),观察学习曲线:

  • 如果 JJJ 单调递减且收敛速度合理,说明学习率合适
  • 如果 JJJ 下降过慢,尝试增大学习率
  • 如果 JJJ 振荡或上升,说明学习率过大,需要减小

通过这种方式,可以快速找到一个数量级上合适的学习率。在确定大致范围后,还可以在该范围内进一步微调。

调试梯度下降实现

学习曲线还是调试梯度下降实现是否正确的重要工具。如果 JJJ 在迭代中上升,首先检查学习率是否过大;如果学习率已经很小但 JJJ 仍上升,则很可能是梯度计算存在错误(如偏导数符号错误、分母遗漏 mmm 等)。


第 2-7 课:特征工程(Feature Engineering)

课程概述

特征工程是利用领域知识从原始特征中构造新特征,以帮助模型更好地捕捉数据中的规律。这是机器学习实践中极具创造性的环节,好的特征工程往往比复杂的算法更能提升模型性能。

特征工程的核心思想

特征工程的核心是:基于对问题的深入理解,创造新的特征,使线性模型能够表达更复杂的非线性关系。线性回归模型本身只能学习特征的线性组合,但通过巧妙的特征构造,可以让"线性"模型具备拟合非线性模式的能力。

特征工程的典型示例

以房价预测为例。假设原始特征只有房屋的长度和宽度。直接用这两个特征进行线性回归,模型学习的是:

price=w1×length+w2×width+b\text{price} = w_1 \times \text{length} + w_2 \times \text{width} + bprice=w1×length+w2×width+b

但直觉告诉我们,房屋面积(长度 × 宽度)是比长度和宽度各自更重要的预测因素。因此,可以手动构造一个新特征:

x3=x1×x2=length×widthx_3 = x_1 \times x_2 = \text{length} \times \text{width}x3=x1×x2=length×width

x3x_3x3 作为额外特征加入模型后,模型可以学习到:

price=w1×length+w2×width+w3×area+b\text{price} = w_1 \times \text{length} + w_2 \times \text{width} + w_3 \times \text{area} + bprice=w1×length+w2×width+w3×area+b

这赋予了模型更大的表达能力。如果面积确实是关键预测因子,模型可以通过赋予 w3w_3w3 较大的权重来利用这一信息。

另一个例子是,如果观察到房价与面积的关系不是严格线性的——大面积房屋的单价可能更高(地段溢价)——可以构造面积的平方项 x3=x12x_3 = x_1^2x3=x12,让模型能够学习二次关系。

特征工程与领域知识

特征工程高度依赖领域知识。对房价预测,了解房地产市场的人知道哪些因素重要;对医疗诊断,临床医生知道哪些生理指标与疾病相关。优秀的特征工程师需要深入理解业务背景,才能构造出真正有价值的特征。这也是机器学习实践中"艺术"成分最浓的环节之一。


第 2-8 课:多项式回归(Polynomial Regression)

课程概述

多项式回归是特征工程的一种特殊形式,通过引入原始特征的高次幂项,让线性回归模型能够拟合非线性关系。这是从线性模型迈向非线性建模的重要一步。

多项式回归的核心思想

多项式回归的关键洞见在于:线性回归中的"线性"指的是对参数 w\mathbf{w}w 是线性的,而不是对输入特征 xxx 是线性的。因此,只要将高次项(如 x2,x3x^2, x^3x2,x3)或交互项(如 x1⋅x2x_1 \cdot x_2x1x2)作为新的"特征",线性回归模型就可以拟合这些特征的非线性组合。

单变量多项式回归

以单变量场景为例,原始特征为 xxx(房屋面积)。如果数据呈现曲线关系,可以构造二次特征:

fw,b(x)=w1x+w2x2+bf_{\mathbf{w},b}(x) = w_1 x + w_2 x^2 + bfw,b(x)=w1x+w2x2+b

这等价于将 x2=x2x_2 = x^2x2=x2 作为一个新特征,然后对 xxxx2x_2x2 做线性回归。模型可以学习二次曲线关系。

如果需要更复杂的曲线,可以引入更高次项:

fw,b(x)=w1x+w2x2+w3x3+bf_{\mathbf{w},b}(x) = w_1 x + w_2 x^2 + w_3 x^3 + bfw,b(x)=w1x+w2x2+w3x3+b

高次项使模型能够拟合更复杂的曲线形状,如 S 形曲线或带拐点的曲线。

多变量多项式回归

在多变量场景中,除了各特征的高次幂项,还可以引入交互项(Interaction Terms)。例如,对于特征 x1x_1x1(面积)和 x2x_2x2(卧室数),可以构造:

x3=x1⋅x2x_3 = x_1 \cdot x_2x3=x1x2

交互项表示两个特征的联合效应。例如,大面积且卧室多的房屋可能具有超线性溢价(豪宅效应),这种效应无法被单独的 x1x_1x1x2x_2x2 捕捉,但可以通过交互项 x1⋅x2x_1 \cdot x_2x1x2 来建模。

特征缩放的重要性

引入多项式特征后,特征缩放变得尤为重要。原因在于:如果原始特征 xxx 的范围是 [1,10][1, 10][1,10],那么 x2x^2x2 的范围是 [1,100][1, 100][1,100]x3x^3x3 的范围是 [1,1000][1, 1000][1,1000]。不同幂次项的数值范围差异巨大,如果不进行缩放,梯度下降的收敛会非常困难。因此,在多项式回归中,特征缩放是几乎必须的预处理步骤。

模型复杂度与过拟合

选择多项式的次数需要权衡。次数太低(如只用线性项)可能导致欠拟合——模型过于简单,无法捕捉数据中的真实模式;次数太高(如用 10 次多项式拟合只有 10 个数据点的数据集)可能导致过拟合——模型过于复杂,不仅拟合了数据的真实模式,还拟合了数据中的噪声,导致在新数据上表现很差。吴恩达在后续课程中会深入讨论过拟合问题及正则化等解决方法。


第 2-9 课:本周总结(Week 2 Summary)

课程概述

这一课对 Week 2 的全部内容进行了系统性回顾,帮助学习者梳理多变量线性回归的完整知识体系。

本周核心内容回顾

Week 2 的核心主题是多变量线性回归,从单变量场景自然扩展到多变量场景。主要内容包括:

  1. 多特征表示:将多个输入特征组织为特征向量,预测函数表示为参数向量与特征向量的点积加偏置。

  2. 向量化:利用 NumPy 等库进行矩阵运算,避免显式循环,大幅提升计算效率。这是高效实现机器学习算法的关键技能。

  3. 多元梯度下降:对每个参数分别求偏导数,同步更新所有参数。向量化实现使得大规模数据的梯度下降计算变得可行。

  4. 特征缩放:通过最大最小归一化或 Z-score 标准化,将不同量纲的特征变换到相近范围,加速梯度下降收敛。特征缩放不影响最终预测精度,只优化优化过程。

  5. 收敛判断与学习率选择:通过学习曲线可视化监控收敛状态,通过系统性的学习率搜索找到合适的步长。

  6. 特征工程:利用领域知识构造新特征,赋予线性模型更强的表达能力。

  7. 多项式回归:通过引入高次幂项和交互项,让线性回归模型拟合非线性关系。特征缩放在多项式回归中尤为重要。

从概念到实践的衔接

Week 2 的理论内容为后续课程奠定了坚实基础。从 Week 3 开始,课程将引入分类问题,从线性回归过渡到逻辑回归,学习如何预测离散类别。Week 2 中掌握的向量化、梯度下降、特征缩放等技能将在后续课程中反复使用。


第 2-10 课:实验室练习(Optional Lab)

课程概述

这一课介绍了 Week 2 配套的 Jupyter Notebook 实验练习,帮助学习者通过动手实践巩固多变量线性回归的概念和算法。

实验内容

Week 2 的实验包括多个可选练习,涵盖以下主题:

多特征线性回归实现:在 Python 中实现多特征版本的预测函数、成本函数和梯度下降算法,与单变量版本进行对比,体会向量化带来的简洁性和效率提升。

特征缩放实践:对包含大范围差异特征的数据集,分别用未缩放和缩放后的数据运行梯度下降,对比收敛速度和最终参数,直观感受特征缩放的作用。

学习率调参实验:对同一数据集尝试多个不同的学习率,绘制各自的学习曲线,观察过小、过大和合适学习率的不同表现,掌握学习率选择的实践经验。

特征工程与多项式回归:在一个呈现非线性关系的数据集上,分别用线性模型和多项式特征模型进行拟合,对比拟合效果,理解特征工程如何增强模型表达能力。

综合练习:将以上所有技能综合应用到一个完整的房价预测任务中,从数据预处理、特征工程、模型训练到预测评估,完成端到端的机器学习流程。

实验学习建议

吴恩达建议学习者在实验过程中主动修改代码、调整参数、观察结果变化。例如,在特征缩放实验中,可以尝试不同的缩放方法(最大最小归一化 vs Z-score 标准化),观察它们对梯度下降收敛的影响;在学习率实验中,可以尝试极端的学习率值(如 α=10\alpha = 10α=10α=10−10\alpha = 10^{-10}α=1010),亲眼观察发散和缓慢收敛的现象。这种"破坏性实验"能够加深对算法行为的直觉理解。


第 21-30 课 知识体系总结

课程内容定位

这 10 个课时完成了从单变量线性回归到多变量线性回归的扩展,是监督学习基础理论的核心组成部分。课程不仅介绍了数学公式,更强调了工程实践中的关键技能——向量化、特征缩放、学习率调参和特征工程。

核心概念汇总

多变量线性回归的核心问题可以概括为:当有多个输入特征时,如何高效地训练线性模型并使其具有良好的预测性能?围绕这个问题,课程形成了以下关键技术体系。

模型表示:多特征线性回归的预测函数为 fw,b(x)=w⋅x+bf_{\mathbf{w},b}(\mathbf{x}) = \mathbf{w} \cdot \mathbf{x} + bfw,b(x)=wx+b,其中 w\mathbf{w}wnnn 维参数向量,x\mathbf{x}xnnn 维特征向量,bbb 是标量偏置项。

向量化计算:利用矩阵运算一次性处理所有样本,避免显式循环。设计矩阵 X\mathbf{X}Xm×nm \times nm×n)与参数向量 w\mathbf{w}wn×1n \times 1n×1)的矩阵乘法一次性得到所有 mmm 个样本的预测值。

梯度下降:对每个参数 wjw_jwj 求偏导数,同步更新所有参数。向量化实现使得大规模数据的优化变得高效可行。

特征缩放:将不同量纲的特征变换到相近范围,消除梯度下降中的数值不平衡问题,显著加速收敛。常用方法包括最大最小归一化(缩放到 [0,1][0,1][0,1])和 Z-score 标准化(均值为 0,标准差为 1)。

收敛监控:通过学习曲线可视化成本函数 JJJ 的下降过程,判断算法是否收敛。自动收敛测试通过设置阈值 ϵ\epsilonϵ 实现提前停止。

学习率选择:学习率过小导致收敛缓慢,学习率过大导致振荡或发散。推荐从 0.0010.0010.001 开始按 3 倍倍数递增搜索,找到使 JJJ 稳定单调递减的最大学习率。

特征工程:基于领域知识构造新特征,如交互项、幂次项等,增强模型表达能力。好的特征工程往往比复杂算法更能提升性能。

多项式回归:通过引入高次幂项和交互项,使线性回归模型能够拟合非线性关系。引入高次项后特征缩放尤为重要,且需注意模型复杂度与过拟合的权衡。

知识结构图

多变量线性回归(Multiple Linear Regression)
│
├── 模型表示
│   ├── 特征向量:x = [x₁, x₂, ..., xₙ]
│   ├── 参数向量:w = [w₁, w₂, ..., wₙ]
│   └── 预测函数:f_w,b(x) = w·x + b
│
├── 向量化(Vectorization)
│   ├── 目的:计算效率(避免显式循环)
│   ├── 设计矩阵 X(m×n)
│   ├── 批量预测:f = Xw + b
│   └── 批量梯度:∂J/∂w = (1/m) Xᵀe
│
├── 梯度下降(Gradient Descent)
│   ├── 成本函数:J(w,b) = (1/2m) Σ(f(x⁽ⁱ⁾) - y⁽ⁱ⁾)²
│   ├── 偏导数:∂J/∂wⱼ = (1/m) Σ(f(x⁽ⁱ⁾) - y⁽ⁱ⁾) xⱼ⁽ⁱ⁾
│   ├── 更新规则:wⱼ := wⱼ - α·(∂J/∂wⱼ)
│   └── 关键:同步计算所有梯度,再统一更新
│
├── 特征缩放(Feature Scaling)
│   ├── 目的:加速梯度下降收敛(不影响最终精度)
│   ├── 最大最小归一化:[0, 1]
│   └── Z-score 标准化:均值 0,标准差 1
│
├── 收敛与学习率
│   ├── 学习曲线:可视化 J 随迭代的变化
│   ├── 自动收敛:|J_new - J_old| < ε
│   ├── 学习率过小:收敛缓慢
│   ├── 学习率过大:振荡或发散
│   └── 选择策略:从 0.001 开始,3 倍递增搜索
│
├── 特征工程(Feature Engineering)
│   ├── 核心:基于领域知识构造新特征
│   ├── 示例:面积 = 长度 × 宽度
│   └── 目的:增强模型表达能力
│
└── 多项式回归(Polynomial Regression)
    ├── 核心:引入高次幂项和交互项
    ├── 示例:f(x) = w₁x + w₂x² + w₃x³ + b
    ├── 特征缩放尤为重要(幂次范围差异大)
    └── 复杂度权衡:欠拟合 vs 过拟合

与后续课程的衔接

Week 2 建立的多变量线性回归框架是后续所有监督学习算法的基础。从 Week 3 开始,课程将引入分类问题,学习逻辑回归(Logistic Regression)——虽然名字里有"回归",但它实际上是解决分类问题的算法。逻辑回归中的梯度下降、特征缩放、特征工程等概念与 Week 2 完全一致,只是预测函数和成本函数的形式不同。Week 2 中掌握的向量化技能将在神经网络等更复杂的模型中发挥更大的价值。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值