問題タブ [emcee]
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.
performance - emcee を使用した MCMC サンプリングは、インテル xeon phi プロセッサーで非常に低速で実行されます。
したがって、ガウスプロセスのパラメーターのMCMCの次のコードがあります
コード:
関数は self.lnprob であり、次のコード セグメントで定義されています。
コード
コードは、私のラップトップ (Intel Core i5 第 7 世代) で 30 秒かかります。theta 配列のサイズは 4 で、Self.Xi のサイズは 2 です。
同じコードは、64 コアのインテル xeon phi プロセッサーで 400 秒以上かかります。
また、マルチプロセッシング プールのプール数を増やすと、時間が長くなるように見えることに気付きました。
インテル xeon phi プロセッサーでこれほど時間がかかる理由はありますか? Intel Xeon phi プロセッサで高速化するにはどうすればよいですか?
python - MCMC サンプリングが適切なパラメータ値に収束しない司会者
emcee
2 つのデータ母集団間の最適な境界を見つけるために、定義済みの尤度関数を使用して Python で MCMC サンプリングを実装しようとしています。
参照emcee
: http://dfm.io/emcee/current/user/line/
尤度関数は、線形境界線が与えられた場合に真陽性と真陰性の分類を計算し、2 つの値の差を最小化しながら合計を最大化するために使用されます。
このようにして、それぞれ 1 の TP および TN レートは 1 の尤度値を与え、0 の TP および TN レートは 0 の尤度値を返すと想像できます。
しかし、 と のパラメーター空間、勾配とオフセット (またはバイアス) を境界線でサンプリングしようとするm
とb
、ウォークに対して非常に大きな値や小さな値が得られます。
以下にサンプル コードを示します。これは、適切に分割された母集団を生成し、次にパラメータ値の初期推定値の周りに MCMC を生成します。ここで MCMC チェーンが適切な値にうまく収束しない理由がよくわからないので、助けていただければ幸いです。
次のコードは、すぐに実行できるはずです。
与えられた xy データの明らかな境界線を示す最初のテスト データ (バイナリ クラス ラベルで色分け):
サンプルが歩き、グラデーション パラメーター (上) とオフセット パラメーター (下) の奇妙なサンプリングを示しています。x 軸は MCMC ウォーク ステップ数を表し、y 軸は特定のステップでの MCMC パラメータ値を表します。