机器学习:过拟合、神经网络与模型构建

来源:05_09-28_P5-课件.pptx

参考教材:《Python语言程序设计基础(第三版)》

本文件按原课件的章节标题和内容顺序归纳结构,并标注与教材知识点的对应关系,未修改原 PPT。PPT 页码指 PowerPoint 中从 1 开始的幻灯片顺序;教材页码指书本正文印刷页码,不等同于 PDF 阅读器显示的文件页序。

本课件接续 P3、P4 的机器学习主线,讲授第 4–6 章:过拟合与正则化、神经网络基础、模型构建(激活函数、Softmax、Adam)与模型评估。课件正文以英文术语和图示为主,58 页中有 40 页是整页图片、没有可检索的文字层。因此下文把教材对应关系分为“编程基础支撑”和“教材未覆盖”两类,不把机器学习算法与 Python 语法章节强行等同;页码索引依据全部 58 页的图文内容建立。

一、整体结构

原课件共 58 页,分属 Chapter 4、Chapter 5、Chapter 6 三章,没有课程总目录页。为便于查找与复习,归纳为以下 8 个模块。

模块

原课件页码

页数

原课件章节

内容范围

章节封面

1

1

Chapter 4

过拟合与欠拟合

1. 过拟合、欠拟合与偏差方差

2–8

7

Chapter 4

低阶欠拟合、高阶过拟合、分类中的过拟合、增加数据、特征选择

2. 正则化

9–14

6

Chapter 4

惩罚项、正则化参数 λ、λ 过大的后果、正则化梯度下降、正则化逻辑回归

3. 神经网络基础

15–24

10

Chapter 5

高级学习算法总览、神经元类比、算力与数据、需求预测、多层网络、人脸识别

4. 层的记号与前向传播

25–32

8

Chapter 5

a^[l]、w^[l]、b^[l]、向量化写法、四层网络、手写数字识别

5. 激活函数

33–39

7

Chapter 6

线性、Sigmoid、ReLU;输出层与隐藏层的选择;为什么必须非线性

6. 多分类与 Softmax

40–44

5

Chapter 6

MNIST、二分类与多分类、Softmax 公式、交叉熵、Softmax 网络

7. Adam 优化算法

45–47

3

Chapter 6

学习率自适应、梯度方向与振荡、逐参数学习率

8. 模型评估与选择

48–58

11

Chapter 6

泛化失败、训练/测试划分、回归与分类的误差、训练/交叉验证/测试集、按 J_cv 选模型

二、分节索引

章节封面(第 1 页)

第 1 页为 Chapter 4: Overfitting and underfitting 标题页,正文从第 2 页直接开始。

模块 1:过拟合、欠拟合与偏差方差(第 2–8 页)

页码

内容要点

2

回归示例:用 w₁x+b 或三次多项式拟合房价—面积数据,训练集都没拟合好,属于欠拟合(underfit)、高偏差(high bias)

3

用四次多项式 w₁x+w₂x²+w₃x³+w₄x⁴+b 可以穿过每个训练点,训练集拟合极好,但新样本会偏离,属于过拟合(overfit)、高方差(high variance)

4

分类中的过拟合:只用 x₁、x₂ 的线性边界欠拟合;加入 x₁²、x₁x₂、x₂² 后边界合适;加入更高次项后边界扭曲、过拟合

5

增加训练样本:同样的过拟合模型,在样本变多后曲线趋于合理

6

特征选择的思路:从 x₁–x₁₀₀ 中只保留真正相关的特征(面积、卧室数、楼层、房龄等),但被删掉的特征可能恰好有用

7

Addressing overfitting:正式引出“如何对付过拟合”

8

三类可用策略:收集更多数据、选择特征、缩小参数规模(正则化)

课件用“同一组数据、不同复杂度的模型”来说明:模型容量太小会欠拟合,容量太大会过拟合,中间复杂度才对应合适的泛化能力。

模块 2:正则化(第 9–14 页)

