我们如何为GPflow中多输出GP的每个输出尺寸建模独立的噪声?

时间:2019-08-22 09:10:14

标签: gpflow

说我在用同位素数据输出 D 时遇到问题,我想对gpflow中多输出GP模型(本征共域化模型)的每个输出维度使用独立的噪声,即最常见的情况是:

a busy cat

我已经看到了一些在GPflow中使用多输出GP的示例,例如this notebookthis question

但是,对于gpflow中的GPR模型类来说,即使乘积核(即产品核),似然方差($ \ Sigma $)仍然是一个数字而不是 D 数字。指定了内核*共区域化。

有什么办法可以实现?

1 个答案:

答案 0 :(得分:1)

就像您可以为列X扩充一个列,该列为每个数据点(行)指定与其相关的输出(该列由{{1}的active_dims关键字参数指定}内核;请注意,它是从零开始的索引),您可以在列中增加Coregion来指定不同的可能性(Y进行了硬编码,要求索引位于SwitchedLikelihood的最后一个列-GPflow教程的varying noise notebook中有一个示例(演示2)。您只需要将两者结合起来,使用Coregion内核和SwitchedLikelihood,并使用指示输出的同一列来扩展X和Y!

但是,由于普通GPR仅在高斯似然下起作用,因此GPR模型已针对高斯似然进行了硬编码。 可能写一个版本,可以处理不同输出的不同高斯似然,但是您必须在新版本的Y方法中手动完成所有操作模型(包含_build_likelihood中的拼接代码)。

简单地使用可以处理任何可能性的SwitchedLikelihood模型会容易得多-对于高斯可能性,优化问题非常简单,应该易于使用VGP进行优化。