私は鳥の動きの500の観察のシーケンスを持っています。鳥の501番目の動きがどうなるかを予測したいと思います。私はウェブを検索しましたが、これはHMMを使用して実行できると思いますが、そのテーマについての経験はありません。この問題を解決するために使用されるアルゴリズムの手順を誰かが説明できますか?
9497 次
1 に答える
14
x1-x2-x3-x4-x5......x500-x501
| | | | | |
y1 y2 y3 y4 y5 y500
x - actual state
y - observations
P(y_i|x_i) - how you think the observation depends on the actual state
P(x_i|x_(i-1)) - how you think the actual state evolves
for i = 1,2,3...,501:
write down best-guess of x_i based on y_i* and x_(i-1)**
you have your solution, since you only care about the last state
* missing in step 1
** missing in step 501
上記は、前方後方アルゴリズム ( http://en.wikipedia.org/wiki/Forward-backward_algorithm ) として知られており、この上で (ベイジアン ネットワーク ツリーおよびマルコフ ネットワーク ツリー上で) 和積アルゴリズムの特殊なケースです。特定の種類のツリー (ノードがぶら下がっている単純なチェーン)。最後の状態のみを気にするため、「後方」ステップは必要ないため無視できます。
HMM の遷移確率が不明な場合は、次のいずれかを行う必要があります。
- EM (HMM で実行される場合は Baum-Welch として知られる) などの学習アルゴリズムを実行する
- ドメインの知識に基づいて単純な推測を行います (たとえば、隠れた状態が DNA の場合、DNA データの遷移に手動でラベルを付けて頻度を計算することにより、前の状態から遷移イベントの頻度を数えることができます)。
于 2011-10-02T19:52:37.840 に答える