Gaussian Processes:GPMLを多次元出力に使用する方法


13

GPMLを使用して多次元出力(おそらく相関)でガウスプロセス回帰を実行する方法はありますか?

デモスクリプト 私は1Dの例を見つけることができます。

同様の質問 CV上の多次元入力のタックルケース。


私は彼らの本を読み、何かを見つけることができるかどうかを確認しました。で第九章この本(9.1節)の、彼らは、複数の出力のこのケースを言及しています。彼らはこれに対処するためのいくつかの方法について言及しました。1つは相関ノイズプロセスを使用し、2つはCokriging(事前相関)を使用します。

これらのアイデアをどのようにしてGPMLフレームワークに組み込むことができるのか、まだわかりません。


また、多次元出力をサポートする他のGPライブラリ/フレームワークはありますか?


「構造化データの予測」では、入力と出力の間の結合カーネルの1クラス(カーネル密度推定)のケースでSVMを利用する方法について説明しています。どちらもカーネルマシンであることを考えると、このアプローチは機能するはずです。私は似たようなことを述べている論文を見つけました。datamin.ubbcluj.ro/tr/2011/sogp.pdf構造化学習アルゴリズムをフィッティングする私の試みはかなりひどいので、これがどのように積み重なっているかわかりません。
ジェシカコリンズ

回答:


7

私は信じツインガウスプロセスは、あなたが探しているまさにです。紙自体の要約よりもモデルを説明することはできないので、コピーして貼り付けます。

ツインガウス過程(TGP)について説明します1、ガウスプロセス(GP)事前分布[2]を共変量と応答の両方で使用する一般的な構造化予測法。テストの例では、同様の入力が同様の知覚を生み出し、これが平均して周辺分布の間で保持されるという目標を強調しています。TGPは、一般的なGPのように共変量間の相互依存関係だけでなく、応答間の相互依存関係もキャプチャするため、入力と出力の両方の相関関係が考慮されます。TGPは、最近導入されたHumanEvaベンチマークで単眼およびマルチカメラのビデオシーケンスから3D人間のポーズを再構成するための有望な結果とともに例示されています。複数の人と複数の活動からのデータを使用して、共同で訓練されたモデルの3Dマーカーごとに平均5 cmの誤差を達成します。この方法は高速で自動です。初期ポーズの手作業、カメラのキャリブレーションパラメーター、またはトレーニングやテストに使用される被験者に関連付けられた3Dボディモデルの可用性を必要としません。

著者は、開始するためのコードとサンプルデータセットを惜しみなく提供しています。


@caoyのサイトへようこそ。そのリンクに何があるかについて少し情報を提供していただけませんか?こうすることで、読者は彼らに追求する価値があるかどうかを知ることができ、将来のlinkrotの場合に価値のあるものがここにあることを意味します。
ガン-モニカの回復

@ gung、thx、要約がうまくいくことを願っています。
Yanshuai Cao 2013

@caoy ...ツインガウスプロセスでの出力の予測分布平均と分散について詳しく説明していただけますか?
Sandipan Karmakar 2017

3

多次元出力の短い回答回帰は少しトリッキーであり、私の現在の知識レベルではGPMLツールボックスに直接組み込まれていません。

長い答え多次元出力回帰問題を3つの異なる部分に分解できます。

  1. 出力は互いに関連しいません -1dケースのデモスクリプトのように、出力を個別に回帰します。
  2. 出力は関連していますが、それらの間の関係がわかりません -基本的に、出力間の内部関係を学びたいと思います。この本で述べているように、coKrigingは開始するのに良い方法です。GPML以外にも、コクリギングを直接実行できるソフトウェアがあります。ooDace
  3. 出力は関連して、あなたがしているそれらの間の関係を知っている -正規cokrigingを実行しますが、あなたはどちらか(ログ周辺尤度を最小限にしながら)で述べたようオプティマイザに制約を適用することによって、出力間のハード制約を適用することができますホール&黄2001またはConstantinescu&Anitescu 2013で述べられているように、前の関数に関係を適用します。

それが役に立てば幸いです:)


2

これは、scikit-learnのモジュールで、驚くほどうまくいきました。

http://scikit-learn.org/stable/auto_examples/gaussian_process/plot_gp_regression.html

# Instanciate a Gaussian Process model
gp = GaussianProcess(corr='cubic', theta0=1e-2, thetaL=1e-4, thetaU=1e-1,
                     random_start=100)

# Fit to data using Maximum Likelihood Estimation of the parameters
gp.fit(X, y)

# Make the prediction on the meshed x-axis (ask for MSE as well)
y_pred, MSE = gp.predict(x, eval_MSE=True)
sigma = np.sqrt(MSE)

1

私はマルチ出力ガウスプロセスを探していましたが、コンボリューション法、混合効果モデリング法、そして最新の1つのツインガウスプロセス(TGP)など、さまざまな方法で操作できました。

ツインガウスプロセス(TGP)の概念に疑問があります。誰かが私を助けてくれますか?

TGPでは、著者は予測された出力()を見つけて、入力と出力の間のKLの相違を最小化しています。しかし一般的には、出力の予測分布、つまりを探します。ここで注目すべきことの1つは、予測分散、つまり、はその中で役割を持たないということです。TGPの場合には、予測出力される予測分布の平均と同じであり? PY*|Yμσ2σ2Y Y Yy^p(y|y)(μ,σ2)σ2yy^y

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.