首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >回归时gpflow矩阵求逆错误

回归时gpflow矩阵求逆错误
EN

Stack Overflow用户
提问于 2020-06-01 22:40:47
回答 1查看 314关注 0票数 0

我正在尝试使gpflow GP回归示例(https://gpflow.readthedocs.io/en/develop/notebooks/basics/regression.html)适应我自己的数据。我有100个模型运行,每个模型在一个数组中有10个参数: modelled_params (100,10)。然后,每个模型在数组中都有一个分数: area_score (100,1)。

我的代码是:

代码语言:javascript
复制
k =  gpflow.kernels.Matern52(active_dims=[0]) + gpflow.kernels.Matern52(active_dims=[1]) \
+ gpflow.kernels.Matern52(active_dims=[2]) + gpflow.kernels.Matern52(active_dims=[3]) \
+ gpflow.kernels.Matern52(active_dims=[4]) + gpflow.kernels.Matern52(active_dims=[5]) \
+ gpflow.kernels.Matern52(active_dims=[6]) + gpflow.kernels.Matern52(active_dims=[7]) \
+ gpflow.kernels.Matern52(active_dims=[8]) + gpflow.kernels.Matern52(active_dims=[9])

#build and optimise model model - change method and kernel later
m = gpflow.models.GPR(data=(modelled_params,area_score), kernel=k, mean_function=None)
# for some reason get a matrix inversion problem at this stage 
opt=gpflow.optimizers.Scipy()
opt_logs = opt.minimize(m.training_loss, variables=m.trainable_variables, options=dict(maxiter=1000))

这会抛出以下错误: InvalidArgumentError:输入矩阵是不可逆的。[节点包(定义在site- gradient_tape/triangular_solve/MatrixTriangularSolve /gpflow/optimizers/scipy.py:146)]

错误可能源于输入操作。连接到节点gradient_tape/triangular_solve/MatrixTriangularSolve: Cholesky的输入源操作(定义在site-packages/gpflow/models/gpr.py:73)

函数调用栈:_tf_eval

之前在70 x 2数组上的尝试没有此反转错误。

任何帮助克服这一点的人都很感激。

谢谢,杰里米。

EN

回答 1

Stack Overflow用户

发布于 2020-06-23 07:58:40

增加可能性噪声应该会有所帮助,因为这实际上会在您尝试通过Cholesky分解的矩阵的对角线上添加一个小值。

如果你优化了似然噪声,可能会降低它的下限,或者直接修复它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62134708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档