最尤法によるパラメータ推定の基礎を理解する(二項分布と正規分布のパラメータの最尤推定量の導出)

#はじめに
本記事は機械学習を勉強していると必ず出てくる、**最尤法によるパラメータ推定**がテーマです。尤度推定という概念が中々頭に定着せずに苦しんだのでこちらにまとめることにしました。理解に苦しんでいる人の助けになれば幸いです。

##参考
最尤法によるパラメータ推定の基礎を理解するに当たって、下記を参考にいたしました。

- [自然科学の統計学](https://www.amazon.co.jp/dp/4130420674/ref=cm_sw_r_tw_dp_U_x_JVZyEbZCY8F8B)
- [最尤法によるパラメータ推定の意味と具体例
](https://mathtrain.jp/mle)
- [最尤推定量とは？初めての人にもわかる解説
](https://to-kei.net/estimator/maximum-likelihood-estimation/)
- [StatQuest: Maximum Likelihood For the Normal Distribution, step-by-step!
](https://youtu.be/Dn6b9fCIUpM)



#最尤法によるパラメータ推定
##尤度とは何か
「尤度」は下記のように表現することができます。
>ある前提条件に従って結果が出現する場合に、逆に観察結果からみて前提条件が「何々であった」と推測する尤もらしさ（もっともらしさ）を表す数値を、「何々」を変数とする関数として捉えたものである。(wikipedia)

これだけだとわかりづらいので具体例を示します。

「3枚のコインを投げて3枚とも表が出た」という観測結果が得られた時、この結果が観測される確率はコインが表になる確率$p$をパラメーターとする関数$L(p)$で表すことができます。
このとき、$p=\frac{1}{2}$であれば、尤度は$\frac{1}{8}$であると表現できます。

**あるパラメータがわかっている時、その結果が出現する尤もらしさはどの程度なのかを表すのが尤度**です。

##最尤法によるパラメータ推定とは何か
「最尤」とは字面通り**「一番尤もらしい」**という意味です。そして最尤法によるパラメータ推定とは、手元のデータから**一番尤もらしいパラメータを推定する**手法になります。
この手法によって推定されたパラメータを**最尤推定量**と呼びます。

「3枚のコインを投げて3枚とも表が出た」というデータからパラメータ(表が出る真の確率)を考えてみます。

・コインの表が出る真の確率が$p=\frac{1}{2}$の時、3回表が出る確率

$(\frac{1}{2})^3 = 12.5\%$

・コインの表が出る真の確率が$p=\frac{3}{4}$の時、3回表が出る確率

$(\frac{3}{4})^3 \fallingdotseq 42.2\%$

・コインの表が出る真の確率が$p=1$の時、3回表が出る確率

$(1)^3 = 100\%$

上記の結果を見て、「3回中3回表が出ている」ということは表が出る真の確率は$p=1$であると考えるのが尤もらしい($p=1$だったら必ずこの結果が出るので)とするのが最尤推定になります。(この例だとデータが少ないので極端になってしまっています。)

##最尤推定量の定義
最尤推定量をもう少し数式的に一般化して書いてみます。
**あるパラメータ$\theta$に従う確率密度関数を$f(x;\theta)$とした時、尤度関数$L(\theta;x)=f(x;\theta)$が最大となるような推定量$\theta=\hat\theta$を最尤推定量と呼びます。**

一気にごちゃっとしてしまいましたが、実はそんなに難しいことを書いている訳ではありません。二項分布を例として考えてみます。

二項分布の確率密度関数は下記のように表されます。

```math

\begin{eqnarray*}f(x;\theta)={}_n\mathrm{C}_x\theta^x(1-\theta)^{n-x}\end{eqnarray*}

```
確率密度分布が与えられた時$p$は既に定数として与えられていて、$x$に入れる値を変えて確率密度を計算します。**尤度関数の考え方は逆になっていて$x$が既に定数として与えられている状態の中、未知のパラメータ$p$を推定しにいきます。**

```math

\begin{eqnarray*}L(\theta;x)={}_n\mathrm{C}_x\theta^x(1-\theta)^{n-x}\end{eqnarray*}

```
上記尤度関数が最大値を取るような$p$が最尤推定量となります。

##二項分布の最尤推定量の導出
二項分布の最尤推定量の導出を行ってみます。
前項で記載した通り、$L(\theta;x)$最大となるような$\theta$を考えます。最大値を求める際に微分を行いますが、そのまま微分をすると非常に複雑な計算を要するため**尤度関数の対数を取った対数尤度**$\log L(\theta;x)$を考えます。
$L(\theta;x)$と$\log L(\theta;x)$は単調な関係であるため、$\log L(\theta;x)$を最大にするような$\theta$を考えるタスクに置き換えることができるということです。

対数尤度関数を$l(\theta) = \log L(\theta;x)$と置くと二項分布の場合下記のように展開できます。

```math
{\begin{eqnarray*}
l(\theta)&=&\log [{}_n\mathrm{C}_x\theta^x(1-\theta)^{n-x}]\\
&=&\log {}_n\mathrm{C}_x + \log \theta^x + \log (1-\theta)^{n-x}\\
&=&\log {}_n\mathrm{C}_x + x\log \theta + (n-x)\log (1-\theta)
\end{eqnarray*}}

```
続いて対数尤度関数$l(\theta)$を$\theta$について微分します。

```math
{\begin{eqnarray*}
\frac{\partial l(\theta)}{\partial\theta}&=&
\frac{\partial}{\partial\theta}\log {}_n\mathrm{C}_x + \frac{\partial}{\partial\theta}x\log \theta + \frac{\partial}{\partial\theta}(n-x)\log (1-\theta)\\
&=&\frac{\partial}{\partial\theta}x\log \theta + \frac{\partial}{\partial\theta}(n-x)\log (1-\theta)\\
&=&\frac{x}{\theta} - \frac{n-x}{1-\theta}\\



\end{eqnarray*}}

```
そして$\frac{\partial l(\theta)}{\partial\theta}=0$と置いて$\theta$について解くと下記のように最尤推定量を求めることができます。

```math
{\begin{eqnarray*}
\frac{x}{\theta} - \frac{n-x}{1-\theta}&=&0\\
\frac{x}{\theta} &=& \frac{n-x}{1-\theta}\\
x(1-\theta) &=& \theta(n-x)\\
\theta &=& \frac{x}{n}


\end{eqnarray*}}

```

二項分布の最尤推定量を求めることができました。例えば「3回中3回表が出る」例の最尤推定量は$\frac{3}{3}=1$であることがわかります。

##正規分布の最尤推定量の導出
続いて正規分布の例を考えます。
平均$\mu$標準偏差$\sigma$の正規分布に独立に従うを乱数を生成した時$x_1,x_2,\cdots,x_n$が出力されたとします。この時の平均$\mu$標準偏差$\sigma$の最尤推定量を考えます。

正規分布の確率密度関数は下記のように与えられています。

```math

\begin{eqnarray*}f(x;\mu, \sigma)=\frac{1}{\sqrt{2\pi\sigma^2}}\exp{(-\frac{(x-\mu)^2}{2\sigma^2})}

\end{eqnarray*}

```
尤度関数は先ほどの考え方と同様、与えられたデータ$x$から未知のパラメータ平均$\mu$標準偏差$\sigma$を推定します。

```math

\begin{eqnarray*}L(\mu,\sigma ;x)=\frac{1}{\sqrt{2\pi\sigma^2}}\exp{(-\frac{(x-\mu)^2}{2\sigma^2})}

\end{eqnarray*}

```

今回データが$x_1,x_2,\cdots,x_n$と$n$個与えられており、それらはすべて独立に生成されたものであるため、尤度関数は下記の表すことができます。

```math

\begin{eqnarray*}L(\mu,\sigma ;x_1,x_2,\cdots,x_n)=
L(\mu,\sigma ;x_1)×L(\mu,\sigma ;x_2)×\cdots ×L(\mu,\sigma ;x_n)

\end{eqnarray*}

```
$x_1$が与えらえた時の尤もらしさ、$x_2$が与えられた時の尤もらしさ...$x_n$が与えられた時の尤もらしさ全てを考慮して最適なパラメータ平均$\mu$標準偏差$\sigma$を推定します。

上記を正規分布に当てはめると下記のようになります。

```math

\begin{eqnarray*}L(\mu,\sigma ;x_1,x_2,\cdots,x_n)=
\displaystyle\prod_{k=1}\frac{1}{\sqrt{2\pi\sigma^2}}\exp(-\frac{(x_k-\mu)^2}{2\sigma^2})

\end{eqnarray*}

```
今回も二項分布の時と同様に対数尤度関数に変換して考えます。

```math

\begin{eqnarray*}

\log (L(\mu,\sigma ;x_1,x_2,\cdots,x_n)) &=&
n\log (\frac{1}{\sqrt{2\pi\sigma^2}})+ \sum_{k=1}\log(\exp(-\frac{(x_k-\mu)^2}{2\sigma^2})) \\

&=&-\frac{n}{2}\log (2\pi\sigma^2)- \frac{1}{2\sigma}\sum_{k=1}(x_k-\mu)^2

\end{eqnarray*}

```

対数尤度関数に変換すると割とシンプルな形に変形することができました。ここから最適な平均$\mu$標準偏差$\sigma$を推定しにいきます。

###**平均の最尤推定量の導出**
まずは平均$\mu$の最尤推定量の導出を試みます。今回は式の中に未知のパラメータが2種類存在するため、導出の際に片方を定数として偏微分を行います。

$ l(\mu)=\log (L(\mu,\sigma ;x_1,x_2,\cdots,x_n))$と置いて$l(\mu)$を$\mu$で偏微分します。

```math

{\begin{eqnarray*}
\frac{\partial l(\mu)}{\partial\mu}&=&
\frac{\partial}{\partial\mu}[-\frac{n}{2}\log (2\pi\sigma^{2})]- \frac{\partial}{\partial\mu}[\frac{1}{2\sigma^2}\sum_{k=1}(x_k-\mu)^2] \\
&=&- \frac{\partial}{\partial\mu}[\frac{1}{2\sigma^2}\sum_{k=1}(x_k-\mu)^2] \\
&=&-\frac{1}{2\sigma^2}[\frac{\partial}{\partial\mu}(x_1-\mu)^2 + \frac{\partial}{\partial\mu}(x_2-\mu)^2 + \cdots + \frac{\partial}{\partial\mu}(x_n-\mu)^2]\\
&=&-\frac{1}{2\sigma^2}[-2(x_1-\mu)-2(x_2-\mu)\cdots -2(x_n-\mu)]\\
&=&\frac{\sum_{k=1}(x_k - \mu)}{\sigma^2}
\end{eqnarray*}}

```

ここらから$\frac{\partial l(\mu)}{\partial\mu}=0$と置いて$\mu$について解きます。

```math
{\begin{eqnarray*}
\frac{\sum_{k=1}(x_k - \mu)}{\sigma^2}&=&0 \\
n\mu &=& \sum_{k=1}x_k \\
\mu &=&\frac{\sum_{k=1}x_k}{n} =\frac{x_1 + x_2 + \cdots + x_n}{n}

\end{eqnarray*}}

```
上記のことから**平均$\mu$の最尤推定量は標本平均**であることがわかります。感覚的には標本平均が母集団の平均$\mu$の推定量であることはなんとなくわかると思いますが、最尤推定の観点からも上記のように導き出すことが可能です。

###標準偏差の最尤推定量の導出
次は標準偏差$\sigma2$の最尤推定量の導出を試みます。

$ l(\sigma^2)=\log (L(\mu,\sigma ;x_1,x_2,\cdots,x_n))$と置いて$l(\sigma^2)$を$\sigma^2$で偏微分します。

```math

{\begin{eqnarray*}
\frac{\partial l(\sigma)}{\partial\sigma^2}&=&
\frac{\partial}{\partial\sigma}[-\frac{n}{2}\log (2\pi\sigma^2)]- \frac{\partial}{\partial\sigma}[\frac{1}{2\sigma^2}\sum_{k=1}(x_k-\mu)^2] \\
&=&\frac{\partial}{\partial\sigma}[-\frac{n}{2}\log (2\pi)]+\frac{\partial}{\partial\sigma}[-n\log (\sigma)]- \frac{\partial}{\partial\sigma}[\frac{1}{2\sigma^2}\sum_{k=1}(x_k-\mu)^2] \\
&=&-\frac{n}{\sigma}- [\frac{1}{2}(-2)\sigma^{-3} \sum_{k=1}(x_k-\mu)^2] \\
&=&-\frac{n}{\sigma} + \frac{\sum_{k=1}(x_k-\mu)^2}{\sigma^3} \\

\end{eqnarray*}}

```

ここらから$\frac{\partial l(\sigma)}{\partial\sigma}=0$と置いて$\sigma$について解きます。


```math

{\begin{eqnarray*}
-\frac{n}{\sigma} + \frac{\sum_{k=1}(x_k-\mu)^2}{\sigma^3}&=&0 \\
\frac{\sum_{k=1}(x_k-\mu)^2}{\sigma^3} &=& \frac{n}{\sigma} \\
\sigma^2 &=& \frac{\sum_{k=1}(x_k-\mu)^2}{n}\\
\sigma &=& \sqrt{\frac{\sum_{k=1}(x_k-\mu)^2}{n}} &=& \sqrt{\frac{(x_1-\mu)^2 + (x_2-\mu)^2 +\cdots +(x_n-\mu)^2 }{n}}


\end{eqnarray*}}

```
上記から標準偏差$\sigma$の最尤推定量を導出することができました。**同時に分散$\sigma^2$の最尤推定量も標本分散であることがわかりますが、標本分散をそのまま$\sigma^2$の推定量とするのは不偏性の観点から問題があるとされている**ため、$\sigma^2$の推定量には不偏分散(標本分散を$\frac{n}{n-1}$倍したもの)を用います。

#Next
最尤法によるパラメータ推定の基礎を理解することができました。次は機械学習タスクにおいて最尤法を使用したパラメータ推定を行う局面についてまとめたいと考えています。