最适合高斯过程似然函数的优化器

机器算法验证 优化 高斯过程
2022-04-04 10:37:03

高斯过程 (GP) 对数似然函数可以表示为 在此处输入图像描述

其中 K 是正定协方差矩阵。超参数可以通过最大化似然函数来获得。众所周知,鉴于这种非线性无约束优化,局部最大值可以为高斯过程提供良好的估计,即.. 如果您找不到全局最大值,该方法是稳健的。我的问题是最大化 GP 可能性的最佳方法是什么。根据我的经验,基于梯度的方法似乎效果最好,但是我想要任何关于优化最适合 GP 的技术的建议,尤其是 R 中可用的技术

1个回答

我认为这是一个开放式问题,因为很大程度上取决于您正在优化的实际数据集,您的第一个候选解决方案有多接近s0是局部最优的,如果您有兴趣/是否能够使用衍生信息。

我使用了 R 的标准optim函数,通常我发现L-BFGS-B算法是可用的默认优化算法中最快或接近最快的。那是我提供导数函数的时候。GPML Matlab 代码中,作者还提供了 L-BFGS-B 实现,因此我怀疑他们也发现当有人在通用应用程序的上下文中提供衍生信息时,L-BFGS-B 算法具有相当的竞争力。

另一种选择是使用无导数优化。Rios 和 Sahinidis,2013 年的评论论文:“ Derivative-free optimization: A review of algorithms and comparison of software implementations ”在 Journal of Global Optimization 中似乎是详尽无遗的最佳选择。在 R 中minqa,通过二次逼近 (QA) 例程提供无导数优化的包。该软件包包含鲍威尔最著名的一些“优化孩子”:UOBYQANEWUOABOBYQA尽管有 Wikipedia 的一般建议,但我发现 UOBYQA 是三个玩具问题中最快的:“对于一般用途,建议使用 NEWUOA 替换 UOBYQA。”。这并不奇怪,对数似然是具有明确导数的平滑函数,因此 NEWUOA 可能不会享有明显的优势。这再次表明没有灵丹妙药。在这件事上,我玩过一些粒子群优化(PSO) 和协方差矩阵适应进化策略算法分别包含在 R 包中hydroPSO,但总的来说它们cmaes比罐装模拟退火(请注意,估计超参数向量SANNoptimθ因为对数似然函数通常是一个平滑且(至少是局部的)凸问题,所以随机优化通常不会提供很大的优势。

回顾一下:我建议将 L-BFGS-B 与衍生信息一起使用。如果难以获得导数信息(例如,由于复杂的核函数),请使用二次逼近例程。