問題タブ [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.
signals - 音声認識 - HMM アプローチ
理論は本当に。
私は音声アルゴリズムを開発する予定で、どうにかして HMM (隠れマルコフ モデル) を構築する必要があります。これで、1 つの基本的なアイデアが得られました.確率に使用され、これを音声認識に使用できます。わかりましたので、ウェブサイトからこの引用を見つけました:
「語彙内の各単語に対して HMM が構築され、その後、音の文字列が各 HMM と比較され、どのモデルが最も一致する可能性が高いかが判断されます。」
今、私はこれを理解していますが、私が理解していないのは..HMMを実装するには、語彙(つまり、英語の辞書)の各単語と頻度を取得する必要がありますか?電話?HMM は電話を表す最も正確な単語を見つけますか?
誰かがこれに答えてくれることを願っています、
ありがとう :)
java - ゲームにおける隠れマルコフモデル
わかりました、私はここで HMM の概念に比較的慣れていません。
私が現在知っていることは、指定された数の状態 (N)、指定された数の観測シンボル (M)、および指定された観測シーケンス (O) を持つ未知のモデルの場合、O の確率を最大化するモデルを見つけることができるということです。
これで、このドキュメントのコードを利用する HMM を作成しましたhttp://www.cs.sjsu.edu/~stamp/RUA/HMM.pdf -> セクション 7 疑似コード
AB と pi の初期値は約 1/N と 1/M です。数値が正確ではなく似ているように、matlab を使用して数値を生成しました。
ここで、O の長さが 1000 で、疑似コードに基づいてそれを HMM にフィードするとします。最終状態は、O に適合するように調整される A 、 B 、および pi のモデルを取得することです。これまでのところ、正しく進んでいますか?
もしそうなら、私がやりたい次のことは、将来の可能性のある観測1001(o1001)を見つけることです。
HMM についての私の漠然とした理解では、私がする必要があるのは、最後に得たものから、現時点で最も可能性の高い状態 (1000 回の観測を学習した後に A から取得) を取得し、そこから最も可能性の高い観測を見つけることです ( Aから来る状態のB行列の行を見る)
1001 番目の観測値を予測する方法に関する最後の部分については、よくわかりません。これまでのところ正しい軌道に乗っているかどうか誰かに知らせてもらえますか?
java - 隠れマルコフ モデル、以前の実装に関する明確化
隠れマルコフモデルを試しています。私は実際に彼らと一緒に働いた経験がないので、いくつかの実装例をチェックすることにしました.
以下の実装を見て、可変ステップを取る Baum-Welch アルゴリズム (train メソッドの下にある) の目的について少し混乱しました。トレーニング セットの提供は理解していますが、手順の提供は理解していません。ドキュメントからは理解できないので、誰かがこれについて説明していますか。
元のコードhttp://cs.nyu.edu/courses/spring04/G22.2591-001/BW%20demo/HMM.javaへのリンクは、私の投稿ではコードがうまく表示されていないためです。
他の 2 つの質問は、Forward-Backward アルゴリズムの Forward 部分を実装する Forward メソッドに関するものです。HMM について調べてみると、モデルをトレーニングした後、この方法のようなものを使用して将来の観測を予測する必要があることがわかりました。では、パラメータ O (出力シーケンスを表す) は、この時点までの一連の観測にすぎないのでしょうか?
この方法でいくつかの実験を行ったところ、ドキュメンテーションにある順方向変数が返されました。これは、一連の確率のように見えます。これらは将来の観測にどのように変換されますか?
私は自分にとって非常に難しいプログラミングの領域を掘り下げているので、このことを理解するのを手伝ってくれて本当に感謝しています!
video - 高度なビデオ分析-それを噛む方法は?
次のようなアプリケーションを実行する必要があります。
- ビデオカメラからビデオデータをキャプチャし、
- いくつかの処理(モンテカルロ法、マルコフのフィールドとチェーンなど)を実行します。
- データをビデオファイルとして保存し、処理に関する情報を含む上面を強化します(たとえば、見つかったオブジェクトにマークが付けられます)。
- 将来の統計管理のために、すべて(ビデオ自体ではなくオブジェクトの位置など)をデータベースに保存します。
これらはすべて、リアルタイムで継続的に実行する必要があります。
私はデータベースプログラマー(C#、Java、Python)なので、私にとっては新しいものです...実行する必要のある処理についてはよく知っていると言われていますが、理論的には、どの言語を選択して開始するかを知っています。手順、計算...必要なのはツールだけです。
c# - 多重回帰HMMモデルを推定するAccord.NET
Accord.NET プロジェクト ホーム (http://code.google.com/p/accord/) には、一連の 1 変数観測に基づく隠れマルコフ モデルの作成、トレーニング、および評価の例が含まれています。同じことをしたいのですが、多くの変数のシーケンスを使用します。従属変数と複数の独立変数を持つ重回帰構造を想定しています。出力に各状態の推定切片と係数、および遷移確率行列が含まれる HMM を推定できるようにしたいと考えています。例としては、株式リターンの時変ベータがあります。たとえば、ret(IBM) = インターセプト + b1*ret(インデックス) + b2*ret(SectorETF) + エラーですが、インターセプト、b1、および b2 は状態に依存します。
Marcelo Perlin は、Matlab の MS_Regress パッケージでまさにこの機能を提供しています。ただし、C# でこの機能が必要です。したがって、(1) Accord.NET ライブラリを使用して重回帰 HMM モデルを推定する、(2) Marcelo Perlin のパッケージを C# に変換する、または (3) 私の目標を達成する方法に関する他のアイデアのいずれかについて、どんな助けも大歓迎です。
ありがとうございました!
python - トレーニング済みの NLTK モデルの酸洗い
だから私は現在、次のような手術データのセットで隠れマルコフモデルをトレーニングしています:
参考になれば、「モデル」は「HiddenMarkovModelTagger 15 の状態と 90 の出力シンボル」として与えられます
ただし、私のマシンでこの完全なトレーニングを実行するには、1 時間近くかかります。nltk モデル出力「モデル」をシリアル化して、セッション間でロードおよび保存できるようにしたいと考えています。私は読んだことがありますが、誰もが Python の組み込みの pickle を使用しているようです。これは、既知のデータ型に対してすべてうまく機能します。このコードを使用して、トレーニング済みのモデル変数をピクルすることもできます。
しかし、ピクルス化されたファイルを読み込もうとすると、次のエラーが発生します。
誰かがこれを回避する方法を見つけましたか? NLTKの問題ですか?
simulation - 隠れマルコフモデルで遷移行列と開始状態が与えられた場合の放出のセットの生成
隠れマルコフモデルの遷移行列、放出行列、および開始状態があります。一連の観測 (放出) を生成したいと考えています。しかし、私は一つのことにこだわっています。
2 つの状態 (または排出量) を選択する方法を理解しています。イベント A の確率が の場合x
、イベント B (または実際には A ではない) は確率 で発生し1-x
ます。乱数 を使用して A と B のシーケンスを生成するにrand
は、次のようにします。
これを 2 つ以上の変数に拡張する方法がわかりません。たとえば、イベント A が確率 で発生しx1
、イベント Bが発生しx2
、イベント Cが で発生するような 3 つのイベントが発生した場合1-(x1+x2)
、上記の擬似コードをどのように拡張すればよいでしょうか?
グーグルで答えが見つかりませんでした。実際、オンラインのメモの多くが想定している基本的な事実が欠けているような印象を受けます。:-/
algorithm - 遷移確率と放出確率を推定するためのビタビ トレーニングまたは Baum-Welch アルゴリズム?
ビタビ アルゴリズムを使用して、HMM で最も可能性の高いパス (状態のシーケンス) を見つけようとしています。ただし、観測 (データ) から推定する必要がある遷移行列と排出行列はわかりません。
これらの行列を推定するには、Baum-Welch トレーニング アルゴリズムと Viterbi トレーニング アルゴリズムのどちらを使用すればよいですか? なんで?
ビタビ トレーニング アルゴリズムを使用する必要がある場合、適切な疑似コードを提供してくれる人はいますか (見つけるのは簡単ではありません)。
matlab - 隠れマルコフ モデル ツールボックス/ライブラリ
現在、自分のプロジェクトで隠れマルコフ モデルを使用しようとしています。インターネットを検索したところ、MATLAB または C/C++ で多くの隠れマルコフ モデルの実装が見つかりました。実際、Matlab は統計ツールボックスを提供しており、これには隠れマルコフ モデルの実装が含まれています。私はこの分野の初心者で、どのツールボックスまたはライブラリが最適かを考えていました。隠れマルコフモデルの統計ツールボックスを購入するのは賢明ですか? さらに、このモデルを画像処理のコンテキストで使用する予定です。ありがとう!
statistics - 隠れマルコフ モデル - 音素の識別
音素を識別して、誰かが「はい」または「いいえ」のどちらを言っているのかを識別できるようにするプロジェクトを開発しています。
これまでのプロジェクトでは、ゼロクロッシングを使用してその人の発言を特定してきました。これは非常にうまく機能し、理解するのに十分簡単に思えます。ただし、このプロジェクトにはいくつかの拡張が必要であり、隠れマルコフ モデルを使用して開発する必要があります。
私の質問はこれです:
すでに完了した作業を消去せずに、隠れマルコフ モデルを開発したい。つまり、ブロックの合計だけでなく、ゼロ交差の数を数えることによって、考慮する必要のないデータを取り除きます。
これらの音素を識別できるようにするために、HMM をトレーニングするために必要なデータがわかりません。例えば
ゼロクロッシングを使用すると、次のことを識別できます。
はい - ゼロクロッシングは低く始まり、その後値が増加します
いいえ - ゼロクロッシングは低い値から始まり、その後値とともに増加しません。
これらの値を解釈するように HMM アルゴリズムをトレーニングできますか?
または、サンプルに入力された単語を識別できるように HMM をトレーニングできる方法を誰かが提案できますか?
誰かが助けてくれることを願っています:)!