【问题标题】:Can kernels other than periodic be used in SGPR in gpflowgpflow中的SGPR是否可以使用除周期性以外的内核
【发布时间】:2018-05-15 04:56:18
【问题描述】:

我对 GPR 还是很陌生。如果您对以下问题提供一些建议,我将不胜感激:

我们可以在稀疏高斯过程中使用 Matern52 内核吗?

选择伪输入 (Z) 的最佳方法是什么?随机抽样合理吗?

我想提一下,当我使用 Matern52 内核时,以下错误会停止优化过程。我的代码:

k1 = gpflow.kernels.Matern52(input_dim=X_train.shape[1], ARD=True)
m = gpflow.models.SGPR(X_train, Y_train, kern=k1, Z=X_train[:50, :].copy())

InvalidArgumentError(参见上面的回溯):输入矩阵不可逆。 [[节点:gradients_25/SGPR-31ceaea6-412/Cholesky_grad/MatrixTriangularSolve = MatrixTriangularSolve[T=DT_DOUBLE, adjoint=false, lower=true, _device="/job:localhost/replica:0/task:0/device:CPU: 0"](SGPR-31ceaea6-412/Cholesky, SGPR-31ceaea6-412/eye_1/MatrixDiag)]

任何帮助将不胜感激,谢谢。

【问题讨论】:

    标签: python-3.x tensorflow machine-learning gaussian gpflow


    【解决方案1】:

    您是否在一小部分测试数据集上进行过尝试,或许可以在此处发布?没有理由 Matern52 不应该工作。随机采样诱导点应该是一个合理的初始化,尤其是在更高维度。但是,如果您最终得到一些彼此非常接近的诱导点,您可能会遇到问题(这会使 K_{zz} = cov(f(Z), f(Z)) 矩阵条件不佳,这可以解释为什么Cholesky 失败)。如果您的 X_train 尚未洗牌,您可能需要使用 Z=X_train[np.random.permutation(len(X_train))[:50] 来获得洗牌的索引。添加白噪声内核也可能会有所帮助, kern=k1+gpflow.kernels.White() ...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      • 2010-10-09
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2015-05-14
      相关资源
      最近更新 更多