クラスタリングで省略した、混合ガウス分布のEMアルゴリズムの計算過程を記述します。
EMアルゴリズム
観測データ \(\mathbf{X}=\{\mathbf{x}_1,\ldots,\mathbf{x}_N\}\) に対する対数尤度関数は、\((9.7)\) から以下のように書けます。(※明示的にパラメータを記載しています。)
E step
なので、総和が \(1\) になるように正規化を行えば負担率が以下のように求まります。
※ なお、この時分母である \(\sum_{j=1}^{K}\pi_{j}\mathcal{N}(\mathbf{x}|\mathbf{\mu_{\rm{j}}}, \mathbf{\Sigma_{\rm{j}}})\) が \(p(\mathbf{x})\) であることは有用です。(生物データマイニング論 第1回では、これを用いて可視化していました。)
Maximization step
※ 対数尤度関数 \((9.14)\) を \(\ln L\) と記述します。
\(\boldsymbol{\mu}_k\)
対数尤度 \((9.14)\) を \(\boldsymbol{\mu}_k\) で微分します。この時正規分布は \(e^{\text{hoge}}\) という形をしており、微分しても形が変わらないので、
と最適解が求まりました。
\(\pi_k\)
パラメータ \(\pi_k\) については、\(\sum_{k=1}^K \pi_k = 1\) という制約に注意する必要があります。ですが、隠れマルコフモデルの最尤推定で行なった能登同様に、ラグランジュの未定乗数 \(\lambda\) を導入すればこの問題は解けます。
の導関数が \(0\) となる条件を求める事になるので、
より、
と最適解が求まりました。
\(\boldsymbol{\Sigma}_k\)
\(\boldsymbol{\mu}_k\) と同様に、対数尤度 \((9.14)\) を \(\boldsymbol{\Sigma}_k\) で微分します。すると、
となります。ここで、\(\frac{\partial}{\partial\boldsymbol{\Sigma}_k}\mathcal{N}(\mathbf{x}_n|\boldsymbol{\mu}_k,\boldsymbol{\Sigma}_k)\) を計算すると、
したがって、
と最適解が求まりました。
※ \(\ast1,\ast2\) の式変形は以下でより詳細に説明します。が、その前にいくつか基本事項の定義を振り返ります。
行列式
- \(\sigma\) は \(1\) から \(n\) の置換(順列)を表す。
- \(\mathrm{sgn}(\sigma)\) は置換の符号を表す。なお、置換の符号は互換の数に注目しており、奇置換(互換の数が奇数個)なら \(-1\)、偶置換なら \(+1\)
余韻子
\(n\) 次正方行列 \(A := (a_{ij})\) に対し、\(i\) 行と \(i\) 列を\(1\)つずつ取り去って作られる小行列を \(M_{ij}\) とする。つまり、
です。ここで、\(\Delta_{ij}=(-1)^{i+j}|M_{ij}|\) とすると、以下の余因子展開ができます。
- \(A\) の行列式は \(j\) 列に関して、以下のように展開されます。
$$\det A=\Delta_{1j}a_{1j}+\Delta_{2j}a_{2j}+\cdots+\Delta_{nj}a_{nj}$$
- \(A\) の行列式は \(i\) 行に関して、以下のように展開されます。
$$\det A=\Delta_{i1}a_{i1}+\Delta_{i2}a_{i2}+\cdots+\Delta_{in}a_{in}$$
余韻子行列
\(n\) 次正方行列 \(A := (a_{ij})\) に対し、\((i, j)\) 余因子を \((j, i)\) 成分に持つ行列
を余韻子行列と呼びます。ここで、余韻子展開を考えれば、余韻子行列に関して、
が成り立つことがわかります。
\(\ast1\) の変形
以上を踏まえると、\(\frac{\partial\det(A)}{\partial a_{ij}} = \Delta_{ij}\) なので、
が成り立ち、
となることがわかります。
トレースと固有値の関係性
【命題】
トレースには、\(Tr(A) = \sum_{k=1}^{n}\lambda_{k}\) という関係がある。
- トレース: \(n\times n\) の正方行列 \(A\) に対して、対角成分の和 \(\sum_{k=1}^{n}a_{kk}\) を \(A\) のトレースと呼び、\(\mathrm{Tr}(A),\mathrm{tr}A\) と表す。
【証明】
まず、固有方程式は、
である。ここで、\(t\) の係数に着目する。
- \(t^n\) の係数
これは、対角成分を全て掛け合わせた次の多項式$$(a_{11}-t)(a_{22}-t)\ldots(a_{nn}-t)$$における \(t^n\) の係数と等しくなる。よって、係数は「\((-1)^n\)」
- \(t^{n-1}\) の係数 これも、先ほどの多項式の \(t^{n-1}\) の係数と等しくなる。(\(\because\) 余韻子展開を考える。\(\sigma\) が全単射のため、1行(列)対角成分ではないものがあると、少なくともあと1つは体格成分でないものがあることがわかる。)
- 定数項 これは、余韻子展開を考えれば \(|A|\) そのもの。
よって、係数は「\((-1)^{n-1}(a_{11}+a_{22}+\ldots+a_{nn})\)」であり、これは対角和を用いて「$(-1)^{n-1}\mathrm{Tr}(A) $」とも書ける。
一方先ほどの固有方程式は固有値を解に持つ。
つまり、\(A\)の固有値を\(\lambda_1\)〜\(\lambda_n\)として、
とかける。( \((-1)^n\) によって、\(t^n\) の係数を合わせている。)
この式を展開すると、\(t^{n-1}\) の係数が「\((-1)^{n-1}(\lambda_1+\lambda_2+\ldots+\lambda_n)\)」であることから
※ちなみに、\(\phi(t)=(-1)^n(t-\lambda_1)(t-\lambda_2)\cdots(t-\lambda_n)\) の定数項を考えることで、
であることもわかる。
トレースの循環性
\(A\) を \(m \times n\)、\(B\) を \(n \times m\) の行列とすると、\(AB\) は \(m \times m\) の行列であり、
となる。これを応用すれば、以下の循環性が証明できる。
\(A,B,C\) をそれぞれ \(m\times n,n \times l,l \times m\) の行列とするとき、
が成り立つ。( \(\because\) 2つの行列積をセットで考えれば明らか)
逆行列の微分
正則行列 \(A\) に対して、\(A^{-1}A=I\) が成立するので、この等式の両辺を \(A\) で微分して、
シングルエントリ行列
\((i,j)\) 成分のみが\(1\) で、残りが全て \(0\) の行列 \(\mathbf{J}^{ij}\) をシングルエントリ行列と呼ぶ。なお、以下の式が成り立つ。
\(2 \times 2\) の行列でこれを示す。
\(\ast2\) の変形
以上を踏まえれば、
よって、