隠されたマルコフModel_ForwardおよびBackwardAlgorithm_Viterbi Algorithm

1はじめに

          マルコフモデルはメモリレスモデルです。つまり、シーケンス内の時間tでの状態は、直接的な関係である時間t-1のみ関連しています。いわゆる隠しマルコフモデル間接的tステータスと時間t-1時間であると言います。つまり、2つの観測変数間に直接の関係はありませんが、マルコフプロパティに必要な隠し変数シーケンスです。一見無関係に見えるものの多くには、暗黙の関係があります。この暗黙の関係を理解するには、隠された変数を見つけてルールを見つける必要があります。これは確かに非常に魅力的な理論であり、彼は私にもっと多くの可能性を感じさせました。

2.隠されたマルコフモデル

        

       3つのパラメーター:上の図は、非表示のマルコフワークフロー、非表示の変数シーケンスとしてのX、および観測シーケンスとしてのYを示しています。モデルパラメータを次のように定義します。λ=(π、A、B)、ここで、πは初期状態の確率分布、つまり最初の瞬間のxの確率分布を表します。AはX間のパラメータである遷移行列を表し、Bはを表します。放出マトリックスはXとYの間のパラメーターです;これらの3つのパラメーターを使用して、xとyのすべての変化の可能性を表現できます。

      2つの仮説:同種マルコフ仮説(時間tでのXの状態は時間t-1にのみ関連している)と観測的独立性仮説(ytはxtにのみ関連している)

      3つの問題: Hidden Markovには、処理できる3つの状況に対応する3つの古典的な問題があります。要約すると、それは評価評価問題、学習学習問題、デコードデコード問題です。

        評価は、与えられたλの下でYの条件付き確率を見つけることです(つまり、モデルパラメータを使用して観測値を見つけます)。学習は、与えられたYのYを見つけることです(つまり、観測データが与えられた場合、モデルパラメータを学習します)。デコードは、λとYを知ってX(を見つけることです。つまり、モデルパラメータと観測値がわかっており、非表示の変数が見つかります)。

         次に、これら3つの問題について詳しく紹介します。

3.評価

         フォワードアルゴリズムは、左から右への各時間における各状態のフォワード確率の合計として理解することができ、バックワードアルゴリズムは、右から左への各時間における各状態の後方確率の合計である。結局、観測値に対応するパラメータλの条件付き確率分布を表すことができます。以下に詳しく説明します。

1.フォワードアルゴリズム

       

        直接的な暴力の解決策:

        評価問題については、パラメータλの値と観測シーケンスがわかっており、必要なのはパラメータλの下での観測シーケンスの確率分布、つまりP(Y |λ)です。最も直接的な方法は、P(X |λ)を見つけることです。、次にP(Y | X、λ)を見つけると、隠れた変数と観測値の間の結合確率が得られます。次に、限界確率分布(1つの変数が固定されている場合、別の変数の確率)を使用すると、P(Y |λ)を簡単に見つけることができます。

       ただし、このアルゴリズムは、隠れ層シーケンスのすべての組み合わせの可能性を横断する必要があります。アルゴリズム全体の複雑さは指数関数的です。隠れ状態の数をN、隠しシーケンスの長さをTとすると、複雑さはですO(TN ^ {T})ここでの複雑さを説明するために、シーケンスのいくつかの組み合わせがN ^ {T}あり、各シーケンスはT回計算する必要があります。少数の非表示のユニットと状態の場合、これは許容されます。しかし、隠されたユニットと状態の数が多い場合、計算コストは​​致命的です。

        この問題を解決するために、別の方法を見つけることにしました。そこで、フォワードアルゴリズムを呼び出しました。

        フォワードアルゴリズム:

        フォワードアルゴリズムの考え方は非常に単純です。パラメータλがわかっているので、隠れた変数シーケンスをIとして定義し、観測シーケンスをOとして定義します。

                      1.最初の瞬間の前方確率:瞬間1の前方確率=π*放出行列;

                                       

                     2.後の時間の順方向確率:t +1での順方向確率=時間tでの順方向確率*状態遷移行列*送信行列

                                      

                     3.最後に、各瞬間の前方確率を合計して、パラメーターλに基づいて最終観測シーケンスOの確率分布を計算します。

                                     

         要約:フォワードアルゴリズムのアイデアは、左から右に各瞬間のフォワード確率を見つけることです。これは、各モーメントと前の瞬間のフォワード確率との関係を抽象化する動的プログラミングアルゴリズムであり、簡単に行うことができます反復の使用は、各瞬間を表します。次に、すべての瞬間の前方確率を合計して、最終的な確率分布P(O |λ)を取得します。最初の瞬間の前方確率に放出マトリックスπ乗算し、後続の各瞬間の前方確率を前に使用します。現時点で前方確率である乗じた状態遷移行列、次いで放出マトリックスを乗じ。このようにして、シーケンスの左右の組み合わせを毎回トラバースする可能性を回避し、アルゴリズム全体複雑さを、ブルートフォースソリューションの複雑さに比べて指数関数的に減少させますO(TN ^ {2})O(TN ^ {T})

