隠れマルコフモデルは、離散的な状態を仮定する、いわゆる状態空間モデルのアルゴリズムです。
学習にはベイズ推定を用います。隠れマルコフモデル自体は、時系列データの分析などで、比較的最近でも多くの論文等で登場している有名で実用的なアルゴリズムで、しっかり抑えるようにしましょう。
近年ではLSTMなどのRNNやディープラーニングなどの技術が台頭し広く利用されるようになっていますが、少し前までは、音声認識、自然言語処理、手書き文字認識、DNA配列の解析等に広く利用されて追いました。
- マフコフ性や1次マルコフ性について解説
- 隠れマルコフモデル(HMM)について概要
マルコフ性とは
まず最初に、隠れマルコフモデルで前提としているマルコフ性について説明します。
マルコフ性とは、時刻$n$における情報が、それよりも前の情報にのみ、依存するという性質です。時系列データで考えるなら、時刻$n$で得られる情報は、それより過去の情報、つまり時刻$1$ ~ $n-1$までの情報によって決まる性質のことをいいます。
このマルコフ性を有するデータ列においては、下記のように、確率の乗法定理を用いることで、下記のように表現することができます。
時刻1〜$N$までに得られているデータ列を$\bm{X} = \{ x_1, x_2, \dots, x_N \}$とすると、得られたデータを表現する確率分布は、
\begin{equation} \begin{split} p(\bm{X}) &= p(x_1, x_2, \dots, x_N) \\ &= p(x_1) \prod_{n=2}^{N}p(x_n | x_1, \dots, x_{n-1}) \end{split} \end{equation}
さらに、マルコフ性に対して強い過程を導入し、現時点の時刻$n$で得られているデータ$x_{n}$が、1つ前の時刻$n-1$の情報にのみ依存するというモデルを、一次マルコフ性と言います。
マルコフ性は、今のデータが過去の全ての情報に依存するという仮定でしたが、一時マフコフ性を仮定すると、時刻$n$の観測値は、時刻$n-1$の値にしか影響が受けないということにより、(1)で示した同時確率分布は次のように書き直すことができます。
\begin{equation} p(x_1, x_2, \dots, x_n) = p(x_1) \prod_{n=2}^{N}p(x_n | x_{n-1}) \end{equation}
また、下記のようにも、一次マルコフモデルの定義から次のようにも表現することができます。
\begin{equation} p(x_n | x_1, x_2, \dots, x_{n-1}) = p(x_n | x_{n-1}) \end{equation}
隠れマルコフモデル
マルコフモデルの次は、隠れマフコフモデルの説明に入ります。
隠れマフコルモデルは、観測値がある場合、その背後に隠れた複数の離散的な状態があり、観測値がその状態によって生起されるようなモデルです。
例えば、天気予報のようなモデルを考えた時に、1日毎に “晴れ”, “曇り”, “雨”などを予測するモデルも隠れマルコフモデルと言えます。天気の場合だとイメージつきやすいですが、当日の天気を予測する際に、前日の天気を参考にすると行ったイメージです。
一般的に考えてみます。
状態$K$が$K=3$、つまり3つの状態があり、時間遷移とともにこれらの状態に遷移するような隠れマルコフモデルを考えます。
また、時刻$n$における状態を、$\bm{z}_n$とする。今、状態はK種類あるため、$bm{z}_n$は、1対K符号化法を用いて下記のように表現することにします。
時刻$n$において、状態$k$になっている時、$bm{z}$のk番目の要素$z_{nk}$が1になり、それ以外は0となる。
\bm{z}_n = [0, 0, 0, 1, 0, 0]
\sum_{K} z_{nk} = 1
続いて、現在の時刻$n$での状態をえる確率 $p(\bm{z}_n)$について考えましょう。
ここで、隠れマルコフモデルでは、先ほどの天気予報の例でもあったように、前の状態から別の状態に遷移することを考えて、確率のモデル化をします。
今、時刻$n-1$において$j$の状態で、次の時刻$n$で$k$に遷移する確率を$A_{jk}$と表現すると、下記のような状態遷移図を書くことができます。

これは単純に、$K=3$でのパターンですが、遷移確率$A_{jk}$を用いてマルコフモデルの状態遷移を書くことができます。また$A_{jk}$は、$K^2$の種類定義できるので、これらをまとめて行列で表現します。これを遷移行列(transition matrix)と言います。
時刻$n-1$で$j$の状態から、時刻$n$で$k$に遷移する確率を$A_{jk}$と表現すると、下記のような状態遷移行列$A$を次のように定義する。
\begin{equation} A = \begin{pmatrix} A_{11} & A_{21} & A_{31} \\ A_{12} & A_{22} & A_{32} \\ A_{13} & A_{23} & A_{33} \\ \end{pmatrix} \end{equation}
ここで、遷移確率$A_{jk}$は次の条件を満たす。
\begin{split} 0 \leq A_{jk} &\leq 1 \\ \sum_{k} A_{jk} &= 1 \end{split}
ここで、$p(\bm{z}_n)$ は、前の状態とこの遷移確率に依存するので、条件付き確率を用いて$p(\bm{z}_n | \bm{z}_{n-1}, A)$と書くことができ、次のようになる。
\begin{equation} \begin{split} p(\bm{z}_n | \bm{z}_{n-1}, A) = \prod_{k=1}^K \prod_{j=1}^K A_{jk}^{z_{n-1}, {j^{z_{nk}}}} \end{split} \end{equation}
(5)式に関しては、初期値を表現できていないので、初期を下記のように導入する。
\begin{equation} \begin{split} p(\bm{z}_n | \bm{\pi}) = \prod_{k=1}^{K} \pi_k^{z_{1k}} \end{split} \end{equation}

隠れマルコフモデルのダイアグラムはこのように表現できる。これをトレリス図と言ったりします。
また、隠れマフコルモデル(HMM)では、観測変数の条件付き確率分布$p(x_n | \bm{z}_n, \bm{\phi})$を定義しています。ここで、$\phi$は$K$個の状態を観測値に変換する確率変数のパラメータであり、出力確率(emission probability)と呼ばれています。
\begin{equation} p(x_n | \bm{z}_n, \phi) = \prod_{k=1}^K p(\bm{x_n}| \phi_k)^{z_{nk}} \end{equation}
ここまでで、隠れマルコフモデル(HMM)のモデルの概要と数学的な表現についてまとめました。
続いて、HMMの数学的な表現に入っていきます。
隠れマルコフモデルの同時分布
隠れマルコフモデルにおける観測されない状態列$\bm{Z}$と観測値$\bm{X}$の同時分布を考えるとこのようになります。
隠れマルコフモデルが、状態列$\bm{Z}$が、マルコフモデルによって状態遷移をしていき、その状態によって(7)式から観測値が観測されるモデルになっています。
このことを定式化すると次にようになります。
\begin{equation} \begin{split} p(\bm{X} ,\bm{Z} | \bm{\theta} ) &= p(x_1, x_2, x_3, \dots, x_n, z_1, z_2, \dots, z_N | \bm{\theta} ) \\ &=p(z_1 | \bm{\pi} ) p(x_1, x_2, x_3, \dots, x_N, z_2, z_3, \dots, z_N | \bm{\theta} ) \\ &= p(z_1 | \bm{\pi} ) \prod_{n=2}^{N} p(z_n | z_{n-1}, A) p(x_1, x_2, x_3, \dots, x_N | z_1, z_2, \dots, z_N, \bm{\phi})\\ &= p(z_1 | \bm{\pi} ) \prod_{n=2}^{N} p(z_n | z_{n-1}, A) \prod_{n=1}^{N} p(x_n | z_n, \bm{\phi}) \end{split} \end{equation}
ちなみに、なぜ(8)式のような潜在変数と観測値の同時分布を考えるかというと、この同時分布を考えることで、EMアルゴリズムを用いて隠れマルコフモデルにおけるパラメータの学習をすることができるためです。
これに関しては次の記事で解説したいと思います。