最も確からしい1つの筋書き
前向きアルゴリズムは、データがどれだけ起こりやすいかを言うために、すべての隠れ経路を足し合わせます。しばしば欲しいのは別のもの、つまりデータを最も高い確率で説明する1つの最良の筋書き(状態の1本の系列)です。それを見つけるのがビタビ復号です。考え方は前向きアルゴリズムとほぼ同じで、違いは1点だけ、前の状態について和を取る代わりに最良のものを選ぶことです。スコア δt(j)(t 日目に状態 j で終わる最良経路の確率)を持ち、それをもたらした前の状態を後ろ向きポインタとして覚えます。
δ1(j)=πjBj(o1),δt(j)=[imaxδt−1(i)Aij]Bj(ot),ψt(j)=argimaxδt−1(i)Aij(1) 最終日のあと、δT が最大の状態を選び、ポインタ ψ をたどって戻り、経路全体を読み取ります。実用上の注意が2つあります。1つ目は対数を使うこと。多くの確率の積は 0 に近づきますが、対数にすれば和になり、対数は単調増加なので最良の経路は変わりません。2つ目は、最良の経路は、各日ごとに最も確からしい状態を別々に選ぶことと同じではないという点です。例が示すように、あとの出来事によって経路が決まることがあります。
再び 小・大・大1日目:
δ1=(0.54, 0.12)。2日目(大):穏やかが最もよく来るのは穏やかからで
0.54⋅0.9⋅0.1=0.0486。荒れは荒れから来るのが最良で
0.12⋅0.8⋅0.7=0.0672(穏やかからは
0.54⋅0.1⋅0.7=0.0378)。3日目:荒れは荒れから
0.0672⋅0.8⋅0.7=0.0376、穏やかはわずか
0.0044。最良の経路は「荒れ・荒れ・荒れ」で確率
0.0376 です。それでも初日だけを見れば確率
0.82 で穏やかに見えました。あとの大きな動きが筋書き全体を荒れのほうへ引っ張ります。この経路は「穏やか・荒れ・荒れ」(
0.0212)より
1.78 倍起こりやすいです。
- ビタビは前向きアルゴリズムの和を最大値に置き換え、後ろ向きポインタを保持する。
- 最良の経路は、各日を別々に見た最も確からしい状態とは違うことがある。
- 対数を使う:対数の和ならアンダーフローを避けられ、最良経路は変わらない。
ラボ:採点される内容
- 2日目のビタビスコア15点
- 最良経路の確率15点
- 最良経路の対数10点
- 別の経路との比較10点
- 最良経路の最初の状態15点
- ビタビの手順10点
- 用語を結び付ける10点
- なぜ対数を使うのか15点