TL; DR
我建议使用LIPO。它证明是正确的,并且比纯随机搜索(PRS)更好。它也非常容易实现,并且没有超参数。我没有进行过将LIPO与BO进行比较的分析,但是我期望LIPO的简单性和效率意味着它将胜过BO。
(另请参见:贝叶斯超参数优化的某些破坏性是什么?)
贝叶斯优化
贝叶斯优化类型方法建立了高斯过程替代模型以探索参数空间。主要思想是,距离更近的参数元组将具有相似的函数值,因此,假设点之间具有协方差结构,算法就可以得出有根据的猜测,以找出最值得尝试的最佳参数元组。这种策略有助于减少功能评估的数量。实际上,BO方法的动机是在“使用整个水牛”对下一步要测试的点做出很好的猜测的同时,保持功能评估的次数尽可能少。有不同的优值指标(预期的改进,预期的分位数改进,改进的可能性...)用于比较下一个要访问的点。
将其与诸如网格搜索之类的东西进行对比,该搜索将永远不会使用其先前功能评估中的任何信息来告知下一步要去哪里。
顺便说一句,这也是一种强大的全局优化技术,因此不对曲面的凸度做任何假设。另外,如果函数是随机的(例如,评估具有一些固有的随机噪声),则可以在GP模型中直接考虑。
另一方面,您必须在每次迭代中至少拟合一个GP(或多次,选择“最佳”,或对替代方案求平均,或完全使用贝叶斯方法)。然后,使用该模型进行预测(可能成千上万个),通常采用多启动局部优化的形式,并观察到评估GP预测函数比优化下的函数便宜得多。但是,即使有这种计算开销,也趋向于使用相对较少的函数调用来优化甚至非凸函数。
关于该主题的一篇被广泛引用的论文是Jones等人,“昂贵的黑匣子函数的有效全局优化”。但是这个想法有很多变化。
随机搜寻
即使成本函数的评估成本很高,随机搜索仍然有用。随机搜索很容易实现。研究人员要做的唯一选择是设置希望结果位于某个分位数的概率 ;其余的自动使用基本概率的结果进行。p q
假设您的分位数为并且您希望模型结果出现在所有超参数元组的前%的概率为。所有尝试的元组不在该窗口中的概率为(因为它们是从同一分布中随机随机选择的),因此,至少一个元组在该区域中的概率为。放在一起,我们有q=0.95p=0.95100×(1−q)=5nqn=0.95n1−0.95n
1−qn≥p⟹n≥log(1−p)log(q)
在我们的特定情况下,得出。n≥59
此结果是为什么大多数人建议尝试元组进行随机搜索的原因。值得注意的是,当参数数量适中时,可以与使用基于高斯过程的方法获得良好结果所需的实验数量相媲美。与高斯过程不同,查询元组的数量不会随着要搜索的超参数的数量而改变;实际上,对于大量超参数,基于高斯过程的方法可能需要多次迭代才能取得进展。n=60n=60
由于您可以保证结果的好坏,因此可以说服您的老板说不必进行更多的实验,这是一种很有说服力的工具。
LIPO及其变体
这是一个激动人心的到来,如果不是新的,那对我当然是新的。它通过在函数上设置已知边界与从最佳边界采样之间进行交替,并使用二次逼近来进行。我仍在研究所有细节,但我认为这很有希望。这是一篇不错的博客文章,文章为CédricMalherbe和Nicolas Vayatis的“ Lipschitz函数的全局优化 ”。