1

我不确定是否要在github上提出问题,但我认为这不是一个问题,而是我缺乏理解,所以我在这里发布。

我想在 GPFlow 模型(在这种情况下为 RBF 内核)中对内核的超参数进行先验。这很容易做到——例如,我可以写:

kern.variance.prior = gpf.priors.Gaussian(0, 1)

关于核方差参数。

我不确定的是该语句对约束参数的作用,例如上面的方差。它是受约束的,并且手册中写道,还有一个不受约束的表示形式,log(exp(theta) - 1)。

我想了解的是先验放在什么位置。这个正态分布是放在无约束的表示上,还是直接放在变换后的表示上?后者会有点奇怪,因为它支持负值(也许我应该只使用具有正支持的分布?)。

谢谢!

4

1 回答 1

3

是的,分布放置在受约束的 (+ve) 参数上。

请注意,变量的变化是使用变换的雅可比行列式计算的。

诚然,在这种情况下,将高斯先验放在 +ve 变量上毫无意义。结果可能是你之前有一个截断的高斯,但我必须检查......这不是它的预期使用方式!

如果先验与约束不兼容,也许 GPflow 应该警告用户?欢迎 PR。

于 2019-07-17T07:45:56.533 回答