Machine Learning Specialization - Week 1, 9-20学习总结

Machine Learning Specialization --- Course 1, Week 1

第 9-20 课学习总结


课程基本信息

项目 内容
课程 Supervised Machine Learning: Regression and Classification
周次 Week 1 --- Linear Regression with One Variable
涵盖课时 P9 至 P20(共 12 个视频)
核心主题 线性回归模型、代价函数、梯度下降、学习率

线性回归模型(Linear Regression Model)

课程概述

本节通过房价预测、疾病预测等真实场景,演示了线性回归模型的基本形式与使用方式,是监督学习中回归问题的入门示例。

核心要点

线性回归是监督学习中最基础的回归模型,目标是通过已知的输入输出数据,学习出一个线性映射关系,用于对新输入进行连续值预测。

模型公式

fw,b(x)=wx+bf_{w,b}(x) = wx + bfw,b(x)=wx+b

其中 xxx 是输入特征,www 是权重(斜率),bbb 是偏置(截距),fw,b(x)f_{w,b}(x)fw,b(x) 是模型的预测输出。

使用场景

适用于输入与输出之间存在近似线性关系的连续值预测任务,例如根据房屋面积预测房价、根据肿瘤大小预测恶性概率等。

易混淆知识点

xxx 是训练数据中的输入特征,是固定不变的。www 和 bbb 是模型参数,是需要通过训练来学习的。两者在公式里都出现,但性质完全不同,xxx 不参与梯度下降更新。


代价函数(Cost Function)

课程概述

本节引入了代价函数的概念,说明了它在评估模型参数好坏中的作用,并介绍了线性回归中最常用的均方误差(MSE)形式。

核心要点

代价函数(Cost Function)用于衡量当前模型参数下,模型预测值与真实值之间的整体差距。代价函数值越小,说明当前参数下模型的预测越准确。

公式

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

其中 mmm 是训练样本总数,x(i)x^{(i)}x(i) 是第 iii 个样本的输入特征,y(i)y^{(i)}y(i) 是第 iii 个样本的真实标签。分母中的 222 是为了后续求导时消去平方带来的系数,不影响最优解的位置。

使用场景

均方误差是回归问题的标准代价函数。平方操作确保误差为正值,避免正负误差相互抵消,同时放大较大误差的惩罚力度,引导模型重点减少偏差较大的预测。

易混淆知识点

代价函数 J(w,b)J(w,b)J(w,b) 的自变量是 www 和 bbb,不是 xxx。训练数据 xxx 和 yyy 在计算时是已知常数,代入后 JJJ 只是关于 www 和 bbb 的二元函数。从图像上看,J(w,b)J(w,b)J(w,b) 对应一个三维曲面,横轴为 www,纵轴为 bbb,竖轴为 JJJ 的值。对于线性回归的均方误差,这个曲面是一个凸函数,形如碗状,只有唯一的全局最低点。


梯度下降(Gradient Descent)

课程概述

本节引入了梯度下降算法,解决了如何自动寻找最优模型参数的问题。在此之前,寻找最佳参数是一个手动枚举的过程;梯度下降提供了一种系统性的自动优化方法。

核心要点

梯度下降(Gradient Descent)是一种自动寻找代价函数最小值的优化算法。其核心思想是:从某个初始参数出发,每次计算当前位置代价函数的梯度(各参数方向上的偏导数),沿梯度反方向移动一小步,反复迭代,直到参数收敛至代价函数的最低点。

更新公式

每次迭代同时更新 www 和 bbb:

w:=w−α⋅∂J(w,b)∂ww := w - \alpha \cdot \frac{\partial J(w,b)}{\partial w}w:=w−α⋅∂w∂J(w,b)

b:=b−α⋅∂J(w,b)∂bb := b - \alpha \cdot \frac{\partial J(w,b)}{\partial b}b:=b−α⋅∂b∂J(w,b)

对于线性回归的均方误差,偏导数的展开形式为:

∂J∂w=1m∑i=1m(fw,b(x(i))−y(i))⋅x(i)\frac{\partial J}{\partial w} = \frac{1}{m}\sum_{i=1}^{m}\left(f_{w,b}(x^{(i)}) - y^{(i)}\right) \cdot x^{(i)}∂w∂J=m1i=1∑m(fw,b(x(i))−y(i))⋅x(i)

∂J∂b=1m∑i=1m(fw,b(x(i))−y(i))\frac{\partial J}{\partial b} = \frac{1}{m}\sum_{i=1}^{m}\left(f_{w,b}(x^{(i)}) - y^{(i)}\right)∂b∂J=m1i=1∑m(fw,b(x(i))−y(i))

关键细节:同时更新

www 和 bbb 必须同时更新,即先用当前的 www 和 bbb 分别计算出两个偏导数并存为临时变量,再统一赋值。若先更新 www 再用新的 www 去计算 bbb 的梯度,两个参数的梯度就不在同一个点上计算,会引入方向偏差。

