※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。


この項の問題点

まだ書きかけ。

概要



\begin{eqnarray}
p(X=k , Y=y \mid \theta) &=& p(X=k \mid \theta) p(Y=y \mid X=k , \theta)
\end{eqnarray}

EMアルゴリズムによるパラメータ推定


EMアルゴリズムのQ(\theta' \mid \theta)は以下の形。

\begin{eqnarray}
Q(\theta' \mid \theta) &=& \sum_{t=1}^{T} \sum_{k=1}^{K} p(k \mid y_t , \theta) \log p(k, y_t \mid \theta')  \\
&=& \sum_{t=1}^{T} \sum_{k=1}^{K} p(k \mid y_t , \theta) \left( \log p(k | \theta') + \log p(y_t \mid k , \theta') \right) \\
&=& \sum_{t=1}^{T} \sum_{k=1}^{K} p(k \mid y_t , \theta) \log p(k \mid \theta') + \sum_{t=1}^{T} \sum_{k=1}^{K} p(k \mid y_t , \theta) \log p(y_t \mid k , \theta')
\end{eqnarray}

p(k \mid \theta)はcategorical distributionにしたがうとします。
(categorical distributionはBernoulli distributionの拡張です。)
つまりp(k \mid \theta) = \pi_kと表し、\sum_{k=1}^{K}\pi_k = \sum_{k=1}^{K}p(k \mid \theta) = 1を満たします。

Lagrange multiplierを用いて最大化を行い更新式を求めます。

\begin{eqnarray}
&&\frac{\partial}{\partial {\pi'}_k} \left\{ Q(\theta' \mid \theta) + \lambda \left( \sum_{k'=1}^{K} \pi_{k'} - 1 \right) \right\} \\
&&= \frac{\partial Q(\theta' \mid \theta)}{\partial {\pi'}_k} + \lambda \\
&&= \frac{\partial}{\partial {\pi'}_k} \left\{ \sum_{t=1}^{T} \sum_{k'=1}^{K} p(k' \mid y_t , \theta) \log p(k' \mid \theta') \right\} + \lambda \\
&&= \frac{1}{{\pi'}_k} \sum_{t=1}^{T} p(k \mid y_t , \theta) + \lambda \\
&&= 0
\end{eqnarray}

\lambdaを直接求めてもよいですが、単純に\sum_{k=1}^{K} {\pi'}_k = 1となるように正規化すればよいです。

\begin{eqnarray}
&& {\pi'}_k \propto \sum_{t=1}^{T} p(k \mid y_t , \theta)
\end{eqnarray}

p(y \mid k , \theta)が多次元正規分布(multivariate normal distribution)の場合を考えます。
つまりGaussian mixtureの時です。

yはベクトルで表現し、\mu_k\Sigma_kはそれぞれ、平均ベクトルと共分散行列です。


\begin{eqnarray}
&& p(y \mid k , \theta) = {\cal N}(y \mid \mu_k , \Sigma_k) = \frac{1}{(2\pi)^{D/2} \mid \Sigma_k \mid ^{1/2}} \exp \left(- \frac{1}{2} (y-\mu_k)^{\rm T} \Sigma_k^{-1} (y-\mu_k) \right) \\
&& \log p(y \mid k , \theta) = -\frac{D}{2} \log(2\pi) -\frac{1}{2} \log \mid \Sigma_k \mid -\frac{1}{2} (y-\mu_k)^{\rm T} \Sigma_k^{-1} (y-\mu_k)
\end{eqnarray}

平均と共分散、それぞれについて更新式を求めます。
微分についての詳しい説明は以下を参照してください。
See:http://en.wikipedia.org/wiki/Estimation_of_covariance_matrices
See:http://www.cs.berkeley.edu/~pliang/cs281a/recitation-0924.pdf(PDF)


\begin{eqnarray}
\frac{\partial \log p(y \mid k , \theta)}{\partial \mu_k} &=& \frac{\partial}{\partial \mu_k} \left\{ -\frac{1}{2} (y-\mu_k)^{\rm T} \Sigma_k^{-1} (y-\mu_k) \right\} \\
&=& (y-\mu_k)^{\rm T} \Sigma_k^{-1}
\end{eqnarray}


\begin{eqnarray}
\frac{\partial Q(\theta' \mid \theta)}{\partial {\mu'}_k} &=& \frac{\partial}{\partial {\mu'}_k} \left\{ \sum_{t=1}^{T} \sum_{k'=1}^{K} p(k' \mid y_t , \theta) \log p(y_t \mid k' , \theta') \right\} \\
&=& \sum_{t=1}^{T} p(k \mid y_t , \theta) (y_t-{\mu'}_k)^{\rm T} \Sigma_k^{-1} \\
&=& 0
\end{eqnarray}


\begin{eqnarray}
{\mu'}_k = \frac{\sum_{t=1}^{T} p(k \mid y_t , \theta) y_t}{\sum_{t=1}^{T} p(k \mid y_t , \theta)}
\end{eqnarray}


\begin{eqnarray}
\frac{\partial \log p(y \mid k , \theta)}{\partial \Sigma_k^{-1}} &=& \frac{\partial}{\partial \Sigma_k^{-1}} \left\{ -\frac{1}{2} \log \mid \Sigma_k \mid -\frac{1}{2} (y-\mu_k)^{\rm T} \Sigma_k^{-1} (y-\mu_k) \right\} \\
&=& \frac{1}{2} \Sigma_k -\frac{1}{2} (y-\mu_k) (y-\mu_k)^{\rm T}
\end{eqnarray}


\begin{eqnarray}
\frac{\partial Q(\theta' \mid \theta)}{\partial {\Sigma'}_k^{-1}} &=& \frac{\partial}{\partial {\Sigma'}_k^{-1}} \left\{ \sum_{t=1}^{T} \sum_{k'=1}^{K} p(k' \mid y_t , \theta) \log p(y_t \mid k' , \theta') \right\} \\
&=& \sum_{t=1}^{T} p(k \mid y_t , \theta) \left\{ \frac{1}{2} {\Sigma'}_k -\frac{1}{2} (y_t-{\mu'}_k) (y_t-{\mu'}_k)^{\rm T} \right\} \\
&=& 0
\end{eqnarray}


\begin{eqnarray}
{\Sigma'}_k = \frac{\sum_{t=1}^{T} p(k \mid y_t , \theta)(y_t-{\mu'}_k) (y_t-{\mu'}_k)^{\rm T}}{\sum_{t=1}^{T} p(k \mid y_t , \theta)}
\end{eqnarray}



|