---
type: daily_note
title: Phase 2.1 Day 3 — 梯度下降
date: 2026-07-22
person: 吴恩达
phase: "2.1"
day: 3
topics: [梯度下降, 学习率, 批量梯度下降]
---
# 2026-07-22 学习笔记
## 笔记区(学的时候随手记)
### 核心观点
- **MSE(Mean Squared Error,均方误差)**:线性回归的代价函数,衡量预测值偏离真实值的程度。公式 J = 1/(2m) × Σ(ŷ - y)²。ŷ-y 是误差,平方是为了放大大误差,Σ/m 是平均,1/2 是为了求导时消掉系数
- **梯度下降的目标**:通过迭代更新参数 w 和 b,使代价函数 J(w,b) 达到最小值
- **核心公式**:w := w - α·∂J/∂w,b := b - α·∂J/∂b(同时更新)
- **减号的物理意义**:梯度指向 J 增大最快的方向(上坡),减号=逆着走=下坡
- **学习率 α**:控制每一步走多大——太大震荡不收敛,太小收敛太慢
- **批量梯度下降(Batch GD)**:每一步更新参数时,使用**全部**训练样本计算平均梯度
- **凸函数**:线性回归的 MSE 代价函数是凸函数(碗状),只有一个全局最小值
- **同步更新**:∂J/∂w 和 ∂J/∂b 都用同一组 (w,b) 计算,算完再一起更新
### 关键方法/流程
```
批量梯度下降完整流程:
1. 初始化 w=0, b=0
2. 重复直到收敛:
a. 用当前 (w,b) 算所有样本的预测值 ŷ = wx + b
b. 计算平均梯度:
∂J/∂w = 1/m × Σ(ŷⁱ - yⁱ) × xⁱ
∂J/∂b = 1/m × Σ(ŷⁱ - yⁱ)
c. 同时更新:
w = w - α × ∂J/∂w
b = b - α × ∂J/∂b
```
### 梯度推导(心算验证)
样本:(100,98), (200,96), (300,94),初始化 w=0, b=0
- ŷ = 0·x + 0 = 0(所有样本)
- ∂J/∂w = 1/3 × [(-98)(100) + (-96)(200) + (-94)(300)] = -19066.67
- ∂J/∂b = 1/3 × [-98 + (-96) + (-94)] = -96
- w_new = 0 - 0.01 × (-19066.67) = 190.67
- b_new = 0 - 0.01 × (-96) = 0.96
> 后续迭代:用 w=190.67, b=0.96 继续重复这个过程,直到 J 不再明显下降
---
## 线索区(学完后合上材料,自问自答)
> 先看问题 → 自己回答 → 点开对照。答不上来的就是没学透。
**Q: 梯度下降的核心公式是什么?为什么是减号?**
A: w = w - α·∂J/∂w。梯度 ∂J/∂w 指向 J 增大最快的方向(上坡),减号意味着逆着方向走,即下坡。验证:梯度为正(右边高)→ w 减小往左走;梯度为负(左边高)→ w 增大往右走。
**Q: "同时更新"(simultaneous update)是什么意思?不这么做会怎样?**
A: 计算 ∂J/∂w 和 ∂J/∂b 时都使用当前的 (w,b) 值。两个梯度都算完后,再一起更新 w 和 b。如果先更新 w 再用新 w 算 ∂J/∂b,会导致用"新值算旧值"的逻辑错误。
**Q: 学习率 α 太大和太小分别有什么影响?**
A: α 太大 → 每一步迈太大,可能跨过最低点,来回震荡不收敛;α 太小 → 每步走太少,收敛很慢,效率低。
**Q: 为什么线性回归的梯度下降能找到全局最小值?**
A: 线性回归的 MSE 代价函数是凸函数(convex),形状像碗,只有一个最低点,所以局部最小值就是全局最小值。
**Q: MSE 是什么?公式里每个部分代表什么?为什么用平方?为什么还有 1/2?**
A: MSE = Mean Squared Error(均方误差),是线性回归用的代价函数。J = 1/(2m) × Σ(ŷ - y)²。ŷ-y 是每个样本的预测误差;平方让正负误差不抵消,同时放大大误差(惩罚大偏差);Σ/m 取平均,消除样本数量影响;1/2 是 Ng 加的,求导时平方项的 2 被消掉,公式更简洁。
**Q: 为什么叫"批量"梯度下降?这里的"批量"指什么?**
A: "批量"(batch)指每次更新参数时使用全部训练样本来计算平均梯度。这个阶段只有这一种梯度下降,没有其他版本。
---
## 总结
梯度下降 = 逆着梯度方向(上坡反向=下坡)迭代更新参数,逐步让代价函数最小化。线性回归中 MSE 是凸函数,保证能找到全局最小值。学习率 α 控制步长,太大震荡太小太慢。"批量"指每次用全部样本算梯度。
---
## 复习卡片
| 概念 | 一句话 | 我的场景 |
| ------------ | ------------------------------------------ | --------------------------------------- |
| 梯度下降 | 沿梯度反方向迭代更新参数,使代价函数最小化 | 用历史循环数据训练 w,b,预测电池 SOH |
| 同步更新 | 用同一组参数算所有偏导,算完再一起更新 | 算 ∂J/∂w 和 ∂J/∂b 都用当前的 w,b |
| 学习率 α | 控制每步大小的超参数,太大震荡太小慢 | SOH 预测模型训练时调试的关键参数 |
| 批量梯度下降 | 每次更新用全部样本算平均梯度 | 三个样本每轮都参与计算平均梯度 |
| 凸函数 | 碗状曲线,只有一个全局最小值 | 线性回归的 MSE 代价函数,找最小值有保证 |