隠れマルコフモデルの後方アルゴリズムについて説明する


8

私はViterbi and Forwardアルゴリズムを実装しましたが、不思議なことに、Backwardアルゴリズムがどのように機能するのか理解できません。直感的には、Forwardの伝播中に計算された値を使用して、Forwardと同じことを逆方向にのみ実行する必要があるように感じます。

私の直感は正しいですか?

この時点で、私は多くのスライドとうんざりする数学表記を読みました。それは助けにはなりません。わかりやすい英語で、BackwardアルゴリズムとForwardアルゴリズムの違いを説明できるものが必要です。

バックワードアルゴリズムはどのように行われるのですか?

次の小さなHMMと、以下の「BB」シーケンスの転送アルゴリズムの結果を想定します。

START -> 1
H: 0.5 * 0.8 = 0.4
L: 0.5 * 0.6 = 0.3

1 -> 2
H: 0.4 * 0.2 * 0.8 + 0.3 * 0.6 * 0.8 = 0.208
L: 0.4 * 0.8 * 0.6 + 0.3 * 0.4 * 0.6 = 0.264

2 -> END
END: 0.208 * 0.3 + 0.264 * 0.7 = 0.2472

ここに画像の説明を入力してください

回答:


7

観測シーケンスはB、Bのようです。レッツ表す時間で観測など時間で隠れ状態として。もし我々表す前進値ととしての下位値として、(可能な隠された状態の一つです)tzttxtαt(i)βt(i)i

αt(i)=P(xt=i,z1:t)

つまり、は、時刻までに観測値を出力する時刻に状態に到達する確率です。そして、αt(i)itt

βt(i)=P(zt+1:Txt=i)これは、時間で非表示状態後、から時間の終わりまでの残りのシーケンスを放出する確率です。t+1it

を再帰的に実行するには、次のように記述します。βt(i)

P(zt+1:Txt=i)=jP(xt+1=j,zt+1:Txt=i)

チェーンルールを使用して、 P(xt+1=j,zt+1:Txt=i)=P(zt+2:T,zt+1,xt+1=jxt=i)=P(zt+2:Tzt+1,xt+1=j,xt=i)P(zt+1xt+1=j,xt=i)P(xt+1=jxt=i)

HMMの条件付き独立性から、上記の確率は簡略化されます P(zt+2:Txt+1=j)P(zt+1xt+1=j)P(xt+1=jxt=i)

ここでの定義から、あることに注意してください。P(zt+2:Txt+1=j)=βt+1(j)

を代入すると、P(zt+1:Txt=i)

βt(i)=P(zt+1:Txt=i)=jβt+1(j)P(zt+1xt+1=j)P(xt+1=jxt=i)

これでベータ版の再帰ができました。モデルからわかっている最後の方程式の最後の2項。ここでは、チェーンの終わり(T)から、すべての、逆算アルゴリズムを実行します。前方では、最初から開始する必要があり、チェーンの最後に移動します。βt

モデルでは、すべてのに対してを初期化する必要があります。これは、後で観測値を出力しない確率です。、I T = 2βT(i)=P(xT=i)=1iT=2

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.