機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

多次元ガウス分布の共分散の事後分布

本記事では共分散行列  {\bf\Sigma} の代わりにその逆行列である精度行列 {\boldsymbol\Lambda}={\bf \Sigma}^{-1} を用います。

多次元ガウス分布

多次元ガウス分布は以下のように表されるのでした。

\begin{eqnarray}
{\mathcal N}({\bf x}|{\boldsymbol\mu},{\bf\Sigma})=\frac{1}{\sqrt{(2\pi)^D|{\bf\Sigma}|}}\exp\left(-\frac{1}{2}({\bf x}-{\boldsymbol\mu})^\top{\bf\Sigma}^{-1}({\bf x}-{\boldsymbol\mu})\right)\tag{1}
\end{eqnarray}

 {\bf x}\in\mathbb{R}^D,\ {\boldsymbol\mu}\in\mathbb{R}^D,\ {\bf\Sigma}\in\mathbb{R}^{D\times D} です。
(1)を精度行列 {\boldsymbol\Lambda}={\bf \Sigma}^{-1} を用いて表すと以下のようになります。

\begin{eqnarray}
{\mathcal N}({\bf x}|{\boldsymbol\mu},{\bf\Lambda}^{-1})=\frac{\sqrt{|{\bf\Lambda}|}}{\sqrt{(2\pi)^D}}\exp\left(-\frac{1}{2}({\bf x}-{\boldsymbol\mu})^\top{\bf\Lambda}({\bf x}-{\boldsymbol\mu})\right)\tag{2}
\end{eqnarray}

(2)の式変形では  |{\bf\Sigma}|=\frac{1}{|{\bf\Lambda}|} を使用しました。
対数を取ってみます。

\begin{eqnarray}
\ln{\mathcal N}({\bf x}|{\boldsymbol\mu},{\bf\Lambda}^{-1})=-\frac{1}{2}\left(({\bf x}-{\boldsymbol\mu})^\top{\bf\Lambda}({\bf x}-{\boldsymbol\mu})-\ln|{\bf\Lambda}|+D\ln2\pi\right)\tag{3}
\end{eqnarray}

ウィシャート分布

ウィシャート分布は以下のように表されるのでした。

\begin{eqnarray}
{\mathcal W}({\bf\Lambda}|{\nu},{\bf W})=C_{\mathcal W}(\nu,{\bf W})|{\bf\Lambda}|^{\frac{\nu-D-1}{2}}\exp\left(-\frac{1}{2}{\rm Tr}({\bf W}^{-1}{\bf\Lambda})\right)\tag{4}
\end{eqnarray}

{\bf\Lambda}\in\mathbb{R}^{D\times D}, {\bf\Lambda}>0, \nu\in\mathbb{R}, \nu>D-1, {\bf W}\in\mathbb{R}^{D\times D}, {\bf W}>0 です。
{\bf\Lambda}>0,{\bf W}>0 は行列{\bf\Lambda}、行列{\bf W} が正定値であることを表しています。

C_{\mathcal W}(\nu, {\bf W})はウィシャート分布の正規化項です。

\begin{eqnarray}
C_{\mathcal W}(\nu, {\bf W})=|{\bf W}|^{-\nu/2}2^{-\nu D/2}\pi^{-D(D-1)/4}\prod_{d=1}^D\Gamma(\frac{\nu+1-d}{2})^{-1}\tag{5}\\
\end{eqnarray}

対数を取ると以下のようになります。

\begin{eqnarray}
\ln {\mathcal W}({\bf\Lambda}|{\nu},{\bf W})=\frac{\nu-D-1}{2}\ln|{\bf\Lambda}|-\frac{1}{2}{\rm Tr}({\bf W}^{-1}{\bf\Lambda})+\ln C_{\mathcal W}(\nu,{\bf W})\tag{6}\\
\end{eqnarray}

事後分布

多次元ガウス分布に従うN 個のD次元の連続値データ {\bf X}=\{{\bf x}_1,\ldots,{\bf x}_N\} が与えられた時の精度行列 {\bf\Lambda}\in{\mathbb{R}}^{D\times D} の事後分布を求めてみます。平均 {\boldsymbol\mu}\in\mathbb{R}^D は固定であるとします。

f:id:olj611:20210224044809p:plain

{\bf\Lambda} の事前分布には多次元ガウス分布の精度行列の共役事前分布であるウィシャート分布を用います。

