为什么凸问题容易优化?

计算科学 优化 凸优化
2021-12-02 07:37:19

受到这个问题的最佳答案的启发:为什么在优化中凸性比凸性更重要?,我现在希望了解为什么问题易于优化(或至少比拟凸问题更容易)。

有哪些最有效的凸优化算法,为什么它们不能有效地用于拟凸问题?

2个回答

您可以尝试将凸优化算法应用于非凸优化问题,它甚至可能收敛到局部最小值,但是只有关于函数的局部信息,您永远无法得出结论:事实上找到全局最小值。凸优化问题最重要的理论性质是任何局部最小值(实际上是任何静止点)也是全局最小值。

非凸问题的全局优化算法必须具有某种全局信息(例如函数的 Lipschitz 连续性),以证明解决方案是全局最小值。

要回答您关于为什么凸优化算法可能在准凸问题上失败的具体问题,假设您的凸优化算法恰好在目标函数图上的“平坦点”开始。渐变中没有本地信息可以告诉您下一步该去哪里。对于凸问题,您可以简单地停止,因为您知道您已经处于局部(以及全局)最小点。

大多数用于大规模优化的最佳现代方法都涉及对目标函数进行局部二次逼近,向该逼近的临界点移动,然后重复。这包括牛顿法、L-BFGS 等。

如果当前点的 Hessian 矩阵是正定的,则​​函数只能由具有最小值的二次方局部良好逼近。如果 Hessian 矩阵是不确定的,那么

  1. 局部二次近似是目标函数的良好局部近似,因此是鞍面。然后使用这个二次近似会建议向鞍点移动,这可能是在错误的方向,或者

  2. 局部二次近似通过构造被迫具有最小值,在这种情况下,它可能是对原始目标函数的不良近似。

(如果 Hessian 是负定的,也会出现同样的问题,在这种情况下,它在局部看起来像一个倒置的碗)

因此,如果 Hessian 在任何地方都是正定的,这些方法将最有效,这相当于平滑函数的凸性。


当然,所有好的现代方法都有适当的保护措施,以确保在通过 Hessian 不定区域时收敛 - 例如,线搜索、信任区域、遇到负曲率方向时停止线性求解等。然而,在这种不定区域的收敛速度通常要慢得多,因为不能使用关于目标函数的完整曲率信息。