next up previous contents
次へ: Viterbiアルゴリズム 上へ: 自動ラベリング 戻る: HMM   目次

Baum-Welchアルゴリズム

Baum-Welchアルゴリズムは,与えられたシンボル列からモデルのパラメータを再 推定するためのアルゴリズムである.HMMでは,シンボル列を生成した状態遷移 系列が観測できないため,直接,最尤推定を行うことができない.そのため, シンボル列に対する尤度を最大にするようにパラメータを再推定することを考 える.Baum-Welchアルゴリズムについて,参考文献[12]より引用し, 以下に説明する.

 
与えられたシンボル列 $ o^{T}_{1} = o_{1} … o_{T} $ に対し,時刻 $ t $で状態 $ q_{i} $ から $ q_{j} $ に遷移した確率 $ \gamma_{t}(i,j) $ は以 下のようになる.


$\displaystyle \gamma_{t}(i,j)$ $\displaystyle =$ $\displaystyle P(X_{t} = q_{i}, X_{t+1} = q_{j}|o^{T}_{1}, M)$  
  $\displaystyle =$ $\displaystyle \frac{P(X_{t} = q_{i}, X_{t+1} = q_{j}, o^{T}_{1}|M)}
{P(o^{T}_{1}|M)}$  
  $\displaystyle =$ $\displaystyle \frac{\alpha_{t}(i)a_{ij}b_{j}(o_{t+1})\beta_{t+1}(j)}
{\sum^{N}_{i=1}\alpha_{T}(i)}$  

 
また,時刻 $ t $ で状態 $ q_{i} $ に滞在した確率 $ \gamma_{t}(i) $ を以 下のように定義する.

$\displaystyle \gamma_{t}(i) = \sum^{N}_{j=1}\gamma_{t}(i,j)
$

$ \gamma_{t}(i,j) $ および $ \gamma_{t}(i) $ を用いて,以下のようにパラ メータを再推定できる.

$\displaystyle \bar{\pi}$ $\displaystyle =$ $\displaystyle \gamma_{1}(i)$  
$\displaystyle \bar{a}_{ij}$ $\displaystyle =$ $\displaystyle \frac{状態iから状態jに遷移する回数の期待値}
{状態iから遷移する回数の期待値}$  
  $\displaystyle =$ $\displaystyle \frac{\sum^{T-1}_{t=1}\gamma_{t}(i,j)}
{\sum^{T-1}_{t=1}\gamma_{t}(i)}$  
$\displaystyle \bar{b}_{i}(k)$ $\displaystyle =$ $\displaystyle \frac{状態iに滞在してシンボルkを出力する回数の期待値}
{状態iに滞在する回数の期待値}$  
  $\displaystyle =$ $\displaystyle \frac{\sum_{t:o_{t}=k}\gamma_{t}(i)}
{\sum^{T}_{t=1}\gamma_{t}(i)}$  

ここで, $ \bar{\pi}, \bar{a}_{ij}, \bar{b}_{i}(k) $ は再推定したパラメー タで,それぞれ,初期状態確率,状態遷移確率,記号出力確率である.

上記の再推定式によってパラメータを求める方法が,Baum-Welchアルゴリズムで ある.


next up previous contents
次へ: Viterbiアルゴリズム 上へ: 自動ラベリング 戻る: HMM   目次
平成19年3月16日