主要内容

局部优化与全局优化

解算器为什么找不到最小值

通常,求解器返回一个局部最小值(或最优值)。结果可能是全局最小值(或最优值),但不能保证这个结果。

  • 一个当地的函数的最小值是一个函数值小于附近点,但可能大于远处点的点。

  • 一个全球最小值是函数值小于其他所有可行点的点。

最优化工具箱™求解器通常会找到一个局部最小值。(这个局部最小值可以是全局最小值。)他们在盆地的吸引力起点。想了解更多关于吸引盆地的信息,请看盆地的吸引力

以下是这条一般规则的例外。

  • 线性规划问题和正定二次规划问题都是凸的,具有凸可行域,所以它们只有一个吸引域。根据指定的选项,linprog忽略任何用户提供的起始点quadprog不需要,即使有时你可以通过提供一个起点来加速最小化。

  • 全局优化工具箱功能,比如simulannealbnd,尝试寻找不止一个吸引人的地方。

寻找更小的最小值

如果你需要一个全局最小值,你必须在全局最小值的吸引盆地中为你的求解器找到一个初始值。

你可以通过以下方式设置初始值来搜索全局最小值:

  • 使用规则的初始点网格。

  • 如果所有的问题坐标都是有界的,则使用从均匀分布中抽取的随机点。如果某些分量是无界的,则使用从正态、指数或其他随机分布中提取的点。你对全局最小值的了解越少,你的随机分布就会越分散。例如,正态分布的抽样距离均值很少超过三个标准差,但柯西分布(密度1 / (π(1 +x2)))制作大相径庭的样品。

  • 使用相同的初始点,在每个坐标有界、正规、指数或其他上添加随机扰动。

  • 如果你有全局优化工具箱许可,使用GlobalSearch(全局优化工具箱)MultiStart(全局优化工具箱)解决者。这些解算器会在限定范围内自动生成随机的起始点。

你对可能的初始点了解得越多,你的搜索就会越专注、越成功。

盆地的吸引力

如果一个目标函数fx是平滑的矢量吗——∇fx指向那个方向fx减少最快。最陡下降方程,即

d d t x t f x t

产生一个路径xt它趋于局部极小值t增加。一般来说,初始值x(0)它们之间的距离越近,下降路径越陡,且趋于相同的最小值点。的盆地的吸引力对于最陡下降法来说,它是导致相同局部最小值的初值集。

这个图显示了两个一维极小值。图中显示了不同的吸引盆地,不同的线条风格,用箭头表示了最陡下降的方向。对于这幅图和随后的图,黑点表示局部极小值。每一条最陡峭的下降路径,从一个点开始x(0),走到装有黑点的盆里x(0)

一维盆地

这张图显示了最陡的下降路径在更大的维度中是如何变得更加复杂的。

一个吸引人的盆地,显示从不同的起点最陡峭的下降路径

这张图显示了更复杂的吸引路径和吸引盆地。

几个吸引点

约束可以把一个吸引的盆地分解成几个部分。例如,考虑最小化y主题:

y≥|x|

y≥5 - 4(x2)2

这个图显示了两个吸引的盆地与最后的点。

生成图形的代码

最陡的下降路径是一直到约束边界的直线。从约束边界开始,最陡的下降路径沿边界向下移动。最后一个点是(0,0)或(11/4,11/4),取决于初始值x-value大于或小于2。

相关的话题