页码

内容要点

9

正则化的定义:在代价函数中加惩罚项,促使参数取较小值,得到更简单、泛化更好的模型

10

正则化后的代价函数 J(w,b)=1/(2m)·Σ(f(x)-y)² + λ/(2m)·Σwⱼ²;λ 是正则化参数,λ>0

11

λ 取得非常大时,算法会把所有权重压到接近 0,f(x)≈b,变成一条水平线,导致欠拟合;按惯例不对 b 施加惩罚,因为影响很小

12

加入额外的正则化项:把 λ/(2m)·Σwⱼ² 接到原来的平方误差代价后面

13

带正则项的梯度下降:wⱼ 的更新中多出 (λ/m)·wⱼ 一项,b 的更新不变,仍需同步更新

14

正则化逻辑回归:交叉熵代价加 λ/(2m)·Σwⱼ²,梯度下降照常迭代,b 不正则化

正则化的作用可以理解为“每一步都把权重往 0 的方向轻轻拉一下”,权重不会突然变成 0,而是被限制在较小范围。

模块 3:神经网络基础(第 15–24 页)

页码

内容要点

15

Chapter 5: Advanced learning algorithms—Neural networks 标题页

16

本章总览:神经网络、构建算法的实用建议、决策树

17

神经网络的来历:模仿大脑;20 世纪 80 年代到 90 年代初流行,90 年代末转冷,2005 年前后复兴;应用从语音识别扩展到图像识别、自然语言处理

18

生物神经元(树突、胞体、轴突)与简化数学模型对照:多个数值输入,一个数值输出

19

“为什么是现在”:GPU 算力、数据量增长,以及大中小规模神经网络随数据量增加的性能曲线

20

需求预测:单个神经元计算 a=1/(1+e^-(wx+b)),Sigmoid 把输出压到 0–1,表示“成为畅销品”的概率

21

需求预测神经网络:输入层 4 个数(价格、运费、营销、材质),隐藏层 3 个神经元(可负担性、知名度、感知质量),输出层 1 个数(概率)

22

多个隐藏层叠加形成多层感知机(multi-layer perceptron),网络结构可以有多种层数

23

人脸识别示例:1000 行像素作为输入,说明网络如何从原始像素一路算到“是不是某人”

24

各层激活的含义:浅层学到边缘,中间层学到眼角、鼻梁等面部形状,深层组合出整张人脸,即“更高层的特征”

这一模块的重点是建立“层—神经元—激活”的直观图像:每一层把上一层的输出做一次线性组合再套激活函数,层层堆叠得到越来越抽象的特征。

模块 4:层的记号与前向传播(第 25–32 页)

页码

内容要点

25

层的编号记法:输入层为 layer 0,第一隐藏层为 layer 1;z^[1]=w^[1]·x+b^[1],a^[1]=g(z^[1])

26

向量化写法:a^[l]=g(w^[l]·a^[l-1]+b^[l]);z=w·a+b 中 w 是矩阵、a 是向量,输出的 a^[l] 是标量或向量

27

最后一层输出 0.84,与阈值比较后预测类别 1 或 0

28

四层网络的结构图:layer 0 为输入层,layer 1–3 为隐藏层,layer 4 为输出层

29

更复杂的网络:把 a^[1] 到 a^[4] 逐层展开写出

30

神经网络推理即前向传播(forward propagation):从输入层开始,逐层算到输出层

31

手写数字识别:25×25 像素图像展平成 400 维输入;层 1 有 25 个单元、层 2 有 15 个单元、层 3 有 1 个单元

32

手写数字识别(续):a^[3]≥0.5 判为“是数字 1”,否则“不是”

记号是这一模块最容易出错的地方:[l] 表示第几层,(i) 表示第几个样本,两者不要混用。

模块 5:激活函数(第 33–39 页)

页码

内容要点

33

Chapter 6: Model construction 标题页

34

激活函数:Sigmoid 之外的替代选择;仍以需求预测为例

35

三种常见激活函数:线性(identity)g(z)=z、Sigmoid g(z)=1/(1+e⁻ᶻ)、ReLU g(z)=max(0,z)

36

输出层如何选:二分类用 Sigmoid,一般回归用线性激活,目标值非负的回归用 ReLU

37

隐藏层如何选:ReLU 最常用,因为代价函数地形平坦时它学习更快

38

为什么需要激活函数:如果每层都只做线性变换,多层叠加仍然等价于一次线性变换

39

线性示例:a^[1]=w^[1]x+b^[1]、a^[2]=w^[2]a^[1]+b^[2] 合并后仍是 wx+b,等于线性回归

结论是:非线性激活函数才是“深度”有意义的前提;没有它,再多的层也只是同一个线性模型。

模块 6:多分类与 Softmax(第 40–44 页)

页码

内容要点

40

MNIST 手写数字示例:10 个类别,目标 y 可以取两个以上的值,属于多分类问题

41

二分类与多分类的对比:二分类输出一个概率,多分类要同时给出各类别的概率

42

Softmax 回归:aⱼ=e^{zⱼ}/Σe^{z_k},四类示例中 a₁…a₄ 之和为 1

43

代价函数对比:逻辑回归用 -y·log a -(1-y)·log(1-a);Softmax 用交叉熵 -log aⱼ(y=j 时)

44

带 Softmax 输出的神经网络:25 个单元、15 个单元的 ReLU 隐藏层,输出层 10 个单元对应 10 类

Softmax 可以看作逻辑回归在多类别上的推广:当类别数为 2 时,它与 Sigmoid 版本等价。

模块 7:Adam 优化算法(第 45–47 页)

页码

内容要点

45

对比两种情形:梯度一直朝同一方向时希望加快(增大学习率),来回震荡时希望放慢(减小学习率)

46

Adam 的直觉:某个参数的梯度持续同号就增大该参数的学习率,频繁变号就减小

47

Adam 能自动调整学习率,而且为模型中的每个参数分别使用不同的学习率

Adam 解决的是“所有参数共用一个学习率”的僵硬问题,代价是要额外保存每个参数的梯度统计量。

模块 8:模型评估与选择(第 48–58 页)

页码

内容要点

48

过拟合的典型症状:模型在训练集上拟合得很好,但在训练集之外的新样本上失效

49

评估模型:把数据集分为 70% 训练集和 30% 测试集,分别记 m_train、m_test

50

线性回归的训练/测试流程:用训练集最小化代价得到 w、b,再分别计算测试误差和训练误差

51

同一组参数下,J_train 往往很低,J_test 往往偏高,差距反映泛化能力

52

分类问题的训练/测试流程:训练用交叉熵代价,测试和训练误差也用交叉熵计算

53

分类更常用的误差度量:测试集和训练集中被分错样本的比例

54

评估与选择模型:引入模型选择,以及训练集/交叉验证集/测试集三分

55

数据划分示例:60% 训练集、20% 交叉验证集、20% 测试集

56

三种误差的公式:J_train、J_cv(验证误差、dev error)、J_test

57

正确流程:在训练集上训练,按交叉验证误差挑选模型,最后只在测试集上评估一次

58

模型选择的结果示意:选出 J_cv 最低的那个模型

这一模块的核心是“训练误差不能用来选模型”:模型越复杂,训练误差总会更低,只有交叉验证误差才能反映对新数据的表现。

三、PPT 知识点与教材对应

PPT 页码

PPT 知识点

教材对应章节

教材印刷页码

对应层级与说明

2–5

欠拟合、过拟合、高偏差、高方差、模型复杂度

附录 C 数据处理和挖掘(数字版)

395

主题相关但无正文。附录 C 的学习目标提到机器学习基本概念,详细内容需扫码阅读,不在当前 PDF 中

6–8

特征选择、增加数据、缩小参数规模

