機械学習

最尤推定

更新日:


これは単なる趣味の記事です
たいして数学が得意でもなかった偽理系出身のおっさんの懐古趣味

PRMLは省略が多くて難しいです。
省略を紐解いても出てくるのが統計学入門レベルです。
鬼ですね。

ただ、厳密さを求めない簡単な説明をしてくれているところを先に読むと、
割と簡単に紐解けます。

"互いに独立であること"の復習

少し前に、"違いに独立"の定義を詳しめに読んだことがあった。
2つの確率変数\(X\)、\(Y\)があったとき、
\(X=x\)であり同時に\(Y=y\)である確率\(P(X=x,Y=y)=f(x,y)\)について、
確率を定義できる空間(2次元ユークリッド空間\(S\)...)において、
\(X,Y\)が同時に起こる特別な事象\(A\)(\(S\)の部分集合)を定義した。

\begin{eqnarray}
\iint_S f(x,y)dydx = 1, f(x,y) \geq 0 \\
P((X,Y) \in A) = \iint_A f(x,y)dydx
\end{eqnarray}

2変数の片方について積分した分布を周辺確率分布(marginal probability distribution)とよんだ。
\begin{eqnarray}
g(x) &=& \sum_y f(x,y) \\
h(x) &=& \sum_x f(x,y)
\end{eqnarray}

\(g(x),h(x)\)は、\(f(x,y)\)において、片方の変数を固定して足し算したもの。
では、\(g(x),h(x)\)から\(f(x,y)\)を作れるかというと、
\(g(x),h(x)\)が"違いに独立"である場合に限り、\(g(x)とh(x)\)の積と\(f(x,y)\)が等しくなった。

最尤推定

\(N\)個のデータ\(\boldsymbol{x}=\begin{pmatrix}x_1 \\ x_2 \\ \cdots \\ x_n \end{pmatrix}\)が、平均\(\mu\)、標準偏差\(\sigma\)の正規分布\(N(\mu,\sigma)\)から独立に生成されるとする。
また、\(\boldsymbol{x}\)は互いに独立であるとする。

各々のデータが発生する確率\(P(x_i|\mu,\sigma)=N\left(x_n | \mu, \sigma^2\right)\)を
同時確率\(P(\boldsymbol{x}|\mu,\sigma)\)の周辺確率と考えることができる。
つまり以下の通り。
\begin{eqnarray}
p(\boldsymbol{x} | \mu, \sigma^2 ) = \prod_{n=1}^N N\left(x_n | \mu, \sigma^2\right)
\end{eqnarray}

ここで、\(\boldsymbol{x}\)は既に与えられている訳なので、
\(p(\boldsymbol{x} | \mu, \sigma^2 ) \)の変数部分は\(\mu\)、\(\sigma\)となる。
つまり、\(p(\boldsymbol{x} | \mu, \sigma^2 ) \)は\(\mu\)、\(\sigma\)の関数。

\(p(\boldsymbol{x} | \mu, \sigma^2 )\)を最大化する\(\mu\)、\(\sigma\)を求めようというのが、
最尤推定の考え方。

\(p(\boldsymbol{x} | \mu, \sigma^2 ) \)の最大値を与える\(\mu\)、\(\sigma\)は、
両辺に対数をとった後でも最大値を与えるから、
計算しやすくするために両辺に対数をとる。

対数をとることで、右辺の積が対数の和になる。
高校数学で暗記したやつの連発。

\begin{eqnarray}
\log p(\boldsymbol{x} | \mu, \sigma^2 ) &=& \log \prod_{n=1}^N N\left(x_n | \mu, \sigma^2\right) \\
&=& -\frac{1}{2\sigma^2} \sum_{n=1}^N \left( x_n -\mu \right)^2 - \frac{N}{2} \log \sigma^2 - \frac{N}{2} \log \left( 2\pi \right)
\end{eqnarray}

\(\mu\)に関して最大化するためには、
\(\sigma\)を定数として固定して\(\mu\)で偏微分して、それが0とする。
右辺は第2項,第3項がゼロとなり、第1項の微分が残る。
\begin{eqnarray}
\frac{\partial }{\partial \mu} \log p(\boldsymbol{x} | \mu, \sigma^2 ) &=& \frac{1}{\sigma^2} \sum_{n=1}^{N} \left(x_n-\mu\right) \\
&=& 0
\end{eqnarray}
これ、すなわち以下。
\begin{eqnarray}
\frac{1}{\sigma^2} \left( \sum_{n=1}^{N} x_n - N\mu \right) &=& 0 \\
\sum_{n=1}^{N} x_n &=& N\mu \\
\mu = \frac{1}{N} \sum_{n=1}^{N} x_n
\end{eqnarray}
なんと、\(\mu\)は標本平均のときに最大化する!。

\(\sigma\)に関して最大化するには、
\(\mu\)を定数として固定して\(\sigma\)で偏微分して、それが0とする。
これも高校数学で暗記したやつを連射する。
\begin{eqnarray}
\frac{\partial }{\partial \sigma} \log p(\boldsymbol{x} | \mu, \sigma^2 ) &=& \left( -\frac{1}{2\sigma^2} \sum_{n=1}^N \left( x_n -\mu \right)^2 \right)' - \left( \frac{N}{2} \log \sigma^2 \right)' \\
&=& \frac{1}{\sigma^3} \sum_{n=1}^N \left( x_n -\mu \right)^2 - \frac{N}{\sigma} \\
&=& 0
\end{eqnarray}

これ、すなわち以下。
\begin{eqnarray}
\frac{N}{\sigma} = \frac{1}{\sigma^3} \sum_{n=1}^N \left( x_n -\mu \right)^2 \\
\sigma^2 = \frac{1}{N} \sum_{n=1}^N \left( x_n -\mu \right)^2 \\
\end{eqnarray}

なんと、\(\sigma^2\)は標本分散のときに最大化する。

なぜ、\(\mu\)、\(\sigma\)それぞれ独立に偏微分して求めた値を使って、
もう片方を計算して良いのか、については時間がないから省略。

標本分散は不偏分散ではないことに起因して、
最尤推定により求められた分散は、不偏分散から過小に評価される。

PRMLでは、多項式曲線のフィッティングに最尤推定を使う内容になっていて、
最尤解が不偏でないことがわかりやすくなっている。

次回は、最大事後確率推定(maximum posterior)について。
以下を最大化する。
\begin{eqnarray}
\pi(\mu) L(\mu) = \frac{1}{\sqrt{2\pi}\sigma_m} exp \left( -\frac{1}{2} \left(\frac{\mu}{\sigma_m}^2 \right)\right) \prod_{j=1}^{n} \frac{1}{\sqrt{2\pi} \sigma_v} exp \left( - \frac{1}{2} \left( \frac{x_j -\mu}{\sigma_v} \right)^2 \right)
\end{eqnarray}

パターン認識と機械学習 上
C.M. ビショップ
丸善出版
売り上げランキング: 21,190
統計学入門 (基礎統計学Ⅰ)
東京大学出版会
売り上げランキング: 3,133

-機械学習
-

Copyright© ikuty.com , 2019 AllRights Reserved Powered by AFFINGER4.