何时以及为什么使用贝叶斯优化而不是梯度下降?
哪种情况更适合哪种情况?
何时以及为什么使用贝叶斯优化而不是梯度下降?
哪种情况更适合哪种情况?
我假设贝叶斯优化是指将高斯过程或类似模型拟合到您的观察结果的标准方法,定义一个采集函数,例如预期改进或置信上限,并在该采集函数的最大值处查询该函数。
最直接的区别是贝叶斯优化适用于您不知道梯度的情况。如果您可以廉价地计算函数的梯度,则需要使用一种可以合并这些梯度的方法,因为它们对理解函数非常有帮助。如果您不能轻松计算梯度并且需要求助于有限差分近似,那么在大多数情况下您真的不想这样做。
BO 假设函数相当平滑(由 GP 中的内核定义)但不是凸函数。梯度下降,如果你想找到一个全局最大值,假设凸度以及一定程度的平滑度(如在步长参数中使用的那样)。
BO 试图最小化对目标函数的调用次数。如果计算成本很高,例如因为它需要大量计算,甚至需要与外部世界进行一些交互,那么这是非常可取的。如果目标的计算成本很低,那么不用担心所需的辅助计算量可能会更快。
BO 通常不能很好地扩展到高维函数,无论是统计上还是计算上。最近的工作已经开始从各种方法解决这个问题。如果你小心的话,梯度下降和类似的方法通常可以合理地扩展到更高的维度。
BO 通常也不能很好地扩展来多次评估函数,因为 GP 推断在输入点的数量上是三次方的。最近有很多关于加速 GP 或使用类似的更具可扩展性的方法的工作,这可能会也可能不会根据您的需要解决这个问题。