SGPMC の論文 [1] に関する限り、事前トレーニングは SVGP とほとんど同じであるはずです。q_sqrt=None
ただし、実装 (現在の開発バージョン) は少し異なり、ディスパッチ プログラミング スタイルが原因で、すべてを理解するのに問題があります (特に の条件付きで何が起こるか)。
違いはq_mu
/がその正規分布q_var
で表されるようになったことです。self.V
他の唯一の変更は、サンプリングに必要なため、ホワイトニングがデフォルトでオンになっていることですか?
奇妙なことに、SPGMC の確率的最適化 (まだサンプリングなし) は、SVGP クラスよりも私の特定のデータでかなりうまく機能しているように見えます。基本的に同じはずなので、少し混乱しました。
[1]ヘンスマン、ジェイムズ他 「変分的にまばらなガウス プロセスの MCMC。」神経情報処理システムの進歩。2015年。
Edit2 :現在の開発ブランチでは、(負の) training_objective が基本的に:
VariationalExp + self.log_prior_density()
で構成されているのに対し、SVGP ELBO はVariationalExp - KL(q(u)|p(u))
.
self.log_prior_density()
明らかにすべての以前の密度を追加します。したがって、トレーニング目標は、SGPMC 論文の式 (7) (白色化された最適変分分布) のようになります。
したがって、事後変数の最適な変分近似を最適化するp(f*,f, u, θ | y)
ことで、誘導点の MAP 推定を取得できますか?