GPy 和 GPflow 是否具有共同的数学背景?我问这个是因为我正在使用 GPy 但我看不到参考资料。但是,GPflow 在其示例中提供了参考。
使用继续使用 GPy 是否可以,或者您是否建议立即使用 GPflow 用于高斯过程?
GPy 和 GPflow 肯定有一个共同的数学背景:Gaussian processes Rasmussen 和 Williams,并且两个框架中的许多概念非常相似:内核、似然函数、均值函数、诱导点等。对我来说,GPy 和GPflow 是计算后端:AFAIK GPy 使用纯 Python 和 numpy 来执行其所有计算,而 GPflow 依赖于 TensorFlow。这为 GPflow 免费提供了多个不错的功能:GPU 加速、自动渐变、与 TF 生态系统的兼容性等。根据您的用例,这些功能可能是至关重要的,也可能只是不错的选择。
以下是有关两个框架之间技术细节的更多信息: https ://gpflow.readthedocs.io/en/master/intro.html#what-s-the-difference-between-gpy-and-gpflow
那将取决于您实际在做什么。非常基本的 GP 应该是相似的,只是 GPflow 依赖于 tensorflow 的梯度(如果使用),并且可能存在一些技术实现差异。
对于其他更高级的模型,这两个库都提供了对文档中相应论文的引用。在我看来,GPflow 的设计主要围绕 [1] 和 [2] 中的 SVGP 框架(以及许多其他扩展。如果您对理论感兴趣,我真的可以推荐 [2])。但是他们仍然提供了一些其他的实现。
我使用 GPflow,因为它可以在 GPU 上运行并提供许多最先进的实现。但是,缺点是它会发生很多变化。
如果您想使用经典的 GP 并且不太关心性能或非常最新的方法,我会说 GPy 应该足够并且更稳定的变体。
[1] Hensman、James、Alexander Matthews 和 Zoubin Ghahramani。“可扩展变分高斯过程分类。” (2015 年)。
[2] 马修斯,亚历山大·格雷姆·德·加里斯。使用变分方法的可扩展高斯过程推理。迪斯。剑桥大学,2017 年。