最新のGPML MatlabコードGPML Matlabコードをダウンロードし、ドキュメントを読み、問題なく回帰デモを実行しました。しかし、私が直面している回帰問題にそれを適用する方法を理解するのに苦労しています。
回帰問題は次のように定義されます。
ましょうである入力ベクトルとであり、それに対応するターゲット。個の入力のセットは行列配置され、対応するターゲットは行列格納されます、はの平均目標値です。
二乗指数関数を使用して、GPRモデルをトレーニングしたいと思います。
、
ここでに等しい場合と、さもなければ。ハイパーパラメーターは、はトレーニングデータの想定ノイズレベルで、は長さスケールです。
モデルをトレーニングするには、ハイパーパラメーターに関して負の対数限界尤度を最小化する必要があります。
ここで、cは定数であり、行列はハイパーパラメーターの関数です(方程式k(xi、xj)= ...を参照)。
GPML Webサイトで提供されているデモに基づいて、GPML Matlabコードを使用してこれを実装する私の試みを以下に示します。
covfunc = @covSEiso;
likfunc = @likGauss;
sn = 0.1;
hyp.lik = log(sn);
hyp2.cov = [0;0];
hyp2.lik = log(0.1);
hyp2 = minimize(hyp2, @gp, -100, @infExact, [], covfunc, likfunc, X1, Y1(:, n));
exp(hyp2.lik)
nlml2 = gp(hyp2, @infExact, [], covfunc, likfunc, X1, Y1(:, n));
[m s2] = gp(hyp2, @infExact, [], covfunc, likfunc, X1, Y1(:, n), X2);
Y2r(:, n) = m;
X1にはトレーニング入力が含まれています
X2にはテスト入力が含まれています
Y1にはトレーニングターゲットが含まれています
Y2rはモデルの適用からの推定です
nは、出力ベクトルの各要素を回帰するために使用されるインデックスです
問題を考えると、これはGPRモデルをトレーニングして適用する正しい方法ですか?そうでない場合、何を変更する必要がありますか?