next up previous contents
次へ: Viterbiアルゴリズム 上へ: 認識アルゴリズム 戻る: 認識アルゴリズム   目次

Forwardアルゴリズム(トレリス法)

時刻$ t$ の時に $ o_1,o_2,...,o_t $ という観測系列を出力して,状態$ j$ にいる 確率を式(23)のように定義する.

$\displaystyle \alpha_t (j) = P(o_1,o_2,...,o_t,s_t = j \mid \lambda)$ (23)

$ P(O \mid \lambda)$ $ \alpha_t (j)$ の漸化式を,式(24)のように計算することによっ て求めることができる.

$\displaystyle \alpha (i,t) = \left\{ \begin{array}{ll} \log \pi_{i} & (t = 0) \...
... \alpha (j,t-1) a_{ji} b_{ji}(y_t) & (t = 1, 2, \cdots ,T ) \end{array} \right.$ (24)

そして,最後に式(25)を求めればよい.

$\displaystyle P(y \vert M) = \sum_{i, s_i \in F} \alpha (i,T)$ (25)

このアルゴリズムでは,直前のフレームにおける確率 $ \alpha_{t-1} (i)$ から $ \alpha_t (j)$ $ 1 \leq j \leq N)$ を求める。

4は,前記の図2のHMMがラベル系列$ abb$ を出力する例に適応した例で ある.状態の中の数字は状態確率であり,矢印の横の数字は,状態遷移確率とラベルの出力確率である.

状態s1の1フレーム目を例にとれば,状態確率が0.42であり,図4より,s1からs1に遷移する確率は0.6であり,s1からs2に遷移する確率が0.4となる.シンボルbを出力すると決めているのでシンボルbを出力する確率は0.3である. よって,2フレーム目のs1とs2の状態確率はそれぞれ式(26),式(27)のように計算できる.

$\displaystyle s1: 0.42*0.6*0.3=0.0756$ (26)

$\displaystyle s2: 0.42*0.4*0.3 + 0.28*0.2*0.6=0.0840$ (27)

このように出力ラベル系列が対応する時間経過を横軸にして,各状態を縦に並べ て状態遷移を示した図で考えると理解しやすい. $ \alpha_t (j)$ は,トレリス上の左上(初期状態)から右下(最終状態)に向かっ て順次求まる[6].

これを対数で計算するアルゴリズムを,ここではForwardアルゴリズムと呼ぶ.

図: トレリス上の $ \alpha _t (i)$ の計算
\resizebox{13cm}{!}{\includegraphics{forward.eps}}



平成24年3月20日