Viterbiアルゴリズム(Li Hangに基づく)


この記事は、LiHang先生による「StatisticalLearningMethod2ndEdition」に完全に基づいています。

序文

最初にHMMを紹介します隠されたマルコフは主に3つの基本的な問題を解決します:
1。確率計算問題(既知のモデルパラメータ、観測シーケンスが現れる確率):

  • 直接計算方法、複雑さはO(TNT)O(TN ^ T)O T NT、実用的ではない
  • フォワードアルゴリズム、複雑さはO(TN 2)O(TN ^ 2)O T N2
  • 後方アルゴリズム

2.学習問題(既知の観測シーケンス、推定モデルパラメータ)

  • 監視付き学習方法:簡単な計算ですが、多くの手動注釈が必要です
  • 監視なしの学習方法(Baum-Welchアルゴリズム)

3.予測問題(既知の観測シーケンス、推定状態シーケンス)

  • 近似アルゴリズム:貪欲なアルゴリズム。各時間tで最大確率の状態を取得しますが、ローカル最適のみを考慮しているため、グローバル最適解を取得することは困難です。
  • ビテルビアルゴリズム

ビテルビアルゴリズム

Viterbiアルゴリズムは動的プログラミングアルゴリズムであり、基本的にフォームに入力します。時系列の長さがTであり、可能な状態がNであることを考慮すると、アルゴリズムのプロセスは実際にはサイズN * Tのテーブルを埋めることです。例を組み合わせて、このフォームに記入してみましょう。
次の質問を検討してください。
ここに写真の説明を挿入

Aは状態遷移行列、Bは状態から観測された行列、Πは初期状態ベクトルです。したがって、3つの状態(N = 3)があり、観測シーケンスの長さは3(T = 3)であるため、3 * 3フォームに入力する必要があります。

ステップ1:初期化

時間1で、次の式に従って
ここに写真の説明を挿入
に入力し、3つの状態のそれぞれの確率を取得します(最適と見なされます)
ここに写真の説明を挿入

ステップ2:下向きの再帰

時間2には、3つの状態が考えられます。時間1の3つの状況と現在の時刻の組み合わせを考慮して、時刻2の3つの状態の最大確率を取得します。式は、次のとおりです。
ここに写真の説明を挿入
そのうち、現在の時刻、選択された状態は1です。の確率は次のように計算されます。
ここに写真の説明を挿入つまり、前回の状態が3の場合、現在の状態が1である可能性が最も高くなります。

フォームにすべての結果を入力します。
ここに写真の説明を挿入
時間3でも、時間2の3つの状況に従って、最大の確率を取得するために、現在の時間の3つの状況と3つの状態の組み合わせを検討します(式は変更されません):
ここに写真の説明を挿入
フォームに入力します
ここに写真の説明を挿入

ステップ3:最適なパスの確率とエンドポイントを取得する

明らかに、最適パスの確率は0.0147であり、エンドポイントは状態3です。

ステップ4:逆にして、完全な状態シーケンスを取得します

実際、取得する完全なパスは次のとおりです。
ここに写真の説明を挿入
つまり、時間1では、3つの初期化確率はそれぞれ0.28、0.16、および0.1です。したがって、時間2での3つの状態の最大確率は、時間1が状態3であることに基づいています。時間3での3つの状態の最大確率は0.0147であり、これは状態3としての時間2に基づいています。
フォームに記入する過程で、この情報も記録する必要があります。これは非常に簡単です。同時に、配列Dを維持できます。
ここに写真の説明を挿入
説明:初期化の最初のステップですべて0を入力し、再帰の2番目のステップで残りを入力します。

3番目のステップで、終点(t = 3)の状態が3、t = 2のときの状態がD(3,3)= 3、t = 1のときの状態がD(2,3)= 3であることがわかりました。 。
したがって、最終的な状態シーケンスは[3,3,3]です。

追記

これは完全に動的なプログラミングであり、最適なソリューションが再構築されます。
HMMとCRFの両方をシーケンスラベリングの問題に使用できます。その中で、入力ワードシーケンスは観測シーケンスであり、出力ラベルシーケンスは状態シーケンスです。状態シーケンスは観測シーケンスに関連しているだけでなく、マルコフの性質によれば、2つの状態の間にも一定の相関関係があり、一定のパフォーマンスを向上させることができます。
これらのモデルは、タグ間の依存関係を正確に考慮することができます。これは、RNNやCNNなどのニューラルネットワークでは不可能です。しかし、ニューラルネットワークは無限に深くなる可能性があり、特徴をうまく抽出できるため、それらを統合できます。
ここに写真の説明を挿入

(国立台湾大学李紅義からの写真)

ニューラルネットワークは、観測シーケンスと状態シーケンスの関係のみを考慮し、その出力をHMM、CRFなどに入れ、さらに状態と状態の関係を考慮します。

おすすめ

転載: blog.csdn.net/jokerxsy/article/details/107444636