收敛条件

当偏导数趋近于零时,参数更新量趋近于零,说明已到达(或接近)最低点。实践中通常设定一个极小阈值,当每轮 JJJ 的变化量小于该阈值时停止迭代,或直接设定最大迭代轮次。

易混淆知识点

梯度下降的迭代轮次之间是串行的,但每一轮内部对所有训练样本的求和计算是相互独立的,可以并行处理。这也是大规模训练时 GPU 能显著加速的原因------GPU 的大量并行核心可以同时处理不同样本的计算,而非加速迭代轮次本身。


学习率(Learning Rate)

课程概述

本节深入讲解了梯度下降更新公式中的超参数学习率 α\alphaα,分析了学习率过大或过小对训练过程的影响,帮助学习者理解如何合理设置这一关键参数。

核心要点

学习率(Learning Rate)是梯度下降更新公式中的超参数 α\alphaα,控制每次参数更新的步长大小,决定了沿梯度反方向移动多远。

与偏导数的关系

偏导数提供了两个信息:移动方向(正负号)和当前坡度的陡峭程度(绝对值大小)。学习率将偏导数值压缩为一个实际可用的步长,两者相乘的结果是本次参数的实际移动距离。

梯度下降有一个天然的自动减速特性:越接近最低点,坡度越平缓,偏导数绝对值越小,步长自然越小,无需人为干预。

学习率的影响

学习率过大时,每步移动距离过大,容易跨过最低点跑到对面更高处,下一步再跨回来,导致来回震荡甚至发散,代价函数不降反升。

学习率过小时,每步移动距离极小,收敛速度极慢,需要大量迭代轮次才能到达最低点,计算成本高。

使用场景

学习率是实践中最重要的超参数之一,需要根据具体任务调整。常见做法包括手动搜索、学习率衰减策略(训练过程中逐步减小学习率),以及使用 Adam 等自适应优化器自动调整每个参数的有效学习率。

易混淆知识点

学习率是人为设定的超参数,不是模型通过训练学习出来的参数。www 和 bbb 是模型参数,由梯度下降自动优化;α\alphaα 是超参数,需要人工设定或通过超参数搜索来确定。


完整案例:房价预测中的梯度下降

案例概述

以房价预测为例,完整演示从原始数据出发,经过参数初始化、代价函数计算、偏导数求解、参数更新,最终收敛到最优参数的全过程,将本节课所有核心概念串联为一个可计算的完整链路。

数据准备

已知两个训练样本:

样本 面积 xxx(千平方英尺) 真实房价 yyy(千美元)
1 1.0 300
2 2.0 500

用 NumPy 表示为:

python 复制代码
x_train = np.array([1.0, 2.0])
y_train = np.array([300.0, 500.0])

初始化参数

人为给定初始值,这里选择全零初始化:

w=0,b=0w = 0, \quad b = 0w=0,b=0

第一轮迭代

第一步:计算预测值

将当前参数代入线性回归模型:

f0,0(x(1))=0×1.0+0=0f_{0,0}(x^{(1)}) = 0 \times 1.0 + 0 = 0f0,0(x(1))=0×1.0+0=0

f0,0(x(2))=0×2.0+0=0f_{0,0}(x^{(2)}) = 0 \times 2.0 + 0 = 0f0,0(x(2))=0×2.0+0=0

第二步:计算代价函数

J(0,0)=12×2(0−300)2+(0−500)2=90000+2500004=85000J(0, 0) = \frac{1}{2 \times 2}\left(0 - 300)\^2 + (0 - 500)\^2\\right = \frac{90000 + 250000}{4} = 85000J(0,0)=2×21(0−300)2+(0−500)2=490000+250000=85000

代价很大,说明当前参数很差,需要更新。

第三步:计算偏导数

∂J∂w=12(0−300)×1.0+(0−500)×2.0=−300+(−1000)2=−650\frac{\partial J}{\partial w} = \frac{1}{2}\left(0 - 300) \\times 1.0 + (0 - 500) \\times 2.0\\right = \frac{-300 + (-1000)}{2} = -650∂w∂J=21(0−300)×1.0+(0−500)×2.0=2−300+(−1000)=−650

∂J∂b=12(0−300)+(0−500)=−8002=−400\frac{\partial J}{\partial b} = \frac{1}{2}\left(0 - 300) + (0 - 500)\\right = \frac{-800}{2} = -400∂b∂J=21(0−300)+(0−500)=2−800=−400

偏导数为负,说明沿 www 和 bbb 增大的方向代价函数会下降,需要增大 www 和 bbb。

第四步:同时更新参数

设学习率 α=0.01\alpha = 0.01α=0.01,先计算临时值再同时赋值:

