現在、画像のセグメンテーションの問題にビタビトレーニングを使用しています。私は、ビタビトレーニングの代わりにBaum-Welchアルゴリズムを使用することの利点/欠点を知りたいと思いました。
現在、画像のセグメンテーションの問題にビタビトレーニングを使用しています。私は、ビタビトレーニングの代わりにBaum-Welchアルゴリズムを使用することの利点/欠点を知りたいと思いました。
回答:
Baum-WelchアルゴリズムとViterbiアルゴリズムは、異なることを計算します。
モデルの非表示部分の遷移確率と、モデルの可視出力の放出確率がわかっている場合、ビタビアルゴリズムは、出力とモデル仕様の両方を条件とする最も可能性の高い完全な非表示状態のシーケンスを提供します。
Baum-Welchアルゴリズムは、最も可能性の高い隠れ遷移確率と、モデルの観測状態(および、通常、隠れ状態の数の上限)のみを与えられた最も可能性の高い放出確率のセットの両方を提供します。また、隠れた状態で「ポイントワイズ」な最尤点を取得します。これは、全体的に最も可能性の高い単一の隠れたシーケンスとはわずかに異なることがよくあります。
モデルを知っていて、潜在状態だけが必要な場合は、Baum-Welchアルゴリズムを使用する理由はありません。モデルがわからない場合は、ビタビアルゴリズムを使用できません。
追加して編集:Peter Smitのコメントを参照してください。命名法には重複/あいまいさがあります。「パターン認識と画像解析」(ISBN 978-3-540-40217-6、pp 845-857)のルイス・ハビエル・ロドリゲスとイネス・トーレスの章に私を導きました。 2つのアルゴリズム。
簡単に言うと、Baum-Welchアルゴリズムは、基本的にHMMに適用されるExpectation-Maximization(EM)アルゴリズムです。厳密なEMタイプのアルゴリズムとして、少なくとも局所的な最大値に収束することが保証されているため、ユニモーダル問題の場合はMLEが見つかります。ただし、各ステップでデータを2回パスする必要があり、データの長さとトレーニングサンプルの数が非常に複雑になります。ただし、非表示パラメーターの完全な条件付き尤度になります。
「ビタビアルゴリズム」とは対照的に、ビタビトレーニングアルゴリズムはMLEを近似して、精度を犠牲にして速度を向上させます。データをセグメント化し、ビタビアルゴリズム(私が理解したとおり)を適用してセグメント内の最も可能性の高い状態シーケンスを取得し、その最も可能性の高い状態シーケンスを使用して非表示パラメーターを再推定します。これは、Baum-Welchアルゴリズムとは異なり、隠されたパラメーターの完全な条件付き尤度を与えないため、計算時間を大幅に節約しながら精度を低下させることになります(章では1〜2桁の報告)。
前方後方は、「見えないもの」を数えたいときに使用されます。たとえば、EMを使用して、教師なしデータを介してモデルを改善する場合。ペトロフの論文は一例だと思います。私が考えている手法では、まず、かなり粗い注釈(「動詞」のタグなど)の注釈付きデータでモデルをトレーニングします。次に、その状態の確率質量を2つのわずかに不均等な量に任意に分割し、2つの状態間で質量を再配分することで尤度を最大化するために前後に再トレーニングします。