1. 概述

在本文中,我们将讨论优化问题中局部最优(Local Optima)与全局最优(Global Optima)的概念。首先我们会简要介绍数学优化的基本概念,然后分别定义局部最优与全局最优,并简要介绍一些用于寻找它们的常见算法。

2. 基础知识

一个数学优化问题通常由以下三个基本组成部分构成:

  • 目标函数 $ f(x) $:我们希望优化的数值(最小化或最大化)
  • 决策变量 $ x_1, x_2, ..., x_n $:我们可以控制的输入变量
  • 约束条件 $ h_n(x) $:对决策变量取值范围的限制

我们的目标是找到一组满足约束条件的最优决策变量 $ \mathbf{x_{opt}} $,使得目标函数 $ \mathbf{f(x_{opt})} $ 达到最优值。但随着问题复杂度的提升,找到全局最优可能变得非常困难。在这种情况下,我们可能会退而求其次,寻找某个局部范围内的“最优”解,即局部最优解。

3. 局部最优(Local Optima)

局部最优是目标函数在某个输入区域内的极值点(极大或极小)

以最小化问题为例,若某个点 $ x_{local} $ 满足:

$$ f(x) \geq f(x_{local}) $$

对于所有在区间 $ [x_{local} - \epsilon, x_{local} + \epsilon] $ 内的 $ x $,那么 $ x_{local} $ 就是一个局部最小值。

局部最优通常出现在多峰函数(multimodal)中,即函数有多个极值点的情况下。很多优化算法在求解过程中容易陷入局部最优,而无法找到全局最优。

4. 全局最优(Global Optima)

全局最优是目标函数在整个输入空间中所能达到的最优值(最大或最小)

仍以最小化问题为例,若某个点 $ x_{global} $ 满足:

$$ f(x) > f(x_{global}) $$

对于所有输入空间中的 $ x $,那么 $ x_{global} $ 就是全局最小值。

如下图所示,$ x_2 $ 是整个函数的最大值点,即全局最大值;而 $ x_1 $ 仅在负数区域内是最大值,因此是一个局部最大值。

local global maximum

举个例子

考虑如下优化问题:

$$ \max{f(x)} \quad \text{其中} \quad f(x) = x^2 \quad \text{且} \quad x > 0 $$

其函数图像如下图所示:

img_63641c51a14ce

我们可以看出,这个函数在 $ x > 0 $ 的范围内没有全局最大值。因为对于任意 $ x_1 > 0 $,总能找到一个更大的 $ x_2 = x_1 + 1 $,使得:

$$ f(x_2) = x_2^2 = (x_1 + 1)^2 = x_1^2 + 2x_1 + 1 > x_1^2 $$

所以,这个优化问题没有全局最优解。

5. 常见优化算法

寻找局部最优和全局最优是优化问题中的核心任务。以下是一些常用的优化算法分类:

✅ 局部最优常用算法:

  • BFGS 算法:一种拟牛顿法,适合求解光滑函数的局部最优
  • 爬山法(Hill Climbing):通过逐步迭代寻找局部极值,但容易陷入局部最优
  • Nelder-Mead 算法:适用于无约束优化问题,无需梯度信息

✅ 全局最优常用算法:

  • 模拟退火(Simulated Annealing):通过引入“温度”机制跳出局部最优,寻找全局最优
  • 遗传算法(Genetic Algorithm):受自然选择启发,适合多峰函数优化

⚠️ 选择算法时需根据具体问题需求权衡:有些算法速度快但精度低,有些算法精度高但计算开销大。

6. 总结

本文介绍了优化问题中局部最优与全局最优的基本概念。我们首先回顾了优化问题的基本结构,然后分别定义了局部最优与全局最优,并通过图像和数学表达帮助理解。最后我们列举了一些常见的优化算法,帮助你在实际问题中选择合适的工具。

理解局部与全局最优的区别,对于设计和调优机器学习模型、工程优化、金融建模等领域都非常重要。在实际应用中,往往需要在“速度”与“精度”之间做权衡,选择合适的算法来逼近全局最优。


原始标题:Optimization: Local vs. Global Optima