私は RBM を 2 か月間研究し、途中で Python を使用し、あなたの論文をすべて読みました。私は問題を抱えています。ソースに行ってみませんか?せめて、あなたが返事をする時間があるかもしれないというチャンスをつかもうと思いました。
私の質問は、制限付きボルツマン マシンの対数尤度に関するものです。非常に小さいモデルを除くすべてのモデルで正確な対数尤度を見つけることは難しいため、対照的な発散、PCD、疑似対数尤度などを導入することを読んだことがあります。小型モデル?
この式の定義をいくつか見つけましたが、すべてが異なっているようです。Tielemen の 2008 年の論文「尤度勾配への近似を使用した制限付きボルツマン マシンのトレーニング」で、彼は対数尤度バージョンのテストを実行して、他のタイプの近似と比較しますが、彼が使用した公式については述べていません。私が見つけることができる最も近いものは、エネルギー関数をパーティション関数で使用する確率ですが、構文を完全に理解していないため、これをコーディングできませんでした。
Bengio らの「Representation Learning: A Review and New Perspectives」では、対数尤度の方程式は、sum_t=1 から T (log P(X^T, theta)) に等しく、sum_t=1 から T( log * sum_h in {0,1}^d_h(P(x^(t), h; theta)) ここで、T はトレーニング例です。これは 11 ページの (14) です。
唯一の問題は、他の変数が定義されていないことです。x はトレーニング データのインスタンスだと思いますが、上付き文字 (t) は何ですか? また、theta は潜在変数 h、W、v であると仮定します…しかし、これをどのようにコードに変換しますか?
私が求めているのは、変数が何を表しているかを理解できるように、特定のモデルの対数尤度を見つけるためのコード (Python、疑似コード、または任意の言語) アルゴリズムを教えてもらえますか? そうすれば、単純なケースでは、正確な対数尤度を見つけて近似値と比較し、近似値が実際にどれだけ優れているかを確認できます。