0

正如问题所述,我想知道如何从 GPFlow 中的 SVGP 模型中获取噪声方差(而不是信号方差)。为了澄清,我所说的噪声方差是指高斯似然的参数,我理解它是观测值的预测方差减去潜在函数的预测方差之间的差异(后者是我所说的信号方差)。

SVGP 实际上不是我的目标,我试图理解异方差模型,但它也使用 SVGP,所以我想我会从那里开始。

4

1 回答 1

0

似然对象存储在model.likelihood. 对于精确的高斯过程回归模型(在 中实现gpflow.models.GPR),这始终是一种Gaussian可能性,您可以使用其likelihood.variance属性访问噪声方差。因此,如果您将模型定义如下,

model = gpflow.models.SVGP(kernel, gpflow.likelihoods.Gaussian(0.01), inducing_variable, ...)

然后您可以使用 . 访问当前值(优化后)model.likelihood.variance

或者model.likelihood.variance.numpy(),如果您希望它为 numpy 类型——这将是一个标量(0 维)数组,您可以使用model.likelihood.variance.numpy().item().

对于异方差模型,一个 GP 参数化均值,第二个参数化方差,因此您可以简单地使用第二个 GP 的预测(然后您必须通过您正在使用的链接函数将其传递)。

于 2021-12-08T10:43:59.030 回答