为大型数据集并行化 GPflow 2.0 GP 回归

Parallelizing GPflow 2.0 GP regression for large datasets

我正在尝试 运行 2D space + 1D 时间的 GP 回归,具有约 8000 个观测值和具有 4 个 Matern 3/2 协方差函数的复合核——不仅仅是一个核可以处理。

如果能够将 GPR 计算分布在多个节点上而不是必须求助于变分 GP,那就太好了。 This github issue 解释了如何在 GPflow 1.0 中执行多线程,但我并不是在寻找并行化许多 predict_f 调用的方法。

相反,我想在大型数据集上进行 GPR,这意味着要反转大于单核可以处理的协方差矩阵。有没有办法为集群或云并行化这种计算?

在计算方面,GPflow可以做到TensorFlow所做的一切。换句话说,如果 TensorFlow 支持云计算,那么 GPflow 也会支持它。但是,这并不意味着您无法实现您的 TensorFlow 计算版本,也许更高效并且能够 运行 在云上实现它。您可以开始研究 TensorFlow 自定义操作:https://www.tensorflow.org/guide/create_op.

像 Cholesky 这样的 linalg 操作很难并行化,从中节省时间的好处值得怀疑。虽然在内存方面集群计算的优势很明显

如果您对基于 MVM 的推理感兴趣,我们可以从这里开始: https://github.com/tensorflow/probability/blob/7c70d4a3389680670e989b93561440caaa0fb8cd/tensorflow_probability/python/experimental/linalg/linear_operator_psd_kernel.py#L252 我一直在为 logdet 使用随机 lanczos 正交,并为解决问题使用预处理 CG,但到目前为止还没有将它们投入 TFP。