【メモ】ベイズ推論による機械学習入門(須山敦志)

以下の書籍のメモです.目的は,

  • 見通しが良い形で書き換えたい:かなり丁寧に解説してくれている分,後から見返したときに見通しが悪い部分があるため.
  • 省略されている計算・ロジックのフォロー.
です.

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}
がすぐに理解できます.

第2章 基本的な確率分布

一部,次の記事で扱っています.
ベルヌーイ分布から多項分布へ - Notes_JP

第3章 ベイズ推論による学習と予測

用語の整理

  • モデル:観測データ$\mathcal{D}$と未観測の変数$\boldsymbol{\theta}$の同時分布$p(\mathcal{D}, \boldsymbol{\theta})$のこと.
  • 学習:
    \begin{aligned}
    \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}
    を計算すること.$p(\mathcal{D})$は$\boldsymbol{\theta}$に依存しない規格化定数なので,実際は$p(\boldsymbol{\theta}|\mathcal{D})\propto p(\mathcal{D}|\boldsymbol{\theta})p(\boldsymbol{\theta})$の右辺を計算すれば良い.
  • 予測:未知のデータ$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}
    を計算すること.

学習の方法

この章では,「共役事前分布」を用いることで解析的に学習が可能な例を扱っています.
  1. 事前分布$p(\boldsymbol{\theta})$として,共役事前分布
    \begin{aligned}
    p(\boldsymbol{\theta})
    =f(\boldsymbol{\theta}|\boldsymbol{\alpha}_0)
    \end{aligned}
    を用いる.ここで,$\boldsymbol{\alpha}_0$は最初に与えておく「超パラメータ」を表す.
  2. 事後分布
    \begin{aligned}
    p(\boldsymbol{\theta}|\mathcal{D})
    \propto p(\mathcal{D}|\boldsymbol{\theta})
    \overbrace{p(\boldsymbol{\theta})}^{\mathrlap{=p(\boldsymbol{\theta}|\boldsymbol{\alpha}_0)}}
    \end{aligned}
    は,事前分布と全く同じ関数形でパラメータを$\boldsymbol{\alpha}_0 \rightarrow \boldsymbol{\alpha}_1$と置き換えたものになる.つまり
    \begin{aligned}
    p(\boldsymbol{\theta}|\mathcal{D})
    =f(\boldsymbol{\theta}|\boldsymbol{\alpha}_1)
    ,\quad \boldsymbol{\alpha}_1=g(\boldsymbol{\alpha}_0, \mathcal{D})
    \end{aligned}
    が成り立つ.この関数$g$を求めれば,パラメータの更新則が定まる(解析的に「学習」が可能).

多次元ガウス分布

【作成中】
これがわかれば,他もわかるはずなので.また,途中計算にちょっとギャップがあったため丁寧に計算します.

モデルとして

  • 尤度関数:
    \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}$を入れ替えた式に変形しても,全く同様に計算できる).

ここで,$(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)$は
\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}
となります.

ここで,それぞれ対数をとってみます.まず,

\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}$に注意すると,
\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}
を用いて計算できます.