0

假设我在使用同位素数据的D输出时遇到问题,我想在 gpflow 中为多输出 GP 模型(内在共区域化模型)的每个输出维度使用独立噪声,这是最常见的情况,例如:

一只忙碌的猫

我已经看到了一些在 GPflow 中使用多输出 GP 的例子,比如这个笔记本这个问题

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

有没有办法做到这一点?

4

1 回答 1

1

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

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

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

于 2019-08-22T10:17:55.320 回答