最尤推定と交差エントロピー誤差(クロスエントロピー誤差、logloss)の最小化が同じことだということについて、毎回同じことを思い出しているような気がしたのでメモします。
最尤推定
例えばコインの表が出る事象X=1、裏が出る事象をX=0として、コインを3回投げたところ次のような結果になったとします。
1回目 | 2回目 | 3回目 |
---|---|---|
1 | 0 | 1 |
このとき、コインの表の出る確率は直感的に$2/3$となりそうですが、これを最尤推定で推定してみます。
コインの表の出る確率を$p$したとき、このような結果が得られる確率は
\begin{aligned}
P&=p(1-p)p\\
&=p^2(1-p)
\end{aligned}
となります(同時確率)。
そして(厳密には違うのですが)尤度関数$L$は同時確率と同じ形をしているので、次のようになります。
L=p^2(1-p)
この対数を取った対数尤度関数は次のようになります。
\begin{aligned}
l=2\log{p}+\log{(1-p)}
\end{aligned}
最尤推定ではこれを最大化する$p$を求めます。それには微分して$0$になる$p$を求めればいいので、
\begin{aligned}
\frac{\partial l}{\partial p}&=\frac{2}{p}-\frac{1}{1-p}\\
&=\frac{2-3p}{p(1-p)}=0
\end{aligned}
よって$p=2/3$と推定できました。
最尤推定についてまとめ
尤度関数と同時確率は同じ形をしていたので、尤度関数を最大化するということは、その事象が起きる同時確率を最大化するということになります。ある事象が起こった後で、コインの表の出る確率$p$を推定するとき、その事象が起こる確率を最大化する$p$がもっともらしい$p$だろうという論理です。
まとめると、最尤推定とは、ある事象が観察され、その事象の分布を仮定(今回の場合コインの表の出る確率は$p$となり、その値は一定と仮定)したとき、尤度関数を最大化することで、そのパラメータをもっともらしく求める方法と言えます。
(余談ですが、尤度の「尤」は「尤もらしい」と書いて「もっともらしい」と読みます。なので昔の人は英語の「likehood」を「尤度」と訳したのでしょうね。)
2クラス分類問題
ある2クラス分類問題をモデルで予測したいとき、次のような3つのデータがあったとします。
1 | 2 | 3 | |
---|---|---|---|
説明変数 | $x_1$ | $x_2$ | $x_3$ |
ラベル | 1 | 0 | 1 |
説明変数$x$は1変数かもしれないですし、多変数かもしれないとします。
皆さんご存じの通り、モデルによってラベルを予測したいときラベルが$1$である確率$p$を予測する予測式$f$を機械学習によって求めることがよく行われます。
この予測式$f$は$i$番目のデータの説明変数$x_i$を入力として与えると、そのデータのラベルが$1$である確率$p_i$を出力します。式で表すと次のようになります。
p_i=f(x_i)
このとき、モデルに使う手法が決定木にしろ、ニューラルネットワークにしろ、SVMにしろ、データから学習して求めるのは予測式$f$を決めるパラメータです。このパラメータを$\theta$とし、$\theta$によって定まった予測式を$f_\theta$と表すことにします。
このパラメータを先ほどのコインの表の出る確率$p$と同じように最尤推定で求めると、尤度関数は次のようになります。
\begin{aligned}
L(\theta)&=f_\theta(x_1)(1-f_\theta(x_2))f_\theta(x_3)\\
&=\prod_{i=1}^3[f_\theta(x_1)]^{t_i}[1-f_\theta(x_1)]^{1-t_i}
\end{aligned}
ただし$t_i$は$i$番目のデータの正解ラベルとします。
また、対数尤度関数は次のようになります。
l(\theta)=\sum_{i=1}^3\left\{t_i\log{[f_\theta(x_1)]}+(1-t_i)\log{[1-f_\theta(x_1)]}\right\}
この$l(\theta)$にマイナスをつけ、データ数で割ったものが交差エントロピー誤差となります。$l(\theta)$を最大化するには、交差エントロピー誤差を最小化するようにモデルを学習すればいいことになります。
最尤推定と交差エントロピー誤差について
以上から、最尤推定と交差エントロピー誤差の最小化が同じことだということが分かりました。
さきほど、「最尤推定とは、ある事象が観察され、その事象の分布を仮定したとき、尤度関数を最大化することで、そのパラメータをもっともらしく求める方法」だと述べましたが、
これに対し、クラス分類問題を学習する場合、「データとそれに対するラベルがあり、そのデータを説明するモデル$f$を仮定したとき、交差エントロピー誤差を最小化することでそのモデル$f$のパラメータをもっともらしく求める」ことができると言えます。
さらに一歩踏み込んでいえば、データがあった時、そのデータが何らかのモデル(決定木、ニューラルネットワーク)によって生成されたとき、そのデータが生成される同時確率を最大化するようにパラメータを求めていると言えそうです。
(ただ現実のデータが生成されるモデルというのが決定木やニューラルネットワークそのものであるとは言えなさそうです。例えば、タイタニックの事故で生き残るかどうかを完全再現するには、それこそ映画マトリックスのような仮想世界が必要になるレベルだと思います。)