并行主动优化

数据挖掘 优化 采样 平行线
2021-09-25 20:40:41

我正在尝试优化一个可以选择样本点的昂贵函数。困难在于许多功能评估可能会并行计算,需要不同的时间。我不知道要搜索哪些关键字来查找现有文献(/实施)。

所以有一次,我可能已经计算了 18 个点的函数值,还有 15 个仍在计算中,我想开始计算另一个点的函数。如果没有正在运行的作业,我可以制作一个模型并找出下一个点可能提供最多的信息。但是现在,我需要以某种方式告诉模型还有 15 个点我没有值,但我不想在附近评估函数。

具体来说,我正在寻找具有最小假设且没有梯度信息的东西。但是,如果我只知道要搜索的关键字,我会很高兴。(我可以为这种工作想出几个技巧,但我想知道是否有任何“真正的”解决方案)。


为了说明,假设每一列是一个函数评估点,每一行是下面 ascii 图中的一个时间步长。AnX表示评估仍在计算*中,底行中的 a 表示已完成。一旦旧的评估结束,新的评估就会开始,而其他评估仍然很忙。

XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXX
 XXXXXXXXXXX XXXXX
 XXXXXXXXXXX XXXXX
 XXXXXXXXXXX XXXXX
 XXXXXXXXXXX X  XXX X
 XXXX XXXXXX X  XXX XX
 XXXX XXXXXX X  XXX  XX
 XXXX XXXXXX X  XXX  XX
 XXXX XXXXXX X  XXX  XX
 XXXX XXXXXX X  XXX  XX
 XXXX X XXXX X  XXX  XXX
 XXXX X XXXX X  X X  XXXX
 XXXX X XXXX X  X X  XXXX
  XXX X XXXX X  X X  XXXXX
  XXX X XXXX X  X X  XXXXX
  XXX X XXXX X  X X  XXXXX
  XXX X XXXX X  X X  XXXXX
  XXX X XX X X  X X  XXXXXX
  XXX   XX X X  X X  XXXXXXX
  XXX   XX X X  X X  XXXXXXX
  XXX   XX X X  X X  XXXXXXX
  XXX   XX   X  X    X XXXXXXXX
  XXX   XX   X  X    X XXXXXXXX
  XXX   XX   X  X    X XXXXXX XX
  XXX   XX   X  X    X XXXXXX XX
  XXX   XX   X       X XXXXXX XXX
  XX    XX   X       X XXXXXX XXXX
**  ****  *** ******* *      *

每次评估完成,给定几个完整和几个不完整的评估,如何选择下一个评估点?

2个回答

SMAC有一个可用的并行版本。

我不确定它是否可以按您的意愿处理单次运行,但如果不这样做,我听起来很奇怪。试一下!

我会使用并行高斯过程回归模型。在这个框架中要查询的下一个点由后极值或最大预期改进给出。这是一个实现