解释 GPFlow 中约束参数的先验

Interpreting priors on constrained parameters in GPFlow

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

我想在 GPFlow 模型(在本例中为 RBF 内核)中的内核的超参数上放置先验信息。这很容易做到——例如,我可以写:

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

关于内核方差参数。

我不确定的是这个语句对约束参数做了什么,比如上面的方差。它是约束正的,手册上写道还有一个不受约束的表示,log(exp(theta) - 1).

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

谢谢!

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

请注意,变量的变化是使用变换的雅可比矩阵计算的。

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

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