隠れマルコフモデル (HMM)における順方向アルゴリズムは、「信念 状態」、すなわち過去の証拠に基づいて特定の時点における状態の確率を計算するために使用されます。このプロセスはフィルタリング とも呼ばれます。順方向アルゴリズムは、ビタビアルゴリズム と密接に関連していますが、異なるアルゴリズムです。
アルゴリズム 順方向アルゴリズムの目標は、同時確率を計算することです。 p ( x t 、 y 1 : t ) {\displaystyle p(x_{t},y_{1:t})} 表記の便宜上、x ( t ) {\displaystyle x(t)} としてx t {\displaystyle x_{t}} そして( y ( 1 ) 、 y ( 2 ) 、 。 。 。 、 y ( t ) ) {\displaystyle (y(1),y(2),...,y(t))} としてy 1 : t \displaystyle y_{1:t}} 結合確率がp ( x t 、 y 1 : t ) {\displaystyle p(x_{t},y_{1:t})} 計算された他の確率p ( x t | y 1 : t ) {\displaystyle p(x_{t}|y_{1:t})} そしてp ( y 1 : t ) {\displaystyle p(y_{1:t})} 容易に入手できる。
両州x t {\displaystyle x_{t}} 観察y t \displaystyle y_t}} は離散的で有限な確率変数であると仮定される。隠れマルコフモデルの状態遷移確率p ( x t | x t − 1 ) {\displaystyle p(x_{t}|x_{t-1})} 観測/放出確率p ( y t | x t ) {\displaystyle p(y_{t}|x_{t})} 、および初期事前確率p ( x 0 ) {\displaystyle p(x_{0})} は既知であると仮定される。さらに、観測のシーケンスはy 1 : t \displaystyle y_{1:t}} は既知であると仮定される。
コンピューティングp ( x t 、 y 1 : t ) {\displaystyle p(x_{t},y_{1:t})} 素朴に言えば、考えられるすべての状態シーケンスを周辺化する 必要があるだろう{ x 1 : t − 1 } {\displaystyle \{x_{1:t-1}\}} の数は指数関数的に増加するt {\displaystyle t} その代わりに、順方向アルゴリズムは隠れマルコフモデル (HMM)の条件付き独立性の ルールを利用して、再帰的に計算を実行します。
再帰を実証するために、
α ( x t ) = p ( x t 、 y 1 : t ) = ∑ x t − 1 p ( x t 、 x t − 1 、 y 1 : t ) {\displaystyle \alpha (x_{t})=p(x_{t},y_{1:t})=\sum _{x_{t-1}}p(x_{t},x_{t-1},y_{1:t})} 。連鎖律 を用いて展開するp ( x t 、 x t − 1 、 y 1 : t ) {\displaystyle p(x_{t},x_{t-1},y_{1:t})} すると、次のように書ける
α ( x t ) = ∑ x t − 1 p ( y t | x t 、 x t − 1 、 y 1 : t − 1 ) p ( x t | x t − 1 、 y 1 : t − 1 ) p ( x t − 1 、 y 1 : t − 1 ) {\displaystyle \alpha (x_{t})=\sum _{x_{t-1}}p(y_{t}|x_{t},x_{t-1},y_{1:t-1})p(x_{t}|x_{t-1},y_{1:t-1})p(x_{t-1},y_{1:t-1})} 。なぜならy t \displaystyle y_t}} すべてから条件付きで独立しているが、x t {\displaystyle x_{t}} 、 そしてx t {\displaystyle x_{t}} すべてから条件付きで独立しているが、x t − 1 {\displaystyle x_{t-1}} これは、
α ( x t ) = p ( y t | x t ) ∑ x t − 1 p ( x t | x t − 1 ) α ( x t − 1 ) {\displaystyle \alpha (x_{t})=p(y_{t}|x_{t})\sum _{x_{t-1}}p(x_{t}|x_{t-1})\alpha (x_{t-1})} 。したがって、p ( y t | x t ) {\displaystyle p(y_{t}|x_{t})} そしてp ( x t | x t − 1 ) {\displaystyle p(x_{t}|x_{t-1})} はモデルの放出分布 と遷移確率 によって与えられ、これらは既知であると仮定すると、迅速に計算できる。α ( x t ) \displaystyle \alpha (x_{t}) からα ( x t − 1 ) \displaystyle \alpha (x_{t-1}) そして、指数関数的な計算時間の発生を回避する。
上記の再帰式は、より簡潔な形で記述できます。1 私 j = p ( x t = 私 | x t − 1 = j ) {\displaystyle a_{ij}=p(x_{t}=i|x_{t-1}=j)} 遷移確率とb 私 j = p ( y t = 私 | x t = j ) {\displaystyle b_{ij}=p(y_{t}=i|x_{t}=j)} 放出確率を とすると、
α t = b t T ⊙ A α t − 1 {\displaystyle \mathbf {\alpha } _{t}=\mathbf {b} _{t}^{T}\odot \mathbf {A} \mathbf {\alpha } _{t-1}} どこA = [ 1 私 j ] {\displaystyle \mathbf {A} =[a_{ij}]} は遷移確率行列であり、b t \displaystyle \mathbf {b} _{t}} は放出確率行列の i 番目の行です。B = [ b 私 j ] {\displaystyle \mathbf {B} =[b_{ij}]} これは実際の観測結果と一致する。y t = 私 {\displaystyle y_{t}=i} その時t {\displaystyle t} 、 そしてα t = [ α ( x t = 1 ) 、 … 、 α ( x t = n ) ] T \displaystyle \mathbf {\alpha } _{t}=[\alpha (x_{t}=1),\ldots ,\alpha (x_{t}=n)]^{T}} はアルファベクトルです。⊙ {\displaystyle \odot } は転置間のアダマール積 であるb t \displaystyle \mathbf {b} _{t}} そしてA α t − 1 \displaystyle \mathbf {A} \mathbf {\alpha } _{t-1}} 。
初期条件は、 事前確率 に基づいて設定されます。x 0 {\displaystyle x_{0}} として
α ( x 0 ) = p ( y 0 | x 0 ) p ( x 0 ) {\displaystyle \alpha (x_{0})=p(y_{0}|x_{0})p(x_{0})} 。結合確率がα ( x t ) = p ( x t 、 y 1 : t ) {\displaystyle \alpha (x_{t})=p(x_{t},y_{1:t})} 順方向アルゴリズムを使用して計算されているため、関連する同時確率を容易に得ることができますp ( y 1 : t ) {\displaystyle p(y_{1:t})} として
p ( y 1 : t ) = ∑ x t p ( x t 、 y 1 : t ) = ∑ x t α ( x t ) {\displaystyle p(y_{1:t})=\sum _{x_{t}}p(x_{t},y_{1:t})=\sum _{x_{t}}\alpha (x_{t})} そして必要な条件付き確率p ( x t | y 1 : t ) {\displaystyle p(x_{t}|y_{1:t})} として
p ( x t | y 1 : t ) = p ( x t 、 y 1 : t ) p ( y 1 : t ) = α ( x t ) ∑ x t α ( x t ) 。 {\displaystyle p(x_{t}|y_{1:t})={\frac {p(x_{t},y_{1:t})}{p(y_{1:t})}}={\frac {\alpha (x_{t})}{\sum _{x_{t}}\alpha (x_{t})}}.} 条件付き確率 が計算されたら、次の点推定値も求めることができます。x t {\displaystyle x_{t}} 例えば、MAP推定値はx t {\displaystyle x_{t}} は
x ^ t M A P = 引数 最大 x t p ( x t | y 1 : t ) = 引数 最大 x t α ( x t ) 、 {\displaystyle {\widehat {x}}_{t}^{MAP}=\arg \max _{x_{t}}\;p(x_{t}|y_{1:t})=\arg \max _{x_{t}}\;\alpha (x_{t}),} MMSE推定値はx t {\displaystyle x_{t}} は
x ^ t M M S E = E [ x t | y 1 : t ] = ∑ x t x t p ( x t | y 1 : t ) = ∑ x t x t α ( x t ) ∑ x t α ( x t ) 。 {\displaystyle {\widehat {x}}_{t}^{MMSE}=\mathbb {E} [x_{t}|y_{1:t}]=\sum _{x_{t}}x_{t}p(x_{t}|y_{1:t})={\frac {\sum _{x_{t}}x_{t}\alpha (x_{t})}{\sum _{x_{t}}\alpha (x_{t})}}.} 順方向アルゴリズムは、マルコフジャンプ線形システム などの隠れマルコフモデルの変種からの観測値も考慮するように簡単に変更できます。
アルゴリズムのバリエーション ハイブリッド順方向アルゴリズム :[ 1 ] 順方向アルゴリズムの変種であるハイブリッド順方向アルゴリズム(HFA)は、調整可能なノードを持つ放射基底関数(RBF)ニューラルネットワークの構築に使用できます。RBFニューラルネットワークは、従来の部分集合選択アルゴリズムによって構築されます。ネットワーク構造は、段階的な順方向ネットワーク構成と連続的なRBFパラメータ最適化の両方を組み合わせることによって決定されます。これは、汎化性能に優れた簡潔なRBFニューラルネットワークを効率的かつ効果的に生成するために使用されます。これは、連続パラメータ空間 での同時ネットワーク構造決定とパラメータ最適化によって実現されます。HFAは、統合された解析フレームワークを使用して混合整数困難問題に取り組み、ネットワークパフォーマンスの向上とネットワーク構築のためのメモリ使用量の削減につながります。ハイブリッドシステムにおける最適制御のための順方向アルゴリズム :[ 2 ] この順方向アルゴリズムの変種は、プロセス制御とオペレーション制御を統合する製造環境の構造に着想を得ています。コスト関数の修正された条件下で成り立つ最適状態軌道構造の新しい特性を導出します。これにより、順方向アルゴリズムよりも効率的な、最適制御を明示的に決定するための低複雑度でスケーラブルなアルゴリズムを開発できます。連続順方向アルゴリズム :[ 3 ] 連続順方向アルゴリズム(CFA)は、放射基底関数(RBF)ニューラルネットワークを使用した非線形モデリングおよび識別に使用できます。提案されたアルゴリズムは、統合された分析フレームワーク内でネットワーク構築とパラメータ最適化の2つのタスクを実行し、2つの重要な利点を提供します。第一に、連続的なパラメータ最適化によりモデルのパフォーマンスを大幅に向上させることができます。第二に、すべての候補回帰変数を生成および保存することなくニューラル表現を構築できるため、メモリ使用量と計算の複雑さが大幅に削減されます。
アプリケーション フォワードアルゴリズムは、観測シーケンスが分かっている場合に特定の状態にある確率を決定する必要があるアプリケーションで主に使用されます。このアルゴリズムは、Baum-Welch [ 5 ] または一般的なEMアルゴリズム を使用してデータを受け取りながらモデルをトレーニングできる場所であればどこでも適用できます。フォワードアルゴリズムは、モデルから期待されるものに関してデータの確率を教えてくれます。応用例の1つは金融 分野であり、有形資産の売買時期を決定するのに役立ちます。
隠れマルコフモデル (HMM)を適用するすべての分野に応用できます。一般的なものとしては、品詞タグ付け や音声認識などの 自然言語処理 分野があります。[ 4 ] 最近では、バイオインフォマティクス の分野でも使用されています。
順方向アルゴリズムは、天気予報 にも適用できます。数日間連続して観測された天候と観測状態との関係を記述するHMM(隠れマルコフモデル)を用意します(例として、乾燥、湿潤、じめじめ、晴れ、曇り、雨など)。HMMに基づいて、任意の観測シーケンスの確率を再帰的に計算することを検討できます。次に、中間状態に到達する確率を、その状態に至るすべての可能な経路の合計として計算します。したがって、最終観測の部分確率は、すべての可能な経路を経てそれらの状態に到達する確率を保持します。
参考文献 ↑ Peng, Jian-Xun、Kang Li、De-Shuang Huang。「RBFニューラルネットワーク構築のためのハイブリッド順方向アルゴリズム」 IEEE Transactions on Neural Networks 17.6 (2006): 1439-1451。 ↑ Zhang, Ping、および Christos G. Cassandras。「ある種のハイブリッドシステムの最適制御のための改良された順方向アルゴリズム」。IEEE Transactions on Automatic Control 47.10 (2002): 1735-1739。 ↑ Peng, Jian-Xun、Kang Li、および George W. Irwin。「RBF ニューラル モデリングのための新しい連続順方向アルゴリズム」。IEEE Transactions on Automatic Control 52.1 (2007): 117-122。 1 2 Lawrence R. Rabiner 、「隠れマルコフモデルと音声認識における応用例に関するチュートリアル」。Proceedings of the IEEE 、77(2)、p. 257–286、1989年2月。10.1109/5.18626↑ Zhang, Yanxue、Dongmei Zhao、Jinxing Liu。「多段階攻撃におけるBaum-Welchアルゴリズムの応用」。The Scientific World Journal 2014。
さらに読む ラッセルとノーヴィグの『人工知能:現代的アプローチ』( 2010年版、570ページ以降)は、このテーマおよび関連トピックについて簡潔に解説している。 Smyth、Padhraic、David Heckerman、およびMichael I. Jordan。「隠れマルコフ確率モデルのための確率的独立性ネットワーク」。Neural computation 9.2 (1997): 227-269。 リード、ジョナサン。「隠れマルコフモデルと動的計画法」。オスロ大学(2011年)。 コールシャイン、クリスチャン著『隠れマルコフモデル入門』 Manganiello, Fabio、Mirco Marchetti、Michele Colajanni。「侵入検知システムにおける多段階攻撃検知とアラート相関」。Information Security and Assurance。Springer Berlin Heidelberg、2011年。101-110ページ。 Zhang, Ping、Christos G. Cassandras。「ある種のハイブリッドシステムの最適制御のための改良された順方向アルゴリズム」。IEEE Transactions on Automatic Control 47.10 (2002): 1735-1739。 Stratonovich, RL「条件付きマルコフ過程」確率論とその応用 5巻2号(1960年):156-178頁。
ソフトウェア 隠れマルコフモデルRパッケージには、順方向手順の計算と取得のための機能が含まれています。 momentuHMM Rパッケージは、 HMMの使用と推論のためのツールを提供します。 Python用GHMMライブラリ HMMS用のHaskellライブラリであるhmmパッケージは、Forwardアルゴリズムを実装しています。 Java用ライブラリには、機械学習および人工知能アルゴリズムの実装が含まれています。