問題タブ [hidden-markov-models]
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 - 隠れマルコフモデルで確率を決定する方法は何ですか?
私は隠れマルコフモデルを学び始めており、wikiページとgithubには多くの例がありますが、ほとんどの確率はすでにそこにあります(雨の70%の変化、状態の変化の30%の可能性など..) . スペルチェックや文章の例は、本を研究して単語の確率をランク付けしているようです。
では、マルコフモデルには確率を計算する方法が含まれているのでしょうか、それとも他のモデルで事前に計算することを想定しているのでしょうか?
この質問がずれている場合は申し訳ありません。隠れマルコフモデルが可能性のあるシーケンスを選択する方法は簡単だと思いますが、確率の部分は私には少し灰色です(頻繁に提供されるため)。例や情報は素晴らしいでしょう。
マルコフモデルに慣れていない人のために、ここに例があります(ウィキペディアから)http://en.wikipedia.org/wiki/Viterbi_algorithmおよびhttp://en.wikipedia.org/wiki/Hidden_ Markov_model
java - マレットHMMトレーニングの問題
私は現在、HMMに関するマレットの途方もなく貧弱なドキュメントに苦労しています。データをインスタンス(ImportExample.javaスニペットから採用)にインポートすることができましたが、HMMモデルのトレーニングにそれらをどのように使用できるのか疑問に思っていました。私は最初にHMMインスタンスを作成することから始めましたが、次のことを行うかどうかがわかりませんでした。
または、同じデータアルファベットを次のように2回使用します。
どちらにせよ
次のエラーが発生します。
cc.mallet.types.FeatureVectorをcc.mallet.types.FeatureVectorSequenceにキャストすることはできません
私はあなたが提供できるどんな助けにも感謝するでしょう。
乾杯
algorithm - リアルタイム アプリケーション用のビタビ アルゴリズム
HMM と観測が与えられると、ビタビ アルゴリズムは、この観測を生成する隠れ状態シーケンスを推測できることを知っています。しかし、リアルタイムで使用したい場合はどうでしょうか? つまり、隠された状態を段階的に見つけるということです。観測シンボルが入力にあるたびに、次に来る観測シーケンス全体を知らなくても、隠れた状態が推測されます。リアルタイムで実行されているオーディオ アプリケーションにそれを使用したいので、観測は各時間フレームでのオーディオ機能の値のシーケンスになります。
algorithm - 三面サイコロの隠れマルコフモデル
私は HMM を教えられ、この宿題を出されました。一部は理解できましたが、それが正しいかどうかはわかりません。問題は:
ディーラーがコインを投げるのではなく、1、2、3 のラベルが付いた 3 面サイコロを振る別のゲームを考えてみましょう (3 面サイコロがどのように見えるかを考えないようにしてください)。ロードされた 2 つのサイコロ D1 と D2。各サイコロ Di について、数字 i が出る確率は 1/2 で、他の 2 つの結果が出る確率はそれぞれ 1/4 です。各ターンで、ディーラーは (1) 同じダイスを保持するか、(2) 他のダイスに切り替えるか、(3) ゲームを終了するかを決定する必要があります。彼は確率 1/2 で (1) を選択し、確率 1/4 で他のそれぞれを選択します。最初に、ディーラーは 2 つのサイコロのうち 1 つを同じ確率で選びます。
この状況の HMM を与えてください。アルファベット、状態、遷移確率、および放出確率を指定します。開始状態 start を含め、HMM が確率 1 の状態 start で始まると仮定します。終了状態 end も含めます。
次の一連のサイコロを観察したとします。 1 1 2 1 2 2. サイコロを振る順序を最もよく説明する一連の状態を見つけます。この数列の確率は? ビタビ表を完成させて答えを見つけてください。セルにバックトラック矢印を含めて、一連の状態をさかのぼって追跡できるようにします。次の事実のいくつかが役立つ場合があります。
log2(0) = −∞
log2(1/4) = −2
log2(1/2) = −1
log2(1) = 0- この一連のサイコロを振るには、実際には 2 つの最適な状態シーケンスがあります。状態の他のシーケンスは何ですか?
私が最初の部分で間違っていなければ、ここのようなことをしなければなりませんhttp://en.wikipedia.org/wiki/Hidden_Markov_model#A_concrete_exampleしかし、確率1から始まると仮定するものはわかりませんでした.
また、質問の2番目の部分でViterbiテーブルに対して何をしなければならないかわかりません。何らかのヒントや手がかりを与えてくれる人がいれば、それは素晴らしいことです。
machine-learning - 隠れマルコフモデルベースの分類器における状態数の影響
クラスター/コードブックの数、隠れマルコフモデルの状態の数の間の関係は何ですか
状態の数は、隠れマルコフモデルベースの分類器のパフォーマンスにどのように影響しますか?
machine-learning - Kevin Murphy HMM toolbokのlearn_dmm.mで使用されているアルゴリズムは何ですか?
PythonでKevinMurphyのtoolbokを使用するMATLABスクリプトを書き直します。
Python(Viterbi、Baum Welch、Backword Forward)にいくつかのHMMアルゴリズムの実装があることを知っているので、matlab->pythonの移植を行うために必要なものはすべて揃っていると思います。
私のMATLABスクリプトは、learn_dhmm.mで記述されたプロシージャを使用しています。
この手順が実際に何をするのかわかりません。
申し訳ありませんが、私はちょうど機械学習に近づいています
neural-network - 簡単な音声認識方法
はい、私は音声認識がかなり複雑であることを知っています(控えめな表現として)。私が探しているのは、おそらく20〜30のフレーズを区別する方法です。単語を分割する機能(個別のスピーチで十分です)は便利ですが、必須ではありません。ソフトウェアはユーザーに依存します(つまり、私が使用します)。私は既存のソフトウェアを探していませんが、これを自分で行うための良い方法を探しています。私はさまざまな既存の方法を調べましたが、音を音素に分割することは一般的ですが、私のニーズにはやや過剰なようです。
状況によっては、いくつかの簡単な音声コマンドを使用して、コンピューターのいくつかの側面を制御する方法を探しています。Windowsにはすでに音声認識ソフトウェアが搭載されていることは承知していますが、これを学習演習として自分でやってみたいと思います。コマンドは「OpenGoogle」や「Mute」のように単純です。私が念頭に置いていたのは(これが良い考えかどうかはわかりませんが)、いくつかのコマンドは複合的であるということです。したがって、「ミュート」は単に「ミュート」になります。一方、「開く」コマンドは個別に認識され、その後に接尾辞が付けられます(Google、Photoshopなど)。別のネットワーク/モデル/その他で認識されます。しかし、この方法でプレフィックス/単語の区切りを探すことで、個々のコマンドの数を増やすよりも良い結果が得られるかどうかはわかりません。
私はパーセプトロン、ホップフィールドネットワーク(私が理解しているものからはやや時代遅れですが)、HMMを調べてきましたが、これらの背後にある考え方は理解していますが(以前にANNを実装したことがあります)、どれがこのタスクに最適です。線形ベクトル量子化モデルも適切だと思いますが、この目的のために多くの文献を見つけることはできません。任意のガイダンス/リソースをいただければ幸いです。
python - pythonでkinectを使ったジェスチャー認識:うーん学習
Kinectを使ってPythonでジェスチャー認識をしたいです。
いくつかの理論を読んだ後、最善の方法の 1 つは、既知のジェスチャ データを使用した Hidden Markov Model (HMM) (baum welch または一部の EM メソッド) を使用した教師なし学習であり、訓練された HMM のセット (ジェスチャごとに 1 つ) を達成することだと思います。認識したい)。
次に、観測されたデータの最大対数尤度 (ビタビを使用) をトレーニング済みセットの HMM と一致させる認識を行います。
たとえば、データ (右手の座標 x、y、z) を kinect デバイスでいくつかのジェスチャー (挨拶、パンチを蹴る、手で円を描く) で記録して、いくつかのトレーニングを行います。
次に、最大 loglik を実行して観測された新しいデータの認識を実行し、訓練された各 HMM の最大 loglik を持つ前に保存されたジェスチャを選択します。
私の質問は次のとおりです。
- これはまったくばかげたことですか?
- 実際のケースに設定されたトレーニングの数は?
- 各 HMM の状態数は?
- リアルタイムでそれを行うことは可能ですか?
opencv - C++ による隠れマルコフ モデル
最近、C++ での隠れマルコフ モデルの実装を調べています。アクション認識 (OpenCV を使用) で使用するために、C++ で記述された既存の HMM ライブラリを使用できるかどうか疑問に思っていました。
私は「車輪の再発明」を避けることにしています!
音声認識用に設計された (ように見える) にもかかわらず、Torch3Visionを使用することは可能ですか?
私の考えでは、特徴ベクトルをシンボル/観測値に変換できれば (ベクトル量子化 - Kmeans クラスタリングを使用)、それらのシンボルをデコード、推論、パラメーター学習 (Baum–Welch アルゴリズム) に使用できます。このようにして、OpenCV の Torch3Vision で動作します。
これに関するヘルプは本当に感謝されます。