講義/Baum-Welch Algorithm
出典: Fukudat
Markov Model と Markov Chain は知っているとして,Hidden Markov Models (HMM)の学習アルゴリズムとして有名な Baum-Welch Algorithm を解説する.
準備
n個組みを表す便利な表記方法として,
を導入する.
添字の"
"は,明らかな場合は省略することもある.
条件付確率 (conditional probability) と再帰的分解 (recursive factorization) を用いる.
再帰的分解とは,複数の事象 (event) の同時確率 (joint probability) は
1つの事象のそれ以前に起こった事象を条件とする条件付確率の積で表されるというもので,
例えば,
,
,
をそれぞれ事象として,
である.
前に定義したカギ括弧表記法を用いると,離散確率変数
の系列の同時確率分布は,
と表記できる.
Hidden Markov Chain
ここでは有限状態の場合だけを考える.
を状態の有限集合とする.
状態数を
とする(つまり
).
簡単のため,状態を
から
の整数で表現する.
(つまり,
.)
つぎに,
を確率変数の時系列とし,
すべての
において
であるとする.
つまり,
は
に限定されている.
から
までの確率変数について,再帰的分解を適用すると,
. . . (1)
となる.
この事象系列がMarkov Chainであるためには,この条件付確率は直前の確率変数だけの関数でなければならない このため,式(1)は次の様に簡略化される.
. . . (2)
ここで状態遷移確率は定常的であり,時間に依存しないと仮定する.すなわち,任意の
について
である.
つぎに
を別の確率変数の系列とする(観測 (observation) と呼ぶ).
は有限の範囲に限定されているとし,
時刻
から
までの連続した観測が得られるものとする.
(一般の場合に拡張することは可能だが,複雑になるのでここでは扱わない).
観測
はその時点の状態
だけに依存すると仮定して,
個の状態と
個の観測の同時確率分布を分解すると,
. . . (3)
表記をさらに簡単にするために,次の記号を導入する.
これを使って式(3)を書き換えると,
. . . (4)
を得る. この式(4)はモデルにおける,これ以上分解することのできない最小の事象に対する確率を与える式である. すなわち,モデル上で表現することのできる任意のイベントは,この確率の和として表現することが可能である.
もちろん,この確率は次のモデルパラメータ
の関数である.
このため,以後は適時
を関数の引数に使用する.
なお,
-
... (初期)状態が
である確率
-
... 状態
から状態
に遷移する確率
-
... 状態
で 観測
が観測される確率
という意味である.
状態
は直接観測できないが,
は観測できると考えて議論するのが,Hidden Markov Model (HMM) である.
各種事象の生起確率の計算
ある
個の観測からなる観測系列
が観測される確率は,
と書ける.
この確率は,ある観測系列
が得られたときのモデルパラメータ
の尤度 (likelihood) でもある.
ある
個の観測からなる観測系列
が観測されたときに,
ある時刻
における状態の確率分布
を推定したい. 条件付確率の定義より,
であるから,条件付確率を求めることは,同時確率を求めることと等価である.
ところで
であるが,
Markov性の仮定から,
の確率分布は
以前の履歴とは独立(無関係)であり,したがって
の確率分布も同様である.このことから右辺の第2項にある
の条件は取り除くことができ,
を得る.
と置くと,
である.
ここで,
を再帰分解すると,
再び Markov性の仮定から,第2項の
に関する条件を消去して,
この第1項は
で,第2項は
であるから,結局次の漸化式を得る.
. . . (5)
同様に,
に関しては
. . . (6)
を得る.
であるから,結局
を観測したとき,時刻
の状態が
である確率は
. . . (7)
一旦各状態について
,
を求めてしまえば,色々な事象の確率を計算することが可能となる.
. . . (1)
. . . (2)
![Pr\left( \left[ S(t) \right]_0^T = \left[ s_t \right]_0^T \wedge \left[ Y(t) \right]_1^T = \left[ y_t \right]_1^T \right) =](/w/ja/images/math/3/e/f/3efa1c7c9d6abe5dde9728d2a4b99157.png)

. . . (3)
![Pr\left(S(\tau) = s_{\tau} \mid \left[ Y(t) \right]_{1}^{T} = \left[ y_t \right]_{1}^{T} \right) =](/w/ja/images/math/3/4/2/342f730b8376a476f201b9a5e959ec63.png)
. . . (4)
![\Gamma_{\tau}(s_{\tau}) = Pr\left(S(\tau) = s_{\tau} \mid \left[ Y(t) \right]_{1}^{T} = \left[ y_t \right]_{1}^{T} \right)](/w/ja/images/math/4/1/7/417731d1703426e79091b2787f2c5d1e.png)
![= Pr\left(\left[ Y(t) \right]_{1}^{\tau} = \left[ y_t \right]_{1}^{\tau} \wedge S(\tau) = s_{\tau} \right) \cdot](/w/ja/images/math/7/c/0/7c03ba921da9bc0fde9af4632c3fa3ce.png)
![\alpha_{\tau}(s) = \sum_{\sigma} Pr\left( [Y(t)]_1^{\tau-1} = [y_t]_1^{\tau-1} \wedge S(\tau-1)=\sigma \right) \cdot](/w/ja/images/math/f/7/d/f7df30287ab87018cceff03ce1eacdcc.png)
. . . (5)
. . . (6)
. . . (7)
