以下の書籍のメモです.目的は,
- 見通しが良い形で書き換えたい:かなり丁寧に解説してくれている分,後から見返したときに見通しが悪い部分があるため.
- 省略されている計算・ロジックのフォロー.
1, 2章は必要になったときに参照し,3章から読むと理解が進みそうな印象です.
第1章 機械学習とベイズ学習
ベイズの定理については次を参照:【ベイズの定理】ベン図でわかる条件付き確率 - Notes_JP上の記事のように,ベン図を考えれば「ベイズの定理」
\begin{aligned}
P(B|A)
&=\frac{P(A\cap B)}{P(A)} \\
&=\frac{\frac{P(A\cap B)}{P(B)} P(B)}{P(A)} \\
&=\frac{P(A|B) P(B)}{P(A)}
\end{aligned}
がすぐに理解できます.P(B|A)
&=\frac{P(A\cap B)}{P(A)} \\
&=\frac{\frac{P(A\cap B)}{P(B)} P(B)}{P(A)} \\
&=\frac{P(A|B) P(B)}{P(A)}
\end{aligned}
第2章 基本的な確率分布
一部,次の記事で扱っています.ベルヌーイ分布から多項分布へ - Notes_JP
第3章 ベイズ推論による学習と予測
用語の整理
- モデル:観測データ$\mathcal{D}$と未観測の変数$\boldsymbol{\theta}$の同時分布$p(\mathcal{D}, \boldsymbol{\theta})$のこと.
- 学習:
\begin{aligned}を計算すること.$p(\mathcal{D})$は$\boldsymbol{\theta}$に依存しない規格化定数なので,実際は$p(\boldsymbol{\theta}|\mathcal{D})\propto p(\mathcal{D}|\boldsymbol{\theta})p(\boldsymbol{\theta})$の右辺を計算すれば良い.
\textcolor{red}{p(\boldsymbol{\theta}|\mathcal{D})}
=\frac{\overbrace{p(\mathcal{D}|\boldsymbol{\theta})}^{\mathrlap{\substack{=f(\boldsymbol{\theta}) \text{:尤度関数}\\ \\ \\}}}
\overbrace{p(\boldsymbol{\theta})}^{\mathrlap{\text{事前分布}}}}
{p(\mathcal{D})}
\end{aligned}
- 予測:未知のデータ$x_*$に対して「予測分布」
\begin{aligned}を計算すること.
p(x_*|\mathcal{D})
=\int p(x_*|\boldsymbol{\theta})
\textcolor{red}{p(\boldsymbol{\theta}|\mathcal{D})}
\,\mathrm{d}\boldsymbol{\theta}
\end{aligned}
学習の方法
この章では,「共役事前分布」を用いることで解析的に学習が可能な例を扱っています.- 事前分布$p(\boldsymbol{\theta})$として,共役事前分布
\begin{aligned}を用いる.ここで,$\boldsymbol{\alpha}_0$は最初に与えておく「超パラメータ」を表す.
p(\boldsymbol{\theta})
=f(\boldsymbol{\theta}|\boldsymbol{\alpha}_0)
\end{aligned}
- 事後分布
\begin{aligned}は,事前分布と全く同じ関数形でパラメータを$\boldsymbol{\alpha}_0 \rightarrow \boldsymbol{\alpha}_1$と置き換えたものになる.つまり
p(\boldsymbol{\theta}|\mathcal{D})
\propto p(\mathcal{D}|\boldsymbol{\theta})
\overbrace{p(\boldsymbol{\theta})}^{\mathrlap{=p(\boldsymbol{\theta}|\boldsymbol{\alpha}_0)}}
\end{aligned}
\begin{aligned}が成り立つ.この関数$g$を求めれば,パラメータの更新則が定まる(解析的に「学習」が可能).
p(\boldsymbol{\theta}|\mathcal{D})
=f(\boldsymbol{\theta}|\boldsymbol{\alpha}_1)
,\quad \boldsymbol{\alpha}_1=g(\boldsymbol{\alpha}_0, \mathcal{D})
\end{aligned}
多次元ガウス分布
【作成中】これがわかれば,他もわかるはずなので.また,途中計算にちょっとギャップがあったため丁寧に計算します.
モデルとして
- 尤度関数:\begin{aligned}
&p(\boldsymbol{x}|\boldsymbol{\mu}, \boldsymbol{\Lambda}) \\
&=\mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}, \boldsymbol{\Sigma}=\boldsymbol{\Lambda}^{-1}) \\
&=\frac{1}{\sqrt{(2\pi)^D \det \boldsymbol{\Sigma}}} \\
&\qquad \times \exp\biggl[-\frac{1}{2} {}^t(\boldsymbol{x}-\boldsymbol{\mu}) \boldsymbol{\Sigma}^{-1} (\boldsymbol{x}-\boldsymbol{\mu})\biggr]
\end{aligned} - 共役事前分布:Gaussian-Wishart distribution\begin{aligned}
p(\boldsymbol{\mu}, \boldsymbol{\Lambda})
&=\mathrm{NW\,}(\boldsymbol{\mu}, \boldsymbol{\Lambda}|\boldsymbol{m},\beta,\nu,\boldsymbol{W})\\
&=\mathcal{N}(\boldsymbol{\mu}|\boldsymbol{m},(\beta\boldsymbol{\Lambda})^{-1})
\mathcal{W}(\boldsymbol{\Lambda}|\nu,\boldsymbol{W})
\end{aligned}
【学習(事後分布の計算)】
データ$\boldsymbol{X}=\{\boldsymbol{x}_i\}_{i=1}^N$による学習を考えます.
事後分布は
\begin{aligned}
p(\boldsymbol{\mu}, \boldsymbol{\Lambda}|\boldsymbol{X})
&=\frac{p(\boldsymbol{\mu}, \boldsymbol{\Lambda},\boldsymbol{X})}{p(\boldsymbol{X})} \\
&=\frac{p(\boldsymbol{\mu}| \boldsymbol{\Lambda},\boldsymbol{X})
p(\boldsymbol{\Lambda},\boldsymbol{X})}
{p(\boldsymbol{X})} \\
&=\underbrace{p(\boldsymbol{\mu}| \boldsymbol{\Lambda},\boldsymbol{X})}_{(A)}
\underbrace{p(\boldsymbol{\Lambda}|\boldsymbol{X})}_{(B)}
\end{aligned}
により計算できます(注:$\boldsymbol{\mu}$と$\boldsymbol{\Lambda}$を入れ替えた式に変形しても,全く同様に計算できる).p(\boldsymbol{\mu}, \boldsymbol{\Lambda}|\boldsymbol{X})
&=\frac{p(\boldsymbol{\mu}, \boldsymbol{\Lambda},\boldsymbol{X})}{p(\boldsymbol{X})} \\
&=\frac{p(\boldsymbol{\mu}| \boldsymbol{\Lambda},\boldsymbol{X})
p(\boldsymbol{\Lambda},\boldsymbol{X})}
{p(\boldsymbol{X})} \\
&=\underbrace{p(\boldsymbol{\mu}| \boldsymbol{\Lambda},\boldsymbol{X})}_{(A)}
\underbrace{p(\boldsymbol{\Lambda}|\boldsymbol{X})}_{(B)}
\end{aligned}
ここで,$(A)$は
\begin{aligned}
p(\boldsymbol{\mu}| \boldsymbol{\Lambda},\boldsymbol{X})
&=\frac{p(\boldsymbol{\mu}, \boldsymbol{\Lambda},\boldsymbol{X})} {p(\boldsymbol{\Lambda},\boldsymbol{X})} \\
&=\frac{p(\boldsymbol{X}|\boldsymbol{\mu}, \boldsymbol{\Lambda}) p(\boldsymbol{\mu}, \boldsymbol{\Lambda})}
{p(\boldsymbol{\Lambda},\boldsymbol{X})} \\
&\propto p(\boldsymbol{X}|\boldsymbol{\mu}, \boldsymbol{\Lambda}) p(\boldsymbol{\mu}, \boldsymbol{\Lambda})\\
&= \prod_{i=1}^N p(\boldsymbol{x}_i|\boldsymbol{\mu}, \boldsymbol{\Lambda})
\cdot \mathrm{NW\,}(\boldsymbol{\mu}, \boldsymbol{\Lambda}|\boldsymbol{m},\beta,\nu,\boldsymbol{W}) \\
&\propto \prod_{i=1}^N \mathcal{N}(\boldsymbol{x}_i|\boldsymbol{\mu}, \boldsymbol{\Lambda}^{-1})
\cdot \mathcal{N}(\boldsymbol{\mu}|\boldsymbol{m},(\beta\boldsymbol{\Lambda})^{-1})
\end{aligned}
であり,$(B)$はp(\boldsymbol{\mu}| \boldsymbol{\Lambda},\boldsymbol{X})
&=\frac{p(\boldsymbol{\mu}, \boldsymbol{\Lambda},\boldsymbol{X})} {p(\boldsymbol{\Lambda},\boldsymbol{X})} \\
&=\frac{p(\boldsymbol{X}|\boldsymbol{\mu}, \boldsymbol{\Lambda}) p(\boldsymbol{\mu}, \boldsymbol{\Lambda})}
{p(\boldsymbol{\Lambda},\boldsymbol{X})} \\
&\propto p(\boldsymbol{X}|\boldsymbol{\mu}, \boldsymbol{\Lambda}) p(\boldsymbol{\mu}, \boldsymbol{\Lambda})\\
&= \prod_{i=1}^N p(\boldsymbol{x}_i|\boldsymbol{\mu}, \boldsymbol{\Lambda})
\cdot \mathrm{NW\,}(\boldsymbol{\mu}, \boldsymbol{\Lambda}|\boldsymbol{m},\beta,\nu,\boldsymbol{W}) \\
&\propto \prod_{i=1}^N \mathcal{N}(\boldsymbol{x}_i|\boldsymbol{\mu}, \boldsymbol{\Lambda}^{-1})
\cdot \mathcal{N}(\boldsymbol{\mu}|\boldsymbol{m},(\beta\boldsymbol{\Lambda})^{-1})
\end{aligned}
\begin{aligned}
p(\boldsymbol{\Lambda}|\boldsymbol{X})
&=\frac{p(\boldsymbol{\mu}, \boldsymbol{\Lambda}|\boldsymbol{X})}{p(\boldsymbol{\mu}| \boldsymbol{\Lambda},\boldsymbol{X})} \\
&=\frac{1}{p(\boldsymbol{\mu}| \boldsymbol{\Lambda},\boldsymbol{X})}
\frac{p(\boldsymbol{X}|\boldsymbol{\mu}, \boldsymbol{\Lambda}) p(\boldsymbol{\mu}, \boldsymbol{\Lambda})}
{p(\boldsymbol{X})}
\end{aligned}
となります.p(\boldsymbol{\Lambda}|\boldsymbol{X})
&=\frac{p(\boldsymbol{\mu}, \boldsymbol{\Lambda}|\boldsymbol{X})}{p(\boldsymbol{\mu}| \boldsymbol{\Lambda},\boldsymbol{X})} \\
&=\frac{1}{p(\boldsymbol{\mu}| \boldsymbol{\Lambda},\boldsymbol{X})}
\frac{p(\boldsymbol{X}|\boldsymbol{\mu}, \boldsymbol{\Lambda}) p(\boldsymbol{\mu}, \boldsymbol{\Lambda})}
{p(\boldsymbol{X})}
\end{aligned}
ここで,それぞれ対数をとってみます.まず,
\begin{aligned}
&\ln p(\boldsymbol{\mu}| \boldsymbol{\Lambda},\boldsymbol{X}) \\
&=\sum_{i=1}^N \ln \mathcal{N}(\boldsymbol{x}_i|\boldsymbol{\mu}, \boldsymbol{\Lambda}^{-1})
+\ln \mathcal{N}(\boldsymbol{\mu}|\boldsymbol{m},(\beta\boldsymbol{\Lambda})^{-1})
+\mathrm{Const.}
\end{aligned}
の各項は${}^t\!\boldsymbol{\mu} \boldsymbol{\Lambda} \boldsymbol{x}={}^t({}^t\!\boldsymbol{\mu} \boldsymbol{\Lambda} \boldsymbol{x})$$={}^t\boldsymbol{x}{}^t\boldsymbol{\Lambda} \boldsymbol{\mu}={}^t\boldsymbol{x}\boldsymbol{\Lambda} \boldsymbol{\mu}$に注意すると,&\ln p(\boldsymbol{\mu}| \boldsymbol{\Lambda},\boldsymbol{X}) \\
&=\sum_{i=1}^N \ln \mathcal{N}(\boldsymbol{x}_i|\boldsymbol{\mu}, \boldsymbol{\Lambda}^{-1})
+\ln \mathcal{N}(\boldsymbol{\mu}|\boldsymbol{m},(\beta\boldsymbol{\Lambda})^{-1})
+\mathrm{Const.}
\end{aligned}
\begin{aligned}
&\ln \mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}, \boldsymbol{\Lambda}^{-1}) \\
&=-\frac{1}{2} {}^t(\boldsymbol{x}-\boldsymbol{\mu}) \boldsymbol{\Lambda} (\boldsymbol{x}-\boldsymbol{\mu}) + \mathrm{Const.} \\
&=-\frac{1}{2} \bigl( {}^t\!\boldsymbol{\mu} \boldsymbol{\Lambda}\boldsymbol{\mu} - 2 {}^t\!\boldsymbol{\mu} \boldsymbol{\Lambda} \boldsymbol{x} \bigr)+ \mathrm{Const.} \\
\end{aligned}
を用いて計算できます.
&\ln \mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}, \boldsymbol{\Lambda}^{-1}) \\
&=-\frac{1}{2} {}^t(\boldsymbol{x}-\boldsymbol{\mu}) \boldsymbol{\Lambda} (\boldsymbol{x}-\boldsymbol{\mu}) + \mathrm{Const.} \\
&=-\frac{1}{2} \bigl( {}^t\!\boldsymbol{\mu} \boldsymbol{\Lambda}\boldsymbol{\mu} - 2 {}^t\!\boldsymbol{\mu} \boldsymbol{\Lambda} \boldsymbol{x} \bigr)+ \mathrm{Const.} \\
\end{aligned}