我一直在从在线视频和讲义中学习高斯过程回归,我的理解是,如果我们有一个包含 点的数据集,那么我们假设数据是从 维多元高斯采样的。所以我的问题是在 是百万分之十的情况下,高斯过程回归仍然有效吗?内核矩阵会不会很大,会使过程完全低效?如果是这样,是否有适当的技术来处理这个问题,比如从数据集中重复多次采样?处理此类案件有哪些好的方法?
大型数据集的高斯过程回归
有多种方法可以将 GP 扩展到大型数据集,例如:
低秩方法:这些方法试图创建协方差矩阵的低秩近似。最著名的可能是 Nystroms 方法,它将数据投影到点的子集上。在此基础上开发了 FITC 和 PITC,它们使用伪点而不是观察点。这些包含在例如 GPy python 库中。其他方法包括随机傅立叶特征。
H-矩阵:这些使用协方差矩阵的层次结构并将低秩近似应用于每个结构子矩阵。这在流行的库中不太常见。
Kronecker 方法:这些方法使用协方差矩阵的 Kronecker 积来加速计算开销瓶颈。
贝叶斯委员会机器:这涉及将您的数据分成子集并使用 GP 对每个子集进行建模。然后,您可以使用输出的最佳贝叶斯组合来组合预测。这很容易实现,而且速度很快,但是如果你关心它,就会破坏你的内核——Mark Deisenroth 的论文应该很容易理解。
您询问:
在 𝑛 是几百万的情况下,高斯过程回归仍然有效吗?
不是构造和反转大矩阵的标准意义。您有两个选择:1)选择不同的模型或 2)进行近似。
1)一些基于GP的模型可以扩展到非常大的数据集,例如上面答案中链接的贝叶斯委员会机器。我觉得这种方法相当不令人满意:选择 GP 模型有充分的理由,如果我们要切换到更可计算的模型,我们可能不会保留原始模型的属性。例如,BCM 的预测方差在很大程度上取决于数据拆分。
2) GP 中的“经典”逼近方法是逼近核矩阵。这里对这些方法进行了很好的回顾:http ://www.jmlr.org/papers/volume6/quinonero-candela05a/quinonero-candela05a.pdf 。事实上,我们通常可以将这些矩阵近似视为模型近似,并将它们与贝叶斯委员会机器混为一谈:它们是模型的变化,很难理解这些变化何时可能是病态的。这是一个超级评论:https ://papers.nips.cc/paper/6477-understanding-probabilistic-sparse-gaussian-process-approximations.pdf
我提倡对大型 GP 进行近似的方法是避免近似核矩阵或模型,并使用变分推理来近似后验分布。许多计算看起来像“低秩”矩阵近似,但有一个非常理想的属性:使用的计算越多(“秩”越多),近似值越接近真实的后验,由 KL 测量分歧。
这些文章是一个很好的起点: http: //proceedings.mlr.press/v5/titsias09a/titsias09a.pdf https://arxiv.org/pdf/1309.6835
我在这里写了一篇关于相同论点的更长的文章:https ://www.prowler.io/blog/sparse-gps-approximate-the-posterior-not-the-model
在实践中,变分近似在很多情况下都非常有效。我已经在实际应用中广泛使用它。最近有一些很好的理论来支持它为什么应该起作用(https://arxiv.org/abs/1903.03571)。
最后一个插件:GP 中的变分推理在 gpflow ( https://github.com/GPflow/GPflow )中实现
通常,您可以做的是在数据集的子样本(装袋)上训练高斯过程。Bagging 在 sk learn 中实现,使用方便。请参阅每个示例文档。
将 $n$ 称为观察次数,$n_{bags}$ 是您使用的袋子数量,$n_{p}$ 是每个袋子的点数,这允许从 $O(n^3) 更改训练时间$ 到 $O(n_{bags}n_{p}^3)$。因此,使用小包但使用所有数据,您可以实现更短的训练时间。不幸的是,这通常会降低模型的性能。 the number of observations, the number of bags you use and the number of points per bag, this allow to change training time from a to a . Therefore, with small bags but using all the data, you can achieve a much lower training time. Unfortunately, this often reduces the performance of the model.
除了 bagging 技术,还有一些关于使高斯过程回归可扩展的积极研究。文章Kernel Interpolation for Scalable Structured Gaussian Processes (KISS-GP)提出将训练时间减少到 $O(n)$ 并附带 matlab 代码。 and comes with a matlab code.