next up previous contents
次へ: 連続HMMのパラメータ推定法 上へ: HMMによる音声認識 戻る: Forwardアルゴリズム   目次

離散HMMのパラメータ推定

学習用音声として,$ N $個の観測符号ベクトル系列 $\{ y_{1}^{T(n)} = y_{1} , y_{2} , \cdots , y_{T(n)} \}_{n=1}^N $が与えられたとき,


\begin{displaymath}
\prod_{n=1}^{N} P( y_{1}^T(n) \vert \pi_{i}, a_{ij}, b_{ij}(k) )
\end{displaymath} (32)

を最大化するパラメータセット $\{ \hat{\pi_{i}} , a_{ij} , b_{ij}(k) \}$は,Baum-Welchアルゴリズムによって,次のように推定できる.

まず以下のような変数$\beta(i,t)$,$\gamma(i,j,t)$を定義する.

$\beta(i,t)$:
時刻$t$に状態$s_{i}$にあって,以後符号ベクトル$y_{t+1}^T$を出力する確率
$\gamma(i,j,t)$:
モデル$ M $$y_{1}^T$を出力する場合において,時刻tに状態$s_{i}$から状態$s_{j}$へ遷移し符号ベクトル$y_t$を出力する確率
このとき,以下の関係が得られる.
\begin{displaymath}
\beta (i,T) =
\left\{
\begin{array}{ll}
1 & s_{i} \in F \\
0 & s_{i} \notin F
\end{array} \right.
\end{displaymath} (33)


\begin{displaymath}
\beta (i,t) = \sum_{j} a_{ij} b_{ij} (y_t) \beta (j,t+1) \quad
(t = T, T-1, \cdots ,1;i=1,2, \cdots ,S)
\end{displaymath} (34)


\begin{displaymath}
\gamma (i, j, t) = \frac{ \alpha (i,t-1) a_{ij} b_{ij}(y_t) \beta (j,t)}{P (y_{1}^t \vert M)}
\end{displaymath} (35)

以上を用いて,パラメータ$ pi_i $, $ a_ij $, $ b_ij(k) $を,以下の再推定によって求める.


\begin{displaymath}
\hat{\pi_{ij}} = \frac{ \sum_{j} \gamma (i, j, 1) }{ \sum_{i} \sum_{j} \gamma (i, j, 1) }
\end{displaymath} (36)


\begin{displaymath}
\hat{a_{ij}} =
\frac{ \sum_{t=1}^T \alpha (i, t-1) a_{ij}...
...m_{t} \gamma (i, j, 1) }{ \sum_{t} \sum_{j} \gamma (i, j, t) }
\end{displaymath} (37)


\begin{displaymath}
\hat{b_{ij}} = \frac{ \sum_{t, y_t = k} \gamma (i, j, t) }{ \sum_{t} \gamma (i, j, t) }
\end{displaymath} (38)

実際は,すべての学習サンプルに対してこの計算を行ってから1回パラメータを更新するというサイクルを,値が収束するまで繰り返す.



平成19年5月7日