0

gpflow GP 回帰の例 ( https://gpflow.readthedocs.io/en/develop/notebooks/basics/regression.html ) を自分のデータに適応させようとしています。100 のモデル実行があり、それぞれが配列内に 10 個のパラメーターを持ちます: modelled_pa​​rams (100,10)。次に、各モデルのスコアは、area_score (100,1) の配列に含まれます。

私のコードは次のとおりです。

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: 入力行列は反転できません。[[node gradient_tape/triangular_solve/MatrixTriangularSolve (site-packages/gpflow/optimizers/scipy.py:146 で定義)]] [Op:__inference__tf_eval_2362]

入力操作が原因でエラーが発生した可能性があります。ノード gradient_tape/triangular_solve/MatrixTriangularSolve に接続された入力ソース操作: Cholesky (site-packages/gpflow/models/gpr.py:73 で定義)

関数呼び出しスタック: _tf_eval

70 x 2 配列に対する以前の試行では、この反転エラーは発生していません。

これを克服するための助けをいただければ幸いです。

ありがとう、ジェレミー。

4

1 に答える 1

0

Likelihood Noise を大きくすると、Cholesky で分解しようとする行列の対角線に小さな値が効果的に追加されるため、効果的です。

尤度ノイズを最適化する場合は、おそらくそれを下げるか、単に修正します。

于 2020-06-22T23:58:40.207 に答える