2.後方アルゴリズム

    

        フォワードアルゴリズムについて学びました。フォワードアルゴリズムは、実際に左から右にフォワード確率を計算し、各瞬間を合計します。いわゆる後方アルゴリズムは、右から左への後方確率を計算し、各瞬間を合計することです。フォワードアルゴリズムと同様に、各モーメントと次のモーメントの状態との関係を使用する動的アルゴリズムでもあります。

       フォワードアルゴリズムでは、時間t-1でのフォワード確率を与えて、時間tでのフォワード確率を計算します。順方向確率は、隠れ変数の条件下での観測値の確率を表し、次に、時間tの順方向確率は、時間tでの隠れ変数の条件下での前の時刻t-1での観測値の確率分布を表します前から後ろに推定されるため、最初の瞬間の隠れた変数の状態πがわかっているので、再帰的な計算を直接実行できます。

       逆の前線という事実に対する逆アルゴリズムでは、時間Tでt + 1に戻る条件下で、既知の時間tの隠れ変数を、観測された値の確率分布と仮定します後ろから前に押し出されるので、最初にβを定義して、今行った仮定を表す必要があります。

                                                       

      次に、時間t +1から時間tβまでの再発関係を示します。上の図に対応して、説明することができます。これは実際には非常に単純なロジックです。βt+ 1は、t +1の条件下での後続のすべての観測の条件付き確率分布を表すためです。次に、βt+ 1に遷移行列を掛けてβtを取得し、放出行列Bを掛けて、時間t + 1での観測値の条件付き確率分布を取得します。合成によって得られたβtは、時間t、t +1での隠れ変数を表すことができます。そして、その後のすべての瞬間における観測の条件付き確率分布。

                                                       

       再帰を通じて、最初の瞬間の隠し変数の状態を取得できます。これは、その後のすべての瞬間の観測値の条件付き確率分布に対応します。N個の状態すべてを合計して、λに対応する観測値の確率分布を取得します(初期状態π、遷移行列、放出行列)。

                                                       

 

        概要:フォワードアルゴリズムと比較して、バックワードアルゴリズムの計算ロジックを導入しました。考え方はフォワードアルゴリズムと同じで、パラメータλと観測値の関係を現在の状態との関係で動的に表現します。右から左に押すからですので、仮説を表す変数βを定義する必要があります。つまり、各瞬間の隠れ変数は、次の瞬間の観測値の確率分布に対応します。最後に、最初の瞬間にπの条件下で次の観測値の確率分布を取得します。したがって、計算するときは、時間tでβの値を初期化する必要があります。最終的なアルゴリズムの複雑さはO(TN ^ {2})です。

4.ビテルビアルゴリズム

       まず、Viterbiアルゴリズムに対応するHMMの3つの基本的な問題、つまり既知のモデルλ(π、A、B)と観測シーケンスOのデコード問題、つまり隠れた状態シーケンスSが必要です。次のような実用的なアプリケーション:音声認識、既知の音声情報、最も可能性の高い対応するテキスト情報を推測します。

        長い間生きてきた私の経験に基づいて、心配しないでください。怖い名前をよく聞くアルゴリズムは実際には単純です。Viterbiアルゴリズムの中心的なアイデアは、最適なパスを見つけることです。これは、最も可能性の高い隠れた状態のシーケンスです。組み合わせ方法;それを見つける方法は?これにはちょっとしたトリックがあります。時間tから時間t + 1(最大確率)までの最適なパスがわかっているとすると、時間tの前に最適なパスを取得できます。最後から2番目のパスがわかっていると仮定して、プッシュを続けます。 2番目の瞬間から最後の瞬間までの最適なパス。次に、グローバルな最適なパスを導き出すことができます。

                                

                                         

                    上の2つの写真をご覧ください。写真1は、SからEへのすべての可能なパスです。写真2は、Viterbiによって処理されたパスであり、明らかに単純です。よく観察すると、常に状態に対応するパスが1つしかないため、2番目の図は単純であることがわかります。このパスは、ローカルの最適パスとして理解できます。最終的に状態Eに達したとき、他のパスは逆方向にトレースすることで削除でき、グローバルな最適パスのみが残ります。

            

5.まとめ

         この記事では、マルコフモデルに基づいてシーケンスを表現するための隠し変数を導入する隠しマルコフモデルについて説明します。そして、3つの古典的なマルコフ問題、すなわち、学習問題、評価問題、およびデコード問題を導入しました。最後に、評価問題を解決するためのフォワードアルゴリズムとバックワードアルゴリズムを紹介しました。特に今はテレビを見たいので、次のブログで以下の学習問題とデコード問題を取り上げるつもりです。

6.ナンセンス

          私は特にナンセンスな話をするのが好きです。なぜならそれは私に健康をもたらすからです。私はいつも静かに私のそばにいる子供を見つけたいと思っていました。私が彼と話したとき、彼の答えはとても深遠だったので、私はショックを受けました。彼は他の人が追求していることにあまり興味がなく、むしろ他の人が退屈だと思うことを喜んでします。彼は、まるでこの世界に属していないかのように、ぼんやりと話し、遠くの空を見て瞑想するのが好きです。彼は他の人が彼が普通の子供であると思うことを期待して、他のみんなのように振る舞うために一生懸命働いた。彼が一人でいるときだけ、彼は幸せを感じるでしょう。彼は目に見えないものと、言葉ではなく心でチャットするのが好きです。現時点では、その周りのすべてが生きているようです。私は去ったが、彼はいつも夕日の下で畑の端に座って足を振った。こんにちは、暗くなってきました!早く家に帰れ!彼は家に帰り、母親の腕の中で眠りに落ちました。私は彼に長い間会っていません、私は彼がいなくて寂しいです、しかし私はもうそれを見つけることができません。

ティックかんかん

 

おすすめ

転載: blog.csdn.net/gaobing1993/article/details/108629751