2.7.1 了解你的问题

每个问题都是不相同。了解你的问题使你可以选择正确的工具。

问题的维数

优化问题的规模非常好的由问题的维数来决定,即,进行搜索的标量变量的数量。

2.7.1.1 凸优化 VS 非凸优化

凸函数:

  • $f$ 在它的所有切线之上。
  • 相应的, 对于两个点point A, B, f(C) 在线段[f(A), f(B])]之下, 如果 A < C < B

2.7.1 了解你的问题 - 图1

非凸函数

2.7.1 了解你的问题 - 图2

最优化凸函数简单。最优化非凸函数可能非常困难。

注意: 可以证明对于一个凸函数局部最小值也是全局最小值。然后,从某种意义上说,最小值是惟一的。

2.7.1.2 平滑和非平滑问题

平滑函数:

梯度无处不在,是一个连续函数

2.7.1 了解你的问题 - 图3

非平滑函数:

2.7.1 了解你的问题 - 图4

优化平滑函数更简单一些 (在黑盒最优化的前提是对的,此外线性编程是一个非常高效处理分段线性函数的例子)。

2.7.1.3 嘈杂 VS 精确成本函数

有噪音 (blue) 和无噪音 (green) 函数

2.7.1 了解你的问题 - 图5

噪音梯度

许多优化方法都依赖于目标函数的梯度。如果没有给出梯度函数,会从数值上计算他们,会产生误差。在这种情况下,即使目标函数没有噪音,基于梯度的最优化也可能是噪音最优化。

2.7.1.4 限制

基于限制的最优化

这里是:

$-1 < x_1 < 1$

$-1 < x_2 < 1$

2.7.1 了解你的问题 - 图6