問題タブ [belief-propagation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 無向グラフを三角測量するための汎用アルゴリズム?
ベイジアンネットワークでの信念伝播のためのジャンクションツリーアルゴリズムの実装をいじっています。ジャンクション ツリーを形成できるように、グラフを三角測量するのに少し苦労しています。
最適な三角形分割を見つけることが NP 完全であることは理解していますが、比較的単純なベイジアン ネットワークに対して「十分な」三角形分割をもたらす汎用アルゴリズムを教えていただけますか?
これは学習課題 (趣味であり、宿題ではありません) であるため、無向グラフが与えられた場合にアルゴリズムが三角グラフになる限り、空間/時間の複雑さはあまり気にしません。最終的には、何らかの近似を試みる前に、正確な推論アルゴリズムがどのように機能するかを理解しようとしています。
私は NetworkX を使用して Python をいじっていますが、典型的なグラフ トラバーサルの用語を使用したそのようなアルゴリズムの疑似コードの記述は価値があります。
ありがとう!
java - Bayesian Belief Network Framework "Infer.NET" に代わる Java はありますか?
Bayesian Belief Network フレームワーク - Infer.NET の Java 代替品はありますか? スケーラブル (大規模なデータセットのオンライン学習)、十分にサポートされている (最終更新は 2010 年以降)、オープン ソースであり、ネットワーク構造を簡単に記述できる場合に適しています。つまり、Infer.NET のすべての機能です。
propagation - 単純な標準的な信念の伝播
Zhang の論文Expert Finding in A Social Networkを読みました。式 (1) は、標準的な信念伝播に似た伝播ベースのアプローチです。これを行うためのコード例またはツールはありますか? 伝播スケジューラは並列実装である必要があるようです。ガイダンスをいただければ幸いです。
python - 信念の伝播の実装
ベイジアンネットワークを実装しようとしています。
私のメイン グラフは、信念伝播に使用したい因子グラフです。しかし、メッセージを計算するときの信念伝播では、すべての引数が関数に渡されるわけではなく、最終的な関数は結合分布の制限になります。
私の頭に浮かぶ最善の方法は、新しい値の限界値を計算するたびにすべての置換を行わないように、何らかの方法で関数を制限することです。
そのような機能を実装する方法をここで尋ねました。
そのようなことを行うためのより良い方法があるかどうか、または私がやりたい方法よりも簡単で高速な方法があるかどうかを知りたいです。
image-processing - 信念伝播を使用してオプティカル フローを実装する方法は?
この種の質問をstackoverflowでできるかどうかわかりませんが、ここでアルゴリズムの理解に関する質問をいくつか見たので、質問を投稿します。不適切な場合はお知らせください。
BP(Belief Propagation)アルゴリズムを使ってオプティカルフローを実装しようとしていますが、迷っています。
http://www.cs.cornell.edu/~dph/papers/bp-cvpr.pdfこのリンクを見たことがあります。彼らは OF を BP で実装したと言っていますが、その方法がわかりません。
彼らはコードをここに投稿しましたが、ステレオ ビジョンと画像復元の例のみが含まれています。オプティカルフローが必要です!
彼らが BP でどのようにステレオ ビジョンを実装したかを理解しています。しかし、私が理解していないのは、BP はラベル付けの問題を解決しているため、BP を使用する場合は、一連のラベルから各ピクセルに適切なラベルを割り当てる必要があるということです。
現在、オプティカル フローは 2 次元ベクトルを計算しています。ベクトルのセットをラベルとして作成していますか、つまり {(0,0},(1,0),(2,0),(1,1)...} で、各ピクセルに適切なラベルを割り当てていますか??ラベルが多すぎると時間がかかりすぎます!
BP を使用してオプティカル フローを計算する方法 (具体的には、ラベルのセットがどうあるべきか) について誰かが洞察を持っている場合は、アドバイスをください。
どんな助けでも大歓迎です。
ありがとう!
cluster-analysis - アフィニティ伝播のバイナリアプローチ
アフィニティ伝播のバイナリ変数モデルを実装していますが、それについて概念的な疑問があります。
ほとんどのアルゴリズムを理解でき、実装が機能していますが、メッセージの両方の値を送信する必要がない理由と、受信メッセージを追加した後に正の値が 1 に対応し、負の値が 0 に対応する理由がわかりません。
ありがとう
c# - C# でのデリゲートの結合 (Sum-Product Algorithm)
現在、離散変数の信念伝播を実装しています。
メッセージは関数です。新しい関数を作成するには、積と和を使用してそれらを組み合わせる必要があります。
現在、デリゲートを使用して基本的な実装を行っていますが、これを処理するためのより良い方法があるかどうかを知りたいです。また、デリゲートを使用してこれがどのようにスケーリングされるかについても懸念しています。
これが私の実装の例です:
これを達成するためのより効果的な方法はありますか?
python - pgmpy lib を使用した信念の伝播 - アルゴリズムの理解
現在、確率的グラフィカル モデルの実装に pgmpy lib を使用し始めています。この lib を使用して得られる確率は、手動で得たもの (たとえば、SamIam を使用) とは異なります。以下は、コンセプトのアイデアを確認するために SamIam で作成された非常に小さなグラフィカル モデルのスクリーンショットです。
pgmpyを使用したコード。
次の結果コード出力が得られます
phi(G) の値はサミアムと同じではありません。
Samiam で使用されているアルゴリズムによると、G_0 を取得する必要があります。
これらの phi(G) 値がどのようにカウントされているか (どのアルゴリズムが実際に使用されているか)、および SamIam と同じ値を取得する方法についてのヒントを教えてください。