Openmdao 1.x:实现预期改进的有效方法

Openmdao 1.x: Efficient way to implement Expected Improvement

我目前使用的是 Openmdao 1.7.1。我正在尝试在预期改进的最佳点使用 Kriging 训练自己的 MetaModel。目的是使用类似 EGO 的方法在紧凑型设计 space 上找到全局最优值。

但是我面临以下难题:

为了找到最佳点,我看到的唯一方法是运行在嵌套问题中使用梯度基础优化器对预期改进函数进行优化,并带有外部问题运行使用 FixedPointIterator,检查 Expected Improvement 值的值。

我的问题如下:

提前感谢您的回复。

我认为您可以将 EGO 开发为独立驱动程序。驱动程序将负责 运行 建立底层模型、收集案例、构建代理并进行自己的子优化。

为此,您可以使用 OpenMDAO 内置的替代模型。您只是不会使用元模型组件。您只需单独使用代理模型。有关如何执行此操作的示例,请查看 this test which runs kriging by itself.

所以 90% 的 EGO 过程将被包装到一个驱动程序中。这避免了对子问题的需要,我认为可以显着简化代码。 EGO 算法相当简单,并且不难编写到驱动程序中。通过使用嵌套问题来实现它,您不会有太多收获。但是通过使其成为驱动程序,您仍然可以构建一个更复杂的模型,该模型将由 EGO 获得 运行。