「機械学習/mixture model」の編集履歴(バックアップ)一覧はこちら

機械学習/mixture model」(2010/01/21 (木) 07:24:43) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

#contents(fromhere=true) **この項の問題点 まだ書きかけ。 **概要 #math(){{{{{ \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)$$は以下の形。 #math(){{{{{ \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を用いて最大化を行い更新式を求めます。 #math(){{{{{ \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$$となるように正規化すればよいです。 #math(){{{{{ \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$$はそれぞれ、平均ベクトルと共分散行列です。 #math(){{{{{ \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) #math(){{{{{ \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} }}}}} #math(){{{{{ \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} }}}}} #math(){{{{{ \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} }}}}} #math(){{{{{ \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} }}}}} #math(){{{{{ \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} }}}}} #math(){{{{{ \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} }}}}} ----
#contents(fromhere=true) **この項の問題点 まだ書きかけ。 **概要 #math(){{{{{ \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)$$は以下の形。 #math(){{{{{ \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を用いて最大化を行い更新式を求めます。 #math(){{{{{ \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$$となるように正規化すればよいです。 #math(){{{{{ \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$$はそれぞれ、平均ベクトルと共分散行列です。 #math(){{{{{ \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) #math(){{{{{ \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} }}}}} #math(){{{{{ \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} }}}}} #math(){{{{{ \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} }}}}} #math(){{{{{ \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} }}}}} #math(){{{{{ \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} }}}}} #math(){{{{{ \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} }}}}} ----

表示オプション

横に並べて表示:
変化行の前後のみ表示: