投稿テストォ…(小声)
隠れマルコフモデル(Hidden Markov Model; HMM)は,機械学習の分野から見ると一種の生成モデル ^1 (確率分布を用いて表現されたモデル)であり,次の節に挙げるように著名な応用例があり,重要なモデルであると言える.ここでは,HMMの学習法や,推論動作について述べる.
まずは,HMM動作時の様子を図
HMM動作時の概要図
HMMは観測可能な記号(Symbol)の出力と,観測不可能な隠れ状態(Hidden State)からなる.隠れ状態の遷移確率は,直前の状態に依存する性質(マルコフ性)があり,かつ,記号の出力確率は現在の隠れ状態に依存する.HMMを連続に動作させて次々に出力記号を観測すると,隠れ状態は観測できない一方,出力記号は隠れ状態に依存していることから,その観測記号列は(隠れ状態に依存した)ある隔たりを生じることになる.
従って,観測記号列こそがHMMのパラメタ(ここでは,状態数,隠れ状態の遷移確率,記号の出力確率)を推定するヒントになり,学習におけるサンプルとなる.提示されたサンプルを出力できるようなパラメタは,どの様に設定すれば良いのだろうか.これは手作業で探っていくのは現実的ではないし,第一その設定が妥当だと言える証拠はない.そこで統計学の出番である.統計学における最尤推定法は,非常に大雑把に言って,与えられたサンプル(標本)に最も合うようにパラメタを調整する手法 ^2 である.最尤推定法は生成モデルの学習の論拠となる重大な理論であり,HMMでも最尤推定法は適用され,アルゴリズムに従って,最もサンプルに合ったパラメタを推定することができる.
隠れマルコフモデルは商業的にも広く使われている.
一番有名かつ成功した応用例と言える.発話者の音声 ^3 を観測した結果から,隠れ状態に相当する音素 ^4 の遷移を推定することで実現される.1976年から使用され始め,歴史も有る.近年は深層学習(Deep Learning)に精度面で凌駕されている[^5].
形態素とは,言語の意味を持つ最小単位の事を言う(トークンと言い換えても問題は無いはず…である).そして,形態素解析は言語処理において最も基本的かつ重要なタスク(トークン的な喩えをするならば,コンパイラにおける字句解析)である.英語等の単語境界が明快な言語は異なり,日本語は形態素の文字境界が曖昧 ^6 なので形態素解析は一般に難しいと言える.HMMで実現するには,観測するのは形態素候補,隠れ状態には品詞情報を与える.こちらも,昔はHMMがよく使われていたが,現在はCRF[^7]と呼ばれるより表現力の高い確率モデルに押されている.
モデルの形式化を行う.ここで,
隠れマルコフモデル(HMM)は組
遷移確率行列
条件付き確率を用いて次の様に表される: $$\begin{eqnarray}
(A)_{ij} = Pr(\text{時刻}t+1\text{において状態}s_{j}|\text{時刻}t\text{において状態}s_{i})\end{eqnarray}$$
観測確率行列
条件付き確率を用いて次の様に表される: $$\begin{eqnarray}
(B)_{ij} = Pr(\text{時刻}t\text{において}v_{j}\text{を観測}|\text{時刻}t\text{において状態}s_{i})\end{eqnarray}$$
定義に従って,HMMの動作を改めて記述すると以下の様になる.ここで,時刻
この動作を図示すると図
実際の動作は,
HMMのもう少し厳密な動作図
前節で見た様に,図
その計算は動的計画法に基づいており,(
この手順に従った計算アルゴリズムを前向きアルゴリズムと呼ぶ.,計算量は
,前向きアルゴリズムとは逆(
再び
そして後ろ向きスコア
この結果は次節の学習の際に重要な役割を果たす.
一番の関心点:HMMを学習することを考えてみる.学習は概要で述べた通り最尤推定法の考え方に基づく.仮に,隠れ状態の遷移情報がサンプルとして与えられれば,遷移確率
この式により,最もサンプルに適合した遷移確率と観測確率を計算できるが,実際には状態は観測できないため直接これらの値を計算出来ない.しかしながら,HMMで用いられるBaum-Welch(バウム-ウェルチ)アルゴリズムは,適当な初期状態(遷移確率,観測確率の組)から初め,上式を推定し,推定値を新たな状態として,状態がある値に収束するまで再推定を繰り返すアルゴリズム ^10 である.
まずサンプルの表記から始める.今,サンプルとして観測系列が
一方
そして,状態
この様に,全てのサンプルを見せて一気に学習する手法をバッチ学習(Batch Learning)と呼び,一方ひとつのサンプルを見せながら逐次推定値を計算していく手法をオンライン学習(Online Learning)と呼ぶ.サンプル数
.この場合はまず,サンプル
仮に今HMMが学習され,次はHMMを推論に用いたいとする.即ち,長さ
適切な列とは,観測列
1. 前向きに最大確率と,その確率を与える直前時刻の状態を記録
2. 末尾から後ろ向きに最大確率を与える状態の記録を辿り,逆順に最適列を求める.
時刻
上の第1ステップは,次の様に表すことができる:
次の第2ステップは簡単で,まず
またその最大確率値は
[^5]: 但し,全てのDeep Learningに言えることだが,学習がとにかく遅い.
[^7]: Conditional Random Field.邦訳で条件付き確率場.元は統計力学の文脈で用いられていたが,現在機械学習の生成モデルの分野において大きな地位を占める.
[^15]: 実装上の注意事項: 確率の積をPCで計算させるとアンダーフローを起こしがちである.その為,確率の対数値をとってから計算し,後で戻す処理がよく行われる.
お兄さん許して!脚注が壊れるわ…(しんみり)