3

ランダムな一連の観測があると仮定しましょう。

obs = [1, 2, 3, 5, 5, 5, 5, 5]

これらの観測は、HMM の 1 つの状態を表します。Matlab では、これらの観察結果をモデル化し、ビタビ アルゴリズムを使用して一種の分類器を作成したいと考えています。

私が抱えている問題は、Matlab でモデルを生成するという点で、どこから始めればよいか本当にわからないことです。ツールボックスの機能にはこれがないようです。

一連の観測をモデル化するために、そのような手順を実行できる特定のライブラリはありますか?

4

1 に答える 1

2

離散的なうーんを定義するにはn、モデルの状態の数、遷移確率、可能な観測 (放出)n X nのリスト、および各状態の各放出の確率を含む行列が少なくとも必要です。あなたが持っているのは一連の観察であり、それだけでは HMM を定義することはできません。mn X m

したがって、このチュートリアルフォーム mathworks を見て、基本を理解することから始めます。そこで使用される関数は、統計ツールボックスの一部です。

次に、HMM の統計数の推測を作成することから始めます。2 つの統計情報があるとします (上記のチュートリアルのように)。次のステップは、放出行列と遷移行列の初期推定を作成することです。考えられる排出量が1 2 3 4 5であり、状態が である2場合、2x5排出確率行列と2x2遷移行列が得られます。

1 2 3ここで、状態 1 が生成し、状態 2 が生成すると仮定すると4 5、(均等に分散された) 放出マトリックスは次のようになります。

>> emis=[1/3 1/3 1/3 0 0; 0 0 0 1/2 1/2]
emis =
    0.3333    0.3333    0.3333         0         0
         0         0         0    0.5000    0.5000

また、いくつかのエミシンの後、状態が状態 1 から状態 2 に変化し、そこにとどまると推測します。あなたの推測は次のようになります。

>> trans = [.8 .2; 0 1]
trans =
    0.8000    0.2000
         0    1.0000

HMM が生成するものを見ることができます。

>> [seq,states] = hmmgenerate(6, trans, emis)
seq =
     2     1     3     2     4     5

states =
     1     1     1     1     2     2

その時点から、観測系列を使用して、関数hmmestimateまたはで HMM をトレーニングしますhmmtrain

于 2014-03-25T13:49:00.080 に答える