問題タブ [pymc3]
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.
python - PyMC3 の Categorical を使用した Softmax 選択確率
次のシナリオで、softmax 選択関数の単一パラメーターのパラメーター推定を実行しようとしています。
各試行では、3 つのオプション値 (例: [1,2,3]) が与えられ、被験者はオプション (0、1、または 2) から選択を行います。softmax 関数は、温度パラメーター (ここでは 0 ~ 10 の範囲) に応じて、オプション値を選択確率 (3 つの確率のベクトル、合計すると 1) に変換します。
各試行での選択は、softmax から計算された試行選択確率を持つカテゴリ分布としてモデル化されることになっています。カテゴリカルの選択確率はオプション値に依存するため、試行ごとに異なることに注意してください。
これが私が思いついたものです:
このコードは、50 などより大きい nTrials では失敗し、非常に長い警告/エラー メッセージが表示されます。
警告:
エラー:
私は PyMC (および Theano) にかなり慣れていないので、私の実装は本当にぎこちなく、最適ではないと感じています。どんな助けやアドバイスも大歓迎です!
フェリックス
編集:コードをノートブックとしてアップロードし、警告とエラーメッセージを完全に表示しました: http://nbviewer.ipython.org/github/moltaire/softmaxPyMC/blob/master/softmax_stackoverflow.ipynb
pymc - このモデルで find_MAP がエラーをスローするのはなぜですか?
pymc3 で単純なモデルを試していますが、find_MAP
メソッドを使用しようとすると次のエラーがスローされます。
非常によく似たコードは、ディリクレ分布と多項分布の代わりにベータ分布と二項分布を使用して機能しますが、次のコードは失敗します。
爆破しないようにモデルの推論設定を調整するにはどうすればよいですか?
python - PyMC決定論的関数で「if」ステートメントを使用できますか?
Cam Davidson-Pilon のProbabilistic Programming & Bayesian Methods for Hackersを読んだ後、PyMC を使用して隠れマルコフ モデル (HMM) の学習問題に挑戦することにしました。今のところ、コードは連携していませんが、トラブルシューティングを通じて、問題の原因が絞り込まれたと感じています。
コードを小さなチャンクに分割し、t=0 での初期確率と放出確率に注目すると、時間 t=0 での単一状態の放出/観測パラメータを学習できます。しかし、別の状態 (合計 2 つの状態) を追加すると、データ入力に関係なく、パラメーター学習の結果は同じ (そして正しくない) になります。そのため、コードの一部で何か間違ったことをしたに違いないと感じています。これにより、初期確率関数@pm.deterministic
からのサンプリングが許可されません。Init
コードのこの部分を使用して、状態 0 と状態 1 にそれぞれ対応する初期確率 p_bern
と放出確率 p_0
を学習することを目指しています。p_1
放出は、私が自分の関数で表現しようとしている状態を条件としてい@pm.deterministic
ます。この決定的関数に「if」ステートメントを含めることはできますか? それが問題の根源のようです。
私はすでに次のことを無駄に試みました:
@pm.potential
デコレーターを使用して共同ディストリビューションを作成する- 自分の場所の配置を変更する
Init
(どこに配置すればよいかわからないコードのコメントを見ることができます) - これ
@pm.stochastic
に似たものを使用してください
編集:クリスの提案に従って、ベルヌーイ ノードを決定論の外に移動しました。また、トラブルシューティングを容易にするために、コードをより単純なモデル (多項式ではなくベルヌーイ観測) に更新しました。
お時間をいただきありがとうございます。どんなフィードバックでも暖かく受け取られます。また、情報が不足している場合はお知らせください。
python - カテゴリ確率変数を使用してPyMC3で階層モデルを作成することは可能ですか?
PyMC3 を使用して 2 つのモデル ( Jake Vanderplas のブログの例best_theta()
) を比較しようとしていますが、変更したコードを機能させることができません (関数とlogL()
Jake のブログ投稿で説明されており、IPython ノートブック形式で入手できます):
この質問choice
で説明されているように、変数は (PyMC2 とは異なり) 整数ではなく RV オブジェクトであるため、例外が発生します。ただし、私のコードでは、それを機能させるために の値が重要です。choice
私の質問は、 RV の値にアクセスする方法choice
、またはより一般的にはカテゴリ確率変数を使用して階層モデルを設定する方法はありますか (つまり、カテゴリ RV の値を使用して別の RV の対数尤度を計算します)?
pymc3 - Pymc3 のカテゴリー混合モデル
私は Pymc3 が初めてで、https://en.wikipedia.org/wiki/Mixture_model#Categorical_mixture_modelに示されているカテゴリ混合モデルを作成しようとしています。「x」変数を接続するのに苦労しています。z変数を決定論的にする必要があるためだと思いますが、「x」が割り当てられている行でエラーメッセージが表示されます:「ValueError:3つの入力が必要ですが、2を取得しました。」. p関数は2つの入力しか受け付けないように見えるので、行き詰まっています。いろいろ試してみましたが、まだこれを機能させることができませんでした。