[toc]
今回は、パターン認識と機械学習 上 1.2.4節で説明されているガウス分布のパラメータを求めていきます。
PRML(1.2.4 ガウス分布)①
PRML(1.2.4 ガウス分布)②
対象読者
- 初学者
問題設定
一種類のデータからなるスカラー変数 x が
N 個集まったデータ集合 \bf \mathsf{x} = \{ x_1,x_2,...,x_N\} が得られたとします。このデータ \bf \mathsf{x} が、未知の平均 \mu と分散 \sigma^2 のガウス分布から得られた観測値だとして、このパラメータ \mu,\sigma^2 を推定していきます。
ガウス分布の尤度関数
データ \bf \mathsf{x} が 同じパラメータを持つガウス分布から互いに独立に得られたと仮定すると、このデータが得られる確率は、 x_1,x_2,...,x_N が同じパラメータを持つガウス分布から得られる確率の積で表すことができるため、
p( \mathsf{x} | \mu,\sigma^2) = \prod_{n=1}^N \mathcal{N}(x_n|\mu,\sigma^2)となります。 \mu,\sigma^2 の関数とみなすことで、この式をガウス分布の尤度関数といいます。この関数を最大化するような \mu,\sigma^2 を定めることを最尤法といい、得られるパラメータの値を最尤値といいます。
ガウス分布の最尤解
最尤法(method of Maximum Likelihood)で得られたパラメータを \mu_{ML},\sigma^2_{ML} とすると、
\mu_{ML}=\frac{1}{N} \sum_{n=1}^N x_n \sigma^2_{ML}= \frac{1}{N} \sum_{n=1}^N (x_n-\mu_{ML})^2になります。以下ではこの導出過程を説明していきます。
最尤解の導出
上記の尤度関数をパラメータごとに偏微分することで最尤解を求めるのですが、対数尤度関数について偏微分を行います。
対数をとるメリットは2つあります。
- 積の微分を考える必要がないため、微分が単純になります。
- 確率値は0~1の値であるため、多くの積を取っていくと計算機がアンダーフローを起こしてしまいますが、対数の和をとることで問題が解消されます。
次に、なぜ対数をとっても良いのかについてですが、対数は単調増加関数なので、関数に対数をとっても問題として等価であるからです。
前置きが長くなりましたが、対数尤度関数は
\begin {aligned} \ln p( \mathsf{x} | \mu,\sigma^2) &= \ln \prod_{n=1}^N \mathcal{N}(x_n|\mu,\sigma^2) \\ &= \sum_{n=1}^N \ln \mathcal{N}(x_n|\mu,\sigma^2) \\ &= \sum_{n=1}^N \ln \{ \displaystyle\frac{1}{(2\pi\sigma^2)^ {\frac{1}{2}}} \exp \left\{ -\displaystyle\frac{1}{2\sigma^2} (x_n-\mu)^2 \right\}\} \\ &= \sum_{n=1}^N \{ \ln \displaystyle\frac{1}{(2\pi\sigma^2)^ {\frac{1}{2}}} +\ln \exp \left\{ -\displaystyle\frac{1}{2\sigma^2} (x_n-\mu)^2 \right\}\} \\ &= \sum_{n=1}^N \{ \frac{1}{2} \ln \displaystyle\frac{1}{(2\pi\sigma^2)} + \left\{ -\displaystyle\frac{1}{2\sigma^2} (x_n-\mu)^2 \right\}\} \\ &= \frac{N}{2} \ln \displaystyle\frac{1}{(2\pi\sigma^2)} -\displaystyle\frac{1}{2\sigma^2} \sum_{n=1}^N (x_n-\mu)^2 \\ &=-\frac{N}{2} \ln {(2\pi)} - \frac{N}{2} \ln {\sigma^2} -\displaystyle\frac{1}{2\sigma^2} \sum_{n=1}^N (x_n-\mu)^2 \end{aligned}対数尤度関数を \mu で偏微分すると、
\begin {aligned} \frac {\partial \ln p( \mathsf{x} | \mu,\sigma^2)}{\partial \mu} &= \frac {\partial \left \{ -\displaystyle \frac{N}{2} \ln {(2\pi)} - \displaystyle\frac{N}{2} \ln {\sigma^2} -\displaystyle\frac{1}{2\sigma^2} \sum_{n=1}^N (x_n-\mu)^2 \right \} }{\partial \mu} \\ &= -\displaystyle\frac{1}{2\sigma^2} \sum_{n=1}^N \{ -2(x_n-\mu) \} \\ &= \displaystyle\frac{1}{\sigma^2} \sum_{n=1}^N (x_n-\mu) \end{aligned}となり、この式が0となるときに対数尤度が最大となる \mu_{ML} が求められるので、
\begin {aligned} \displaystyle\frac{1}{\sigma^2} \sum_{n=1}^N (x_n-\mu_{ML}) &= 0 \\ \sum_{n=1}^N x_n &= N\mu_{ML} \\ \mu_{ML} &= \frac{1}{N} \sum_{n=1}^N x_n \end{aligned}となる。
また、対数尤度関数を \sigma^2 で偏微分すると、
\begin {aligned} \frac {\partial \ln p( \mathsf{x} | \mu,\sigma^2)}{\partial \sigma^2} &= \frac {\partial \left \{ -\displaystyle \frac{N}{2} \ln {(2\pi)} - \displaystyle\frac{N}{2} \ln {\sigma^2} -\displaystyle\frac{1}{2\sigma^2} \sum_{n=1}^N (x_n-\mu)^2 \right \} }{\partial \sigma^2} \\ &= -\displaystyle\frac{N}{2} \cdot \displaystyle\frac{1}{\sigma^2} - (-\displaystyle\frac{1}{\sigma^4}) \sum_{n=1}^N (x_n-\mu)^2 \\ &= -\displaystyle\frac{N}{2} \cdot \displaystyle\frac{1}{\sigma^2}+\displaystyle\frac{1}{\sigma^4} \sum_{n=1}^N (x_n-\mu)^2 \end{aligned}となり、この式が0となるときに対数尤度が最大となる \sigma^2_{ML} が求められるので、
\begin {aligned} -\displaystyle\frac{N}{2} \cdot \displaystyle\frac{1}{\sigma_{ML}^2}+\displaystyle\frac{1}{\sigma_{ML}^4} \sum_{n=1}^N (x_n-\mu)^2 &= 0 \\ \sigma_{ML}^2 &= \displaystyle\frac{1}{N} \sum_{n=1}^N (x_n-\mu_{ML})^2 \end{aligned}となり、平均と分散の最尤値が求められました。最尤法で求めた平均をサンプル平均とよび、このサンプル平均を用いているので、上記の分散のことをサンプル平均に関するサンプル分散とよびます。
本来は \muと\sigma^2 を同時に最大化するのですが、ガウス分布の場合は別々に解くことができるため、サンプル平均を導出して、その結果を用いてサンプル分散を求めています。
最尤法でのデメリット
最尤法で分散を求めると導出された分布の分散は過少に評価されてしまいます。この現象のことをバイアスと呼び、多項式でデータをフィッティングする際に、過学習してしまうということに関連しています。
以下では、最尤法で求めたサンプル平均とサンプル分散の期待値について導出していきたいと思います。
サンプル平均の期待値
\begin {aligned} \rm E[\mu_{ML}] &= \rm E[\displaystyle\frac{1}{N}\sum _{n=1}^N x_n] = \displaystyle\frac{1}{N} \rm E [\sum _{n=1}^N x_n] = \displaystyle\frac{1}{N} \sum _{n=1}^N \rm E[x_n] \\ &= \displaystyle\frac{1}{N} \sum _{n=1}^N \mu = \displaystyle\frac{1}{N} \cdot N\mu = \mu \end{aligned}サンプル分散の期待値
サンプル分散の期待値をとる前に期待値の計算を簡単にするため、以下のような式変形をしていきます。
\begin {aligned} \sigma^2_{ML} &= \displaystyle\frac{1}{N} \sum_{n=1}^N \left\{ (x_n-\mu) - (\mu_{ML}-\mu) \right\}^2 \\ &= \displaystyle\frac{1}{N} \sum_{n=1}^N \left\{ (x_n-\mu)^2 - 2(x_n-\mu)(\mu_{ML}-\mu) + (\mu_{ML}-\mu)^2 \right\}^2 \\ &= \displaystyle\frac{1}{N} \sum _{n=1}^N (x_n-\mu)^2 - \displaystyle\frac{2}{N} \cdot (\mu_{ML}-\mu) \sum_{n=1}^N (x_n-\mu) + (\mu_{ML}-\mu)^2 \\ &= \displaystyle\frac{1}{N} \sum _{n=1}^N (x_n-\mu)^2 - 2(\mu_{ML}-\mu)(\mu_{ML}-\mu) + (\mu_{ML}-\mu)^2 \\ &= \displaystyle\frac{1}{N} \sum _{n=1}^N (x_n-\mu)^2 - (\mu_{ML}-\mu)^2 \end{aligned}このように変形したサンプル分散について期待値をとっていきます。
\begin{aligned} \rm E[\sigma^2_{ML}] &= \rm E[\displaystyle\frac{1}{N} \sum_{n=1}^N (x_n-\mu)^2 - (\mu_{ML}-\mu)^2] \\ &= \rm E[\displaystyle\frac{1}{N} \sum_{n=1}^N (x_n-\mu)^2] - \rm E[(\mu_{ML}-\mu)^2] \\ &= \displaystyle\frac{1}{N} \sum_{n=1}^N \rm E[ (x_n-\mu)^2] - \rm E[(\mu_{ML}-\mu)^2] \\ &= \displaystyle\frac{1}{N} \cdot N\sigma^2 - \displaystyle\frac{1}{N}\sigma^2 \\ &= \displaystyle\frac{N-1}{N}\sigma^2 \end{aligned}※省略した式変形
\begin {aligned} \rm E[(\mu_{ML}-\mu)^2] &= \rm E[(\displaystyle\frac{1}{N} \sum_{n=1}^N x_n - \displaystyle\frac{1}{N} \sum_{n=1}^N \rm E[x_n])^2] \\ &= \displaystyle\frac{1}{N^2} \sum_{n=1}^N \rm E[(x_n - \rm E[x_n])^2] \\ &= \displaystyle\frac{1}{N^2} \sum_{n=1}^N \sigma^2 \\ &= \displaystyle\frac{1}{N} \sigma^2 \end{aligned}期待値の結果
\rm E[\mu_{ML}] = \mu \rm E[\sigma^2_{ML}] = \displaystyle\frac{N-1}{N}\sigma^2ここで、サンプル平均は正しい平均になっていますが、サンプル分散については \frac{N-1}{N}倍過小評価されます。バイアスは \frac{N-1}{N}倍だけ起こりますが、データ数を多くすれば真の値に近づくことがわかります。過学習はデータ数が少ないときに起こりやすいというのはこの式からわかります。
まとめ
今回はガウス分布のパラメータを最尤法で求めました。
\mu_{ML}=\frac{1}{N} \sum_{n=1}^N x_n \sigma^2_{ML}= \frac{1}{N} \sum_{n=1}^N (x_n-\mu_{ML})^2また、パラメータの期待値を求めました。
\rm E[\mu_{ML}] = \mu \rm E[\sigma^2_{ML}] = \displaystyle\frac{N-1}{N}\sigma^2さらに、最尤法で求めた分散は真の分散を過小評価していることを確認しました。
参考文献
- C.M. ビショップ (2012):『パターン認識と機械学習 上』, 丸善出版