大多数超参数优化技术都希望逐个评估点。我有一个昂贵的优化问题,但我可以并行运行数百个评估。问题的维度在 20-30 左右。我的变量大多是连续的。
对于此类问题,是否有任何具有开源、文档化实现的技术?
贝叶斯优化是顺序的,因为您需要知道 n 点的函数值才能通过采集标准决定下一个要评估的点。
也许您可以根据您的问题对其进行自定义,以便采集返回的不是一个点而是一批,您将在下一步分发它们。
您也可以使用混合方法。首先运行一个经典的网格搜索,分布,并在许多点上评估函数。将所有这些知识(这些点的点和目标值)输入经典的贝叶斯优化器,该优化器将逐个选择点并在此处微调优化。不如前者最佳,但这里的实施工作较少。
python hyperopt库将并行评估多个试验,它是开源的,并且有一篇论文。
此外,我相当确定 AWS Sagemaker 具有分布式贝叶斯算法,但它不符合您的开源标准。