問題タブ [expectation-maximization]
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.
machine-learning - 反復条件付きモード E ステップ EM
EM アルゴリズムの E ステップの近似として ICM を使用することの数学的な正当性を知りたかったのです。
Eステップで理解しているように、アイデアは潜在変数の事後分布に等しい分布を見つけることです。これは、可能性が増加することを保証するか、下限を保証するいくつかの単純な分布ファミリーから可能な限り最良の分布を見つけることを保証します尤度関数の増加。
このような E ステップでの ICM の使用を数学的に正当化するにはどうすればよいでしょうか? 参照/派生/メモは非常に役立ちます。
algorithm - 期待値の最大化の再推定
通常、再推定の反復手順は、lambda.bar - lambda がイプシロン値よりも小さい場合に停止します。
このイプシロン値をどのように正確に決定しますか? 論文では一般的なイプシロン記号として書かれているだけで、実際に使用される値はデータによって変わると思います.
たとえば、最初の反復のラムダ値が 5*10^-22 の場合、2 回目の反復は 1.3*10^-15、3 回目は 8.45*10^-15、4 回目は 1.65*10^-14 などです。 .、アルゴリズムがそれ以上の反復を必要としない時期をどのように判断しますか?
さらに、同じアルゴリズムを別のデータセットに適用するとどうなるでしょうか? イプシロンの定義を変更する必要がありますか?
長い質問で申し訳ありません。それにかなり困惑しています... :)
parallel-processing - CUDA の動的並列処理の代替
私はCUDAプログラミングモデルとプログラミング全般に非常に慣れていないと思います。期待値最大化アルゴリズムを並列化しようとしています。コンピューティング機能 2.0 を持つ gtx 480 に取り組んでいます。最初は、デバイスが独自のスレッドを起動する理由はないと思っていましたが、もちろん、悲しいことに私は間違っていました。このpdfに出会いました。
http://docs.nvidia.com/cuda/pdf/CUDA_Dynamic_Parallelism_Programming_Guide.pdf
残念ながら、動的並列処理は、計算能力が 3.5 の最新かつ最高の GPU でのみ機能します。詳細に飛び込むことなく、動的並列処理に代わるものは何ですか? CPU EM アルゴリズムのループには多くの依存関係があり、高度にネストされているため、動的並列処理が魅力的な機能になっているようです。私の質問が意味をなすかどうかわからないので、説明が必要かどうか尋ねてください。
ありがとうございました!
opencv - 期待値の最大化 get covs 関数が OpenCV 2.4.6 で機能せず、トレーニング関数の後のクラスター変更の数
2 つの質問があります。最初の 1 つは、train 関数の後で ncluster が 10 から 80 に切り替わる理由です。2 番目: OpenCV を使用してコードを C から C++ に渡していますが、いくつか問題があるようです。モデルの covs を取得しようとすると例外が発生します。コードは次のとおりです。
デバッグ後、最後の行の後にエラーが表示されます。システムは、myprogram.exe がブレークポイントをトリガーしたことを示すウィンドウを表示します。[続行] をクリックすると、Microsoft Visual C++ Debug Library ウィンドウに次のファイルが表示されます。行: 1322; 式: _CrtIsValidHeapPointer(pUserData)。
この男にはほぼ同じコードが機能します: OpenCV 2.4.2 で CV::EM クラスを使用するには?
opencv - OpenCV で期待値の最大化を使用して人に楕円を描画する
どうすれば目標に近づくことができるのか、少し疑問があります。人を記録している外部カメラがあり、すべての人に楕円を描きたいです。
今私がしているのは、フレームから人々の特徴点を取得し (マスクを使用して人々の特徴点のみを取得します)、EM アルゴリズムを設定し、サンプル (抽出された特徴点) でトレーニングします。 . クラスターの数は、画像の人の数の 2 倍です (コードブックを使用したピクセル カウントなどの他の方法を使用して EM アルゴリズムを開始する前に取得します)。
私の質問は
- (a) 最初のフレームだけをトレーニングしてから、次のフレームで予測を使用する必要がありますか? また、
- (b) すべてのフレームで特徴点を使用して電車を使用しますか?
現在、オプション b) を実行しています (予測は使用しません)。予測の使用方法がよくわからないからです。
もし私がa)をしたら、それを手伝ってくれますか?その後、楕円を描く方法を教えてください. b) を行う場合、すべての人に楕円を描くのを手伝ってもらえますか? 知っているので、cov、平均などを使用して同じ人に異なる楕円を取得しました(たとえば、腕用)。
私が達成したいのは、ガウス モデルを使用したこの論文です : %2Fabs_all.jsp%3Farnumber%3D5580105%26tag%3D1
matlab - 非一様隠れマルコフモデルを用いた降雨予測
私は HMM を初めて使用しますが、十分な文献を読みました。私は、大気パラメータを使用して降水量を予測するプロジェクトに取り組んでいます。
10 年間、観測可能な大気の 4 つの特徴 (湿度、温度、風、海面の高さ) があります。降水量のデータも持っています。
私が理解できるように、毎日の気象状態は、空間降雨量に基づいて指定されます。では、ここで質問です。100 日間のデータがあるとします。
降雨量 = { 1,2,3,4... 100}. では、気象状態を生成したい場合はどうすればよいでしょうか?
仮定しましょう
見つけ方
- P(X_0) 初期パラメータ、
- P(X_t|X_t-1) 状態遷移行列、
- P(Y_t|X_t) 状態に対する観測の依存性
状態を生成するために何らかのクラスタリングが必要ですか?
MATLABでコーディングしています。
あなたの例またはプログラムに実装する手順を説明できる任意のソースを用意できます。
c++ - CvEM::getCovs 関数のアクセス違反
2D データのガウス混合モデリングに cvEm を使用しています。train 関数を呼び出した後、True (トレーニングの成功に署名) が返され、分類結果 (異なるクラスターが異なる色で表示される) も妥当なように見えますが、クラスターの共分散行列を取得中にアクセス違反エラーが発生します!
関連するコード行は次のとおりです。