w:=0−0.01×(−650)=6.5w := 0 - 0.01 \times (-650) = 6.5w:=0−0.01×(−650)=6.5

b:=0−0.01×(−400)=4.0b := 0 - 0.01 \times (-400) = 4.0b:=0−0.01×(−400)=4.0

多轮迭代后的收敛

经过多轮迭代,www 和 bbb 不断调整,代价函数持续下降。最终收敛到:

w≈200,b≈100w \approx 200, \quad b \approx 100w≈200,b≈100

验证:

f200,100(1.0)=200×1.0+100=300✓f_{200,100}(1.0) = 200 \times 1.0 + 100 = 300 \quad \checkmarkf200,100(1.0)=200×1.0+100=300✓

f200,100(2.0)=200×2.0+100=500✓f_{200,100}(2.0) = 200 \times 2.0 + 100 = 500 \quad \checkmarkf200,100(2.0)=200×2.0+100=500✓

预测值与真实值完全吻合,代价函数 J≈0J \approx 0J≈0,梯度下降收敛完成。

案例总结

这个案例完整体现了本节课的核心链路:

训练数据线性回归模型代价函数衡量误差偏导数指示下降方向学习率控制步长同时更新参数收敛得到最优 www、bbb

由于线性回归的均方误差代价函数是凸函数(碗状曲面),梯度下降从任意初始点出发都能收敛到唯一的全局最优解,这也是本节课选用线性回归作为入门示例的原因。


第 9-20 课知识体系总结

核心概念汇总

本节课围绕"如何让模型自动找到最优参数"这一核心问题,依次引入了四个相互关联的概念。

线性回归模型定义了预测函数的形式 fw,b(x)=wx+bf_{w,b}(x) = wx + bfw,b(x)=wx+b,确定了需要学习的参数是 www 和 bbb。代价函数 J(w,b)J(w,b)J(w,b) 定义了衡量参数好坏的标准,将"预测准不准"量化为一个可以优化的数值目标。梯度下降提供了自动最小化代价函数的迭代算法,通过反复计算偏导数并更新参数来逼近最优解。学习率 α\alphaα 作为梯度下降的控制参数,决定了每次迭代的步长大小,是影响训练稳定性和收敛速度的关键超参数。

知识结构图

复制代码
线性回归 + 梯度下降
│
├── 模型:f(x) = wx + b
│   ├── 输入:特征 x(固定,来自训练数据)
│   └── 参数:w(权重)、b(偏置)← 需要学习
│
├── 代价函数:J(w, b) = (1/2m) Σ (f(x⁽ⁱ⁾) - y⁽ⁱ⁾)²
│   ├── 自变量:w 和 b
│   ├── 图像:三维碗状凸曲面
│   └── 目标:找到使 J 最小的 w 和 b
│
├── 梯度下降
│   ├── 核心操作:沿偏导数反方向更新参数
│   ├── 更新规则:w := w - α·∂J/∂w(同时更新 b)
│   ├── 收敛标志:偏导数趋近于零,参数不再变化
│   └── 关键约束:w 和 b 必须同时更新
│
└── 学习率 α
    ├── 作用:控制每次参数更新的步长
    ├── 过大 → 震荡发散
    ├── 过小 → 收敛极慢
    └── 性质:超参数,需人工设定,不由训练学习

本总结基于 Coursera 平台上吴恩达(Andrew Ng)Machine Learning Specialization --- Course 1, Week 1 中第 P9 至 P20 课的视频内容。

相关推荐
神奇霸王龙2 分钟前
2026旗舰六阶段MCP流水线实战指南
人工智能·ai·ai作画·prompt·aigc·mcp
山河不见老5 分钟前
【Cursor 、Qoder安装问题】Cursor 、Qoder安装卡在“正在准备安装”问题排查及解决
人工智能·windows·编辑器
新知图书5 分钟前
2.3 开发工作流
人工智能·agent·ai agent·智能体
tuanxiang7 分钟前
用免费 AI 改写工具处理批量文案的踩坑记录,附完整降噪脚本
人工智能
小邓的技术笔记8 分钟前
DeepSeek 大模型落地应用与场景实战指南
大数据·人工智能
石榴14 分钟前
从 Codex + Obsidian 到本地 RAG:我的私人知识库实践
人工智能
QZSJTR19 分钟前
技术解析|从SEO到GEO:生成式搜索时代实体企业数字化适配方案
人工智能
宁风NF19 分钟前
JavaScript:内存、垃圾回收、性能优化
开发语言·前端·javascript·学习·性能优化·es6
安逸sgr20 分钟前
如何减少 Prompt 引起的幻觉和答非所问?
人工智能·ai·大模型·prompt·agent·智能体
Vince的修炼之路20 分钟前
大模型 Skills 技术深度分析
人工智能·架构