3. 局部最优风险的产生机理
局部最优并不是算法“算错了”,而是问题结构与搜索策略共同作用的结果。要理解局部最优陷阱,先要区分两个层面:问题本身的地形(目标函数是否非凸、变量是否离散、约束是否复杂)决定了“坑”是否存在;搜索过程的路径(初始点、步长、梯度信息)决定了算法会不会掉进坑里。本节围绕这两层展开,并用一维与二维示例把梯度下降陷入局部极小的过程“画”出来。
一、非凸目标函数:地形本身就有多个洼地
凸函数有一个关键性质:任意局部极小点都是全局极小点。一旦目标函数非凸,这个保证就失效了。典型的非凸来源包括:多峰函数(如 f(x)=x⁴-3x²+x 这类多项式)、含有 sin/cos 的周期项、神经网络中权重乘积与激活函数复合形成的复杂曲面、以及由 max/min、绝对值、分段函数拼接出的“折线地形”。
以一维示例说明。设目标函数
f(x) = x^4 - 3x^2 + x
f'(x) = 4x^3 - 6x + 1
令导数为零可得三个驻点,数值上约为 x≈-1.30、x≈0.17、x≈1.13。其中 x≈-1.30 与 x≈1.13 是局部极小点,x≈0.17 是局部极大点。用梯度下降 x_{k+1} = x_k - η·f'(x_k),取学习率 η=0.05:
- 若初始点 x₀=-2.0,梯度为负,迭代向右移动,最终收敛到 x≈-1.30,函数值约 -1.94;
- 若初始点 x₀=2.0,迭代向左移动,最终收敛到 x≈1.13,函数值约 -1.06;
- 若初始点 x₀=0.0,梯度 f'(0)=1 为正,向左移动,同样落入 x≈-1.30。
三个初始点得到两个不同的收敛结果,而真正的最小值在 x≈-1.30 处。这说明:非凸地形提供了多个吸引域,初始点决定了落入哪个吸引域。注意这里 x≈1.13 处的函数值比全局最小高约 0.88,算法却“心安理得”地停在那里,因为该点梯度确实为零、附近没有更低的点。
二、离散变量:梯度不存在,连续优化方法直接失效
当决策变量只能取整数或有限集合(如设备台数、选址的 0-1 变量、排班班次),目标函数在变量方向上不再连续可导。此时梯度下降无法定义“沿负梯度方向走一小步”,因为半步没有意义。离散问题常通过“松弛—取整”处理:先按连续变量求解,再四舍五入。但取整会破坏最优性——连续最优解附近的整数点可能落在完全不同的地形区域,导致结果显著劣化。另一类做法是枚举或分支定界,但规模稍大就面临组合爆炸。离散性带来的局部最优风险,本质是可行域被切成孤立点,邻域结构被人为定义,邻域选得不好,搜索就会困在“邻近没有更优点”的假象中。
三、约束复杂性:可行域被切碎,边界成为陷阱
约束会把连续空间切割成多个互不连通的可行区域。例如约束 x² + y² ≥ 1 与 x² + y² ≤ 4 构成一个圆环,若再叠加 x·y ≥ 0.3,可行域可能分裂为两块分离的月牙形区域。梯度下降若从某一块出发,投影或罚函数方法会把迭代拉回该块内部,算法无法“跨越”不可行区域到达另一块更优的可行域。约束越复杂(非凸约束、等式与不等式混合、整数约束叠加),可行域的连通性越差,局部最优风险越高。工程中常见的处理是:多起点并行、先松弛求可行解再逐步收紧、或用罚函数把约束违反量并入目标,但罚因子的选取本身又会影响地形。
四、初始点选择:路径依赖的直接体现
初始点不是“随便填一个数”,它决定了迭代进入哪个吸引域。实践中可用的策略包括:网格扫描(在低维时对每个维度取若干等距点分别下降)、拉丁超立方采样、利用领域知识给出物理上合理的初值、以及从粗到细的多分辨率搜索。判断初始点是否“危险”的一个实用信号是:用多个差异较大的初值各跑一次,若收敛结果分散且目标值差异明显,说明地形多峰,需要警惕局部最优。
上图把一维情形直观化了:曲线有两个“碗”,中间被一个“小丘”隔开。x₀=−2.0 与 x₀=0.0 都落在左侧碗的吸引域,收敛到全局最小;x₀=2.0 落在右侧碗,收敛到较差的局部极小。分水岭就在局部极大点附近——初始点落在分水岭哪一侧,结果就由哪一侧决定。
五、二维示例:鞍点与“平坦陷阱”
二维情形更接近真实优化问题。考虑
f(x,y) = (x^2 + y - 11)^2 + (x + y^2 - 7)^2
这是经典的 Himmelblau 函数,具有四个局部极小点,函数值均为 0,因此四个都是全局最小——它说明“多峰”不一定意味着“有更差的坑”,但搜索仍可能停在鞍点附近。更典型的陷阱来自含鞍点的函数,例如 f(x,y)=x²−y²:原点处梯度为零,但沿 x 方向是极小、沿 y 方向是极大,梯度下降若恰好落在原点附近且步长很小,会因梯度接近零而几乎停滞,误判为“已收敛”。实际判断时不能只看梯度范数,还要检查 Hessian 矩阵的特征值符号:若存在负特征值,当前点不是极小点。
二维中另一个常见现象是“狭长山谷”:目标函数在一个方向上很陡、另一个方向很平,梯度下降会在陡方向来回震荡、在平方向缓慢爬行,迭代很多次仍停在谷底某段,看起来像收敛,实则离真正的最优还有距离。此时可观察相邻迭代的目标值下降幅度是否持续小于阈值,以及参数更新量是否集中在少数方向。
六、把机理转化为风险控制动作
理解机理之后,风险控制就有了针对性:面对非凸地形,用多起点与全局搜索(模拟退火、遗传算法、贝叶斯优化)降低落入差坑的概率;面对离散变量,明确邻域定义并配合局部搜索或分支定界;面对复杂约束,先检查可行域连通性,必要时分区求解;面对初始点敏感,做初值扫描并记录收敛结果的分散程度。一个可操作的判断流程是:先看问题结构(凸/非凸、连续/离散、约束形态),再看搜索结果是否对初值敏感,最后用 Hessian 或邻域枚举确认当前点是否真为局部极小。把这三步做成固定检查,局部最优就从“事后才发现”变成“过程中可识别”。