准大二学生从0开始学AI——机器学习Day7——course1收官
type: daily_note
title: Phase 2.1 Day 7 — 过拟合 + 正则化
date: 2026-07-27
person: 吴恩达
phase: "2.1"
day: 7
topics:
[
过拟合,
高偏差 vs 高方差,
正则化,
λ参数,
正则化代价函数,
正则化梯度下降,
正则化线性回归,
正则化逻辑回归,
]
---
# 2026-07-27 学习笔记
## 笔记区(学的时候随手记)
### 核心观点
- **过拟合的本质**:模型把训练数据里的噪声也当规律学了。记住了每个样本的"个性",没学到"共性"。训练误差很小,但测试误差很大
- **高偏差(欠拟合)**:模型太简单,训练误差就很大(如用直线拟合非线性数据)
- **高方差(过拟合)**:模型太复杂,训练误差很小但测试误差很大(如高次多项式穿过了每个点但振荡剧烈)
- **正则化的思路**:不减少特征数量,但惩罚过大的权重。让模型"别太自信",保持泛化能力
- **λ 参数**控制惩罚力度:
- λ=0 → 不罚 → 过拟合
- λ 适中 → 大权重被压住,小权重保留 → 刚刚好
- λ 太大 → 所有 w 被压到接近 0,退化为 f(x)≈b 的水平线 → 欠拟合
- **只正则化 w,不正则化 b**:b 只控制 y 轴截距,不影响曲线形状。用户原话:"b 只是常数,只与 x=0 时函数与 y 轴的交点有关,其实是不影响拟合的,真正影响拟合效果的是 w"
- **逻辑回归和线性回归的正则化表达式完全一样**,只差 f(x)(和 Day 6 学的逻辑回归梯度下降结构相同一脉相承)
### 关键公式
**正则化代价函数:**
```
J_reg(w,b) = 原始 J(w,b) + (λ/2m) × Σwⱼ²
```
**正则化后的梯度下降(线性回归):**
```
wⱼ = wⱼ(1 - αλ/m) - α × 1/m × Σ(f(xⁱ)-yⁱ)xⱼⁱ
b = b - α × 1/m × Σ(f(xⁱ)-yⁱ) ← b 不变
```
每次更新前 wⱼ 先乘以略小于 1 的数——**每次迭代都往 0 方向拉一点**。
**正则化梯度下降(逻辑回归):**
公式完全一样,只把 `f(x) = wx + b` 换成 `f(x) = σ(wx+b) = 1/(1+e⁻ᶻ)`
### 关键方法/流程
**解决过拟合的三种方式:**
1. 增加训练数据
2. 减少特征数量(特征选择)
3. **正则化**(推荐)——保留所有特征,只压权重
**λ 参数选择:** 和选学习率类似,实验性调参。从 0.01 开始试,观察训练集和验证集的表现差距
### 实战记录
- **Lab08 Overfitting**:可视化高次多项式如何"硬穿"所有数据点
- **Lab09 Regularization**:对比不同 λ 取值下决策边界的变化——λ 越大边界越平滑
---
## 线索区(学完后合上材料,自问自答)
**Q: 正则化代价函数为什么后面要加东西?加的是什么?**
A: 加的是**一项**:(λ/2m) × Σwⱼ²。梯度下降有两个目标互相拉扯:①让原始 J 小(拟合好)②让 Σwⱼ² 小(权重小)。如果某个 w 很大,整体 J_reg 就下不去,模型被迫找折中路。
**Q: λ=0 和 λ 很大分别发生什么?**
A: λ=0 → 惩罚项消失,只优化原始 J → 过拟合。λ 很大 → (λ/2m) × Σwⱼ² 占主导,所有 w 被压到接近 0,模型退化为 f(x)≈b 的水平线 → 欠拟合。λ 越大 w 越小、模型越简单,不是越复杂。
**Q: 逻辑回归和线性回归的正则化表达式一模一样?**
A: 对,一模一样。和 Day 6 学的道理一样——梯度下降是通用优化方法,换模型只换了 f(x)。线性回归 f(x)=wx+b,逻辑回归 f(x)=σ(wx+b)。
**Q: b 不正则化?**
A: 对。b 只控制曲线在 y 轴上的截距,不影响曲线形状。罚 w 就够控制拟合的复杂程度了,罚 b 多此一举。
**Q: 过拟合的决策边界长什么样?**
A: 决策边界应该是全部避开不需要的部分,完美拟合我们需要的数据,但实际上他的函数图像是非常不稳定的,波动非常大。
---
## 总结(50字以内)
过拟合是模型把噪声当规律学了(训练好测试差),正则化通过惩罚大权重防这个。λ 控制力度,正好就过拟合、太大就欠拟合。b 不参与正则化。
---
## 复习卡片
| 概念 | 一句话 | 我的场景 |
| -------------- | ------------------------------------ | -------------------------------- |
| 过拟合 | 训练误差小,测试误差大——模型学了噪声 | 电池故障模型训练 99%,新数据 72% |
| 欠拟合 | 训练误差就很大——模型太简单 | 用直线拟合电池衰减曲线 |
| 正则化 | 给权重加惩罚,让模型别太自信 | 你的储能模型用过拟合就废了 |
| λ 参数 | 控制惩罚力度,越大 w 压得越死 | λ=0→过拟合,λ太大→欠拟合 |
| b 不参与正则化 | b 只影响截距,不影响形状 | 不用管 |
| 正则化梯度下降 | 每次更新前先缩小 w 一点点 | 代码只多一行 `w *= (1 - αλ/m)` |
更多推荐




所有评论(0)