# 牛顿法、割线法与鞍点实验

[[MCS/day6/00 学习指南|day6 学习指南]] · [[MCS/00 MCS学习总览|十一天总览]] · [[MCS/day6/阅读核验与疑问|阅读核验与疑问]] · 上一篇：[[MCS/day6/09 XGBoost、优化器选择与收敛邻域|XGBoost、优化器选择与收敛邻域]] · 下一篇：[[MCS/day6/11 Baseline 与模型比较|Baseline 与模型比较]]

> 来源：[[MCS/day6补充6|day6补充6]]。用途：问答。原有推导、追问与解答保留；阅读时请结合本日核验说明。

## 牛顿法、割线法与鞍点：课堂笔记整理

### 一、核心结论（重点记）

> **二阶方法（牛顿法）找的是驻点，而不是最小值。**

- $f'(x)=0$ 只说明是驻点，可能是：
  - 极小值
  - 极大值
  - 鞍点
- 牛顿法本身不区分这些，它只让 $f'(x)=0$。
- 起步靠近 0 时，牛顿法可能走向极大值。
- **割线法不需要二阶导数。**

---

### 二、牛顿法与割线法求驻点

对 $f(x)=x^3-x$，求驻点即解：

$$
f'(x)=3x^2-1=0
$$

$$
\Rightarrow x=\pm \frac{1}{\sqrt{3}} \approx \pm 0.5774
$$

#### 注意区分

| 概念 | 条件 | 解 |
|---|---|---|
| 驻点 | $f'(x)=0$ | $\pm 1/\sqrt{3} \approx \pm 0.5774$ |
| 零点 | $f(x)=0$ | $0, \pm 1$ |

求驻点用的是 $f'(x)$，不是 $f(x)$，所以求的是**驻点**，不是零点。

#### 迭代行为

- 牛顿法 $x_0=0.8$ → 收敛到驻点
- 牛顿法 $x_0=0.1$ → 靠近 0 时走向极大值
- 割线法 $x_0=0.5, x_1=0.8$ → 同样收敛到驻点

---

### 三、方法对比

| 方法 | 需要什么 | 收敛到 | 特点 |
|---|---|---|---|
| 牛顿法 | 一阶导 + 二阶导 | 驻点 | 收敛快，但要算二阶导 |
| 割线法 | 只用函数值 | 驻点 | 不需要二阶导数，更省计算 |

**割线法的优点：不需要二阶导数。**

---

### 四、鞍点是什么

#### 直观理解

鞍点就是一个方向是极小、另一个方向是极大的点。

想象一个马鞍：

- 沿着马背方向（前后）—— 是最低点
- 沿着垂直马背方向（左右）—— 是最高点

站在鞍点上，往某些方向走是下坡，往另一些方向走是上坡。  
它既不是真正的极小值，也不是真正的极大值。

#### 数学定义

对函数 $f(x,y)$，如果在点 $(x_0,y_0)$ 处：

$$
\nabla f=0 \quad (\text{一阶导为零})
$$

即它是驻点，但 Hessian 矩阵 $H$ 的特征值有正有负，那它就是鞍点。

| Hessian 特征值 | 类型 |
|---|---|
| 全为正 | 极小值 |
| 全为负 | 极大值 |
| 有正有负 | 鞍点 |

#### 简单例子

##### 例 1：$f(x,y)=x^2-y^2$

$$
\nabla f=(2x,-2y)=0 \Rightarrow (0,0)
$$

Hessian：

$$
H=
\begin{pmatrix}
2 & 0 \\
0 & -2
\end{pmatrix}
$$

特征值 $2$ 和 $-2$，一正一负 → $(0,0)$ 是鞍点。

- 沿 x 方向：$f=x^2$，是极小
- 沿 y 方向：$f=-y^2$，是极大

##### 例 2：$f(x)=x^3$

$$
f'(x)=3x^2=0 \Rightarrow x=0
$$

$$
f''(x)=6x,\quad f''(0)=0
$$

二阶导为零，既不是极大也不是极小，  
$$ x=0 $$ 是驻点但不是极值点，也算一种退化的鞍点。

#### 为什么牛顿法会停在鞍点

牛顿法解的是 $f'(x)=0$（或 $\nabla f=0$），它只保证找到驻点，不保证这个驻点是极小值。

在鞍点处：

- 梯度确实为零 ✓
- 但 Hessian 有负特征值，说明某个方向是下坡

如果牛顿法从某个起点出发，恰好收敛到鞍点，它就会停在那里，误以为找到了最优解——但实际上还可以继续下降。

这就是老师说的：

> **牛顿法解方程 $f'(x)=0$ 是对的，但做优化可能做错。**

#### 一句话记忆

> 鞍点 = 梯度为零、但 Hessian 特征值有正有负的点；  
> 它是驻点，但不是极值点；  
> 牛顿法可能停在鞍点上，误以为找到了最小值。

---

### 五、鞍点上的梯度下降行为

目标函数：

$$
f(x,y)=x^2-y^2
$$

梯度：

$$
\nabla f=(2x,-2y)
$$

Hessian：

$$
H=
\begin{pmatrix}
2 & 0 \\
0 & -2
\end{pmatrix}
$$

特征值 $2$ 和 $-2$，一正一负，所以 $(0,0)$ 是鞍点。

更新：

$$
x_{k+1}=x_k-0.08\cdot 2x_k=0.84x_k
$$

$$
y_{k+1}=y_k-0.08\cdot (-2y_k)=1.16y_k
$$

所以：

- x 方向：每步乘 0.84 → 逐渐衰减到 0（这个方向是极小）
- y 方向：每步乘 1.16 → 逐渐放大发散（这个方向是极大）

这就是鞍点的典型行为：一个方向收敛，一个方向发散，整体不会停在 $(0,0)$。

#### 对比牛顿法

牛顿法更新：

$$
xy \leftarrow xy - H^{-1}\nabla f
$$

$$
H^{-1}\nabla f=
\begin{pmatrix}
1/2 & 0 \\
0 & -1/2
\end{pmatrix}
\begin{pmatrix}
2x \\
-2y
\end{pmatrix}
=
\begin{pmatrix}
x \\
y
\end{pmatrix}
$$

$$
xy \leftarrow xy - (x,y)=(0,0)
$$

一步到鞍点 $(0,0)$。

牛顿法确实解出了 $\nabla f=0$，但 $(0,0)$ 是鞍点，不是最小值。  
这正好印证老师说的：

> 牛顿法解方程 $f'(x)=0$ 是对的，但做优化可能做错——它停在鞍点上。

#### 一句话总结

> 鞍点上梯度下降：一个方向收敛、一个方向发散，不会停在驻点；  
> 牛顿法：一步到鞍点，解方程对，但优化错。

---

### 六、鞍点实验总结

#### GD 的轨迹（$\eta=0.08$）

| 步数 | y 值 |
|---|---|
| 1 | 0.928 |
| 2 | 1.071 |
| 3 | 1.241 |
| 4 | 1.449 |
| 5 | 1.680 |
| 6 | 1.949 |

**y 越来越大，不是收敛，而是发散。**

因为 y 方向每步乘 $1.16$：

$$
y_{k+1}=1.16y_k
$$

#### x 和 y 的趋势对比

| 方向 | 更新因子 | 趋势 |
|---|---|---|
| x | 0.84 | 越来越小，收敛到 0 |
| y | 1.16 | 越来越大，发散 |

- x 方向像极小值
- y 方向像极大值
- 合起来就是鞍点

#### 牛顿法的行为

牛顿法一步到 $(0,0)$：

$$
xy \leftarrow xy - H^{-1}\nabla f=(0,0)
$$

它解出了 $\nabla f=0$，但 $(0,0)$ 是鞍点，不是最小值。

---

### 七、最终关键结论（要牢记）

1. **二阶方法（牛顿法）找的是驻点，而不是最小值。**
2. $f'(x)=0$ 只说明是驻点，可能是极小值、极大值或鞍点。
3. 起点靠近 0 时，牛顿法会走向极大值。
4. 牛顿法不区分极大/极小，它只让 $f'(x)=0$。
5. **割线法不需要二阶导数。**
6. **GD 在鞍点上，y 方向越走越大，并不是走向最小值。**
7. **牛顿法一步到鞍点，解方程对，但做优化错。**

---

### 八、一句话记忆

> 牛顿法和割线法解的是 $f'(x)=0$，得到的是驻点；  
> 驻点不一定是极小值，二阶方法不保证找最小值；  
> 割线法不需要二阶导数；  
> 牛顿法解方程对，但做优化可能错（可能停在鞍点或极大值）。  
>  
> 鞍点上：x 收敛、y 发散；  
> GD 的 y 越走越大，说明它没找到最小值；  
> 牛顿法直接停在鞍点，解方程对，优化错。





**核心逻辑：**

逆 Hessian 矩阵会缩放梯度，不同方向上的缩放比例不同：

- **坡度平缓的方向**（曲率小、二阶导小）→ 逆 Hessian 对应特征值大 → **放大步长**
    
- **坡度陡峭的方向**（曲率大、二阶导大）→ 逆 Hessian 对应特征值小 → **缩小步长**
    

**由此产生的效果：**

不是剧烈震荡，而是**直奔极小值**。

原因在于：牛顿法/拟牛顿法用逆 Hessian 做缩放，本质上是在做**曲率归一化**——把各方向上的梯度都换算成"到极值点还差多远"的尺度。平缓方向本来梯度小、走得慢，放大后能大步前进；陡峭方向本来梯度大、容易冲过头，缩小后能稳步走。结果是各个方向步长被拉齐，整体沿着指向极小点的方向快速收敛，而不是在峡谷两侧来回震荡。

**对比：**

- 普通梯度下降：平缓方向爬得慢，陡峭方向容易震荡（呈锯齿状）
    
- 逆 Hessian 缩放后：平缓方向加速，陡峭方向收敛，整体直奔极小值