\begin{eqnarray}
p({\bf\Lambda})={\mathcal W}({\bf\Lambda}|{\nu},{\bf W})\tag{7}
\end{eqnarray}

 \nu\in\mathbb{R}, \nu>D-1, {\bf W}\in\mathbb{R}^{D\times D}, {\bf W}>0は固定されたハイパーパラメータです。

事後分布は以下のようになります。ベイズの定理を用います。

\begin{eqnarray}
p({\bf\Lambda}|{\bf X})&\propto&p({\bf X}|{\bf\Lambda})p({\bf\Lambda})\\
&=&\left(\prod_{n=1}^Np({\bf x}_n|{\bf\Lambda})\right)p({\bf\Lambda})\\
&=&\left(\prod_{n=1}^N\mathcal{N}({\bf x}_n|{\boldsymbol\mu},{\bf\Lambda}^{-1})\right){\mathcal W}({\bf\Lambda}|{\nu},{\bf W})\tag{8}\\
\end{eqnarray}

対数を取って {\bf\Lambda}についてまとめます。

\begin{eqnarray}
\ln p({\bf\Lambda}|{\bf X})&=&\sum_{n=1}^N\ln\mathcal{N}({\bf x}_n|{\boldsymbol\mu},{\bf\Lambda}^{-1})+\ln {\mathcal W}({\bf\Lambda}|{\nu},{\bf W})+{\rm const.}\\
&=&\sum_{n=1}^N\left(-\frac{1}{2}(({\bf x}_n-{\boldsymbol\mu})^\top{\bf\Lambda}({\bf x}_n-{\boldsymbol\mu})-\ln|{\bf\Lambda}|)\right)+\frac{\nu-D-1}{2}\ln|{\bf\Lambda}|-\frac{1}{2}{\rm Tr}({\bf W}^{-1}{\bf\Lambda})+{\rm const.}\\
&=&-\frac{1}{2}{\rm Tr}\left(\sum_{n=1}^N({\bf x}_n-{\boldsymbol\mu})({\bf x}_n-{\boldsymbol\mu})^\top{\bf\Lambda}\right)+\frac{1}{2}N\ln|{\bf\Lambda}|+\frac{\nu-D-1}{2}\ln|{\bf\Lambda}|-\frac{1}{2}{\rm Tr}({\bf W}^{-1}{\bf\Lambda})+{\rm const.}\tag{9}\\
&=&\frac{N+\nu-D-1}{2}\ln|{\bf\Lambda}|-\frac{1}{2}{\rm Tr}\left(\left(\sum_{n=1}^N({\bf x}_n-{\boldsymbol\mu})({\bf x}_n-{\boldsymbol\mu})^\top+{\bf W}^{-1}\right){\bf\Lambda}\right)+{\rm const.}\tag{10}\\
\end{eqnarray}

(9)の式変形にはトレースの公式を用いました。

\begin{eqnarray}
&&{\bf x}^\top{\bf A}{\bf x}={\rm Tr}({\bf A}{\bf x}{\bf x}^\top)\tag{11}\\
&&{\rm Tr}({\bf A})={\rm Tr}({\bf A}^\top)\tag{12}\\
&&{\rm Tr}({\bf AB})={\rm Tr}({\bf A})+{\rm Tr}({\bf B})\tag{13}\\
\end{eqnarray}

(10)より事後分布がウィシャート分布になっていることが分かります。
事後分布のパラメータを \hat{\nu},\hat{\bf W} とおき、(6)と(10)を係数比較すると以下のように求まります。

\begin{eqnarray}
&&p({\bf\Lambda}|{\bf X})=\mathcal{W}({\bf\Lambda}|\hat{\nu},\hat{\bf W})\tag{14}\\
&&\hat{\bf W}^{-1}=\sum_{n=1}^N({\bf x}_n-{\boldsymbol\mu})({\bf x}_n-{\boldsymbol\mu})^\top+{\bf W}^{-1}\tag{15}\\
&&\hat{\nu}=N+\nu\tag{16}\\
\end{eqnarray}

以上で、事後分布がウィシャート分布で得られることが分かりました。

偉人の名言

f:id:olj611:20210221083128p:plain
失敗しなくちゃ、成功はしないわよ
ココ・シャネル

参考文献

ベイズ推論による機械学習入門

動画

目次へ戻る