假设我们有一个目标函数 有作为参数.
是针对给定问题最大化的目标函数。可以说:
在哪里是一个神经网络模型。因此不表示为明确的数学关系。
我们还假设问题有一个约束:
在哪里是一个常数并且至于使用神经网络建模。
我的问题如下:
- 假设我们不知道如何优化这个问题是否有可能和执行结果?
- 有什么工具可以解决各种问题吗?
假设我们有一个目标函数 有作为参数.
是针对给定问题最大化的目标函数。可以说:
在哪里是一个神经网络模型。因此不表示为明确的数学关系。
我们还假设问题有一个约束:
在哪里是一个常数并且至于使用神经网络建模。
我的问题如下:
对于黑盒优化,目前大多数最先进的方法都使用某种形式的代理建模,也称为基于模型的优化。这是通过一些参数模型(例如线性/二次响应面或高斯过程回归)局部逼近目标函数的地方。在仅使用参数模型导数的意义上,这种方法是“无导数优化”(DFO),而不是黑盒函数的有限差分。请注意,与有限差分相比,局部模型通常适合“大”邻域。
最近的论文对无约束(和框约束)DFO 方法的当前技术状态进行了很好的比较
Rios, LM, & Sahinidis, NV (2013)无导数优化:算法回顾和软件实现比较。全球优化杂志。
本研究对用于全局和局部优化的各种 DFO 方法进行了基准测试。(有关进一步讨论,请参阅我的回答,包括对问题大小的限制。)
对于约束优化,工作量较少,但至少多项式响应面 DFO 方法存在一些推广。这些方法往往被表述为顺序线性规划或顺序二次规划(SQP) 算法,取决于多项式逼近的程度。请注意,由于条件不佳,通常不使用三次或更高阶多项式。
我没有使用过这些程序,但一些可能的建议可能是:
我使用 Powell 的框约束 SQP 求解器 ( BOBYQA ) 取得了很好的效果,并且他的软件/算法在我的经验中非常可靠,因为它们经过多年的实际工业应用的磨练。因此我的建议。(他的二次 DFO 变体在上面引用的基准研究中也排名很好。)
正如Ami Tavory的回答(已删除)所建议的那样,惩罚方法是许多约束优化问题的可行替代方案。如果你走这条路,我不推荐使用Nelder-Mead。正如Rios & Sahinidis研究中所述,存在许多更好的替代方案。
因此,作为一个实用的建议,我是否可以建议您首先使用软到硬惩罚函数来伪造约束,然后尝试运行 humpday 包或其他一些 bbopt 比较工具,如 IOHprofiler?
作为另一个实用的建议,我可以问一下你的目标需要多长时间来计算?如果速度非常快,那么 GP 解决方案绝不会是最好的。
在某种程度上,这个排行榜可能具有指示性。您可能会发现,如果没有时间限制,那么 GP/代理方法将很难被击败,但是对于您的问题,您可能会发现 dlib 之类的东西更有用,因为它是如此之快并且您可以尝试各种技巧来绕过你的约束问题。