optimization失败解决办法

三个临界点

一、critical point(临界点 / 驻点)

在多元函数 \(f(x1,x2,…,xn\))中,
临界点(critical point) 是指:

\[∇f(x)=0 \]

也就是所有偏导数都为 0 的点。

👉 这些点可能是:

  • 局部极小值点(local minimum)
  • 局部极大值点(local maximum)
  • 鞍点(saddle point)

所以 临界点是一个集合的上位概念,它包含了后两种情况。


二、local minima(局部极小值)

定义:
点$ x^* $是局部极小值点,当存在一个足够小的邻域 \(U\)
对所有 \(x∈U\),都有:

\(f(x∗)≤f(x)\)

👉 在这个点附近,函数值都是比它高的。
(但可能还有更低的全局最小值)

在一元函数里,这个点的特征是:

\(f′(x∗)=0,f′′(x∗)>0\)

在多元函数中:

\(∇f(x∗)=0,H(x∗)\)(Hessian矩阵)正定


三、saddle point(鞍点)

定义:
\(x^*\) 也是临界点(梯度为 0),
但是在某些方向上函数值比它大,某些方向上比它小。
也就是说:

\(∃ u,v:f(x∗+u)>f(x∗),f(x∗+v)<f(x∗)\)

它既不是极大,也不是极小。

在多元函数中:

\(∇f(x∗)=0,H(x∗)\)有正有负特征值(不定矩阵)


四、直观对比

类型 梯度条件 Hessian条件 函数形状 示例
local minimum \(∇f=0\) 正定 碗口向上 \(f(x,y)=x2+y2\)
local maximum \(∇f=0\) 负定 碗口向下 \(f(x,y)=−x2−y2\)
saddle point \(∇f=0\) 不定 鞍形 \(f(x,y)=x2−y2\)

image-20251010123121358

方法一:Hessian 与临界点类型判断

在临界点 $( theta' ) \(处,梯度为 0: \)\nabla L(\theta') = 0$

根据二阶泰勒展开:

\(L(\theta) \approx L(\theta') + \frac{1}{2}(\theta - \theta')^T H (\theta - \theta')\)

其中 ( H ) 是 Hessian 矩阵。


判断规则

条件 Hessian 性质 结论
对所有 (v),(v^T H v > 0) 正定 局部极小值(Local Minima)
对所有 (v),(v^T H v < 0) 负定 局部极大值(Local Maxima)
有的 (v^T H v > 0),有的 (v^T H v < 0) 不定 鞍点(Saddle Point)

💡 总结:

临界点处梯度为零;
Hessian 的符号决定了函数曲面的形态。

image-20251010140932570

方法二:Batch 和 Momentum

small Batch 和 large Batch 的优劣:

速度(GPU并行计算);

不是 Batch 越大越好,也不是越小越好

image-20251015153952738

验证集正确率:

**validation generated set(验证集)**

Batch 越大,带来的结果可能越差

这个是 optimization 的问题

image-20251015154132645

优势比较

image-20251015155827422

Momentum

梯度(Gradient):就是函数在某一点处,变化最快的方向和变化率。

一般的 Gradient

每次更新沿着梯度的反方向

image-20251015160801259

Momentum 的 Gradient(有惯性的更新)

每次更新沿着梯度的反方向和上一次的影响

image-20251015160507669

posted @ 2025-10-10 14:40  -一叶知秋-  阅读(10)  评论(0)    收藏  举报