6.2 列表类型;6.4 元组类型;7.5 二维数据格式化

205–215、251–253

编程基础支撑。教材讲如何用列表、元组和二维结构组织特征,不讲特征选择方法

9–14

正则化、正则化参数 λ、正则化代价函数与梯度下降

3.2 数字运算;4.4 循环结构;5.1 函数定义;6.2 列表类型

91–95、144–148、164–167、205–210

编程基础支撑。求和、循环和函数可以把惩罚项写进代价计算;正则化理论由 PPT 提供

15–17

神经网络的概念、历史与应用演进

附录 B.1 大语言模型概述

377–378

部分相关。教材附录只在大语言模型背景下提到神经网络,不介绍其结构与训练

18–24

神经元类比、GPU 与数据、需求预测网络、多层网络、人脸识别

5.1–5.2 函数定义与调用;6.2 列表类型

164–170、205–210

编程基础支撑。把一层写成函数、把一层中的多个神经元写成列表,是教材能提供的最小实现基础

25–30

层的记号、向量化写法、四层网络、前向传播

2.2.4 表达式和赋值语句;6.2 列表类型;6.4 元组类型;7.5 二维数据格式化

55–56、205–215、251–253

编程基础支撑。矩阵/向量在教材中以二维列表形式出现,前向传播可用循环逐层实现

31–32

手写数字识别、像素展平、阈值判别

3.2 数字运算;6.2 列表操作;7.5 二维数据格式化;8.5.2 第三方库安装

91–95、205–210、251–253、286

编程基础支撑。教材可支持读取图像数据、展平与条件判断;实际实现通常依赖 NumPy 等第三方库

33–39

线性、Sigmoid、ReLU 激活函数;输出层与隐藏层选择;非线性必要性

2.2.4 表达式和赋值语句;3.2 数字运算;4.1 分支结构;5.1 函数定义

55–56、91–95、130–133、164–167

编程基础支撑。指数运算、max 与条件分支足以写出这三个激活函数;选择原则不在教材中

40–44

多分类、Softmax、交叉熵代价

3.2 数字运算;6.2 列表类型;8.5.2 第三方库安装

91–95、205–210、286

编程基础支撑。可用列表存各类得分、用循环求指数和;Softmax 的数值稳定性需借助库函数

45–47

Adam 优化、逐参数学习率、梯度方向与振荡

2.2.4 表达式和赋值语句;4.4 循环结构

55–56、144–148

算法实现基础。循环与赋值可实现参数迭代;Adam 的偏差修正与动量项由 PPT 之外的资料补充

48–58

训练误差与测试误差、70/30 划分、60/20/20 划分、J_cv 选择模型

4.1 分支结构;4.4 循环结构;5.1 函数定义;7.4 一维数据格式化

130–133、144–148、164–167、248–253

编程基础支撑。列表切片可以实现数据划分,循环可以累计误差;模型选择的方法论由 PPT 提供

对应关系总结

  • 机器学习理论完全以 PPT 为主:教材附录 C 只有学习目标与二维码,没有损失函数、正则化、反向传播和模型选择的正文。

  • 教材提供实现工具:数字运算、分支、循环、函数、列表与二维数据,足以把课件中的公式逐条写成 Python 代码。

  • 最值得配套阅读的教材部分:第 3 章数字运算、第 4 章程序控制结构、第 5 章函数、第 6 章组合数据类型、第 7 章数据格式化。

  • 需要外部补充的内容:反向传播的推导、Adam 的完整更新公式、正则化对偏差方差的定量影响,教材和本课件都没有展开。

四、课件提到、但本文件未展开的内容

课件在章节推进中把它自己列为后续主题,但本文件到此为止没有对应正文页:

主题

课件中的位置

说明

偏差与方差的诊断

第 48–58 页之后

本课件只讲到“用 J_cv 选模型”,诊断高偏差/高方差、学习曲线、性能基线留给下一份课件

正则化参数 λ 的选取

第 10–11 页

只说明 λ 过大会欠拟合,没有给出交叉验证选 λ 的流程

Softmax 的数值稳定性

第 42–43 页

只给公式,未讲减去最大值等实现技巧

Adam 的完整公式

第 45–47 页

只给直觉与调节策略,没有动量项、二阶矩估计和偏差修正的推导

反向传播与参数更新

第 25–32 页

只讲前向传播,反向传播在后续课件中才出现

五、复习时的关键辨析

  • 欠拟合与过拟合:欠拟合是训练集都没学好(高偏差),过拟合是训练集学得太好、新数据学不好(高方差)。训练误差低不代表模型好。

  • 加数据能解决什么:增加训练样本主要缓解过拟合;对欠拟合帮助有限,欠拟合应换更复杂的模型或更多特征。

  • 特征选择与正则化:特征选择是直接删掉特征,可能删掉有用的信息;正则化是保留全部特征但压低权重,通常更稳妥。

  • λ 的两个极端:λ=0 等于没有正则化;λ 极大时权重趋近 0,模型退化为常数 b,变成欠拟合。λ 要用验证集来选。

  • 为什么 b 不正则化:b 只控制整体平移,不决定曲线的弯曲程度,惩罚它对抑制过拟合几乎没有作用。

  • 正则化与“权重衰减”:梯度下降中多出的 (λ/m)wⱼ 让每次更新都把 wⱼ 按比例缩小一点,这正是 weight decay 的来源。

  • 层号与样本号:a^[l] 的方括号是层,x^(i) 的圆括号是样本。写公式时混用会把维度搞错。

  • 激活函数的作用:只有线性激活时,多层网络的复合仍是线性函数;隐藏层必须用非线性激活,“深度”才有意义。

  • ReLU 为什么更常用:z>0 时导数恒为 1,梯度不会像 Sigmoid 那样在两端饱和;z<0 时导数为 0,但实践中仍收敛得更好。

  • 输出层的选择:二分类用 Sigmoid,回归用线性,回归且目标非负用 ReLU,多分类用 Softmax。选错会让输出范围与任务不匹配。

  • Softmax 与逻辑回归:Softmax 是逻辑回归的多类别推广,类别数为 2 时两者等价;Softmax 的各类输出之和恒为 1。

  • Softmax 的损失:交叉熵只对正确类别那一项 -log aⱼ 求值,其余类别的概率通过分母间接受到影响。

  • Adam 的“自适应”:Adam 为每个参数单独维护学习率,不是全局统一调整;它不保证一定更好,调参成本也更高。

  • J_train 与 J_cv:J_train 随模型复杂度单调下降,不能用来比较模型;J_cv 才能反映泛化能力。

  • 测试集的用法:测试集只能在最后评估一次。反复用测试集挑模型,等于把测试集变成了验证集,评估结果会偏乐观。

  • 70/30 与 60/20/20:数据量小、不需要选超参数时用 70/30;需要比较多个模型或调 λ 时用 60/20/20,否则没有独立的验证集可用。

六、使用说明

  • 按主线复习:过拟合与偏差方差 → 正则化 → 神经网络结构 → 层的记号与前向传播 → 激活函数 → Softmax → Adam → 模型评估与选择。

  • 联系前两课:第 9–14 页的正则化建立在 P3 的平方误差代价和梯度下降上;第 43 页的交叉熵直接沿用 P4 的逻辑回归损失。

  • 注意图片页:58 页中有 40 页是整页图片,公式和图大多无法用文字搜索。本整理依据全部 58 页的图文内容建立索引,不代替对原图和公式的逐页学习。

  • 结合教材实现:需要把前向传播、激活函数或误差计算写成 Python 时,查教材第 3–7 章;机器学习理论仍以 PPT 为主。

  • 下一步:本课件停在“用 J_cv 选模型”,偏差/方差诊断、学习曲线与性能基线是紧接着的内容,等下一份课件补齐后再连起来看。