最尤推定は何ができるの?
By Huy Van
英語: Maximum Likelihood Estimation (MLE)
最近仕事で確率モデルを扱う機会があって、パラメータ推定には最尤推定を使うことがありました。 でもわかるような、わからないような状態なので、式を立てて一度整理したいと思います。
例1
問題
データ $D= { x^{(1)},…, x^{(N)} }$(母集団) が与えられるとします。 このデータが正規分布に従うと仮定したら、最尤推定でパラメータを推定しましょう。
回答
まず正規分布の式です。
$$ p(x) = \frac{1}{\sqrt{2\pi\sigma^2}}\exp \big(-\frac{(x-\mu)^2}{2\sigma^2}\big) $$
最尤推定はとは、尤度がもっとも高くなるようにパラメータを決定する方法です。「できるかぎりデータにフィットさせる」推定方法です1。
最尤推定の1つ目の条件は、データは独立に同一の確率分布(i.i.d)2に従うのです。 そこで、尤度(likelihood)は
$$ p(D) = \prod_ {x^{(i)}\in D} p(x^{(i)}) $$
です。これを最大化したいです。
確率$p$は$[0,1]$の間の値なので、積をとるとコンピュータの計算に誤差が出るので実際、$\log$3をとることが多いです。
$$ \begin{align} \log p(D) &= \sum_ {x^{(i)}\in D} \log p(x^{(i)}) \\ &= \sum_ {x^{(i)}\in D} \log \Big(\frac{1}{\sqrt{2\pi\sigma^2}}\exp \big(-\frac{(x^{(i)}-\mu)^2}{2\sigma^2}\big)\Big) \\ &= -\frac{N}{2}\log(2\pi) - N\log (\sigma) - \sum_ {x^{(i)}\in D} \frac{(x^{(i)}-\mu)^2}{2\sigma^2} \end{align} $$
この場合のパラメータは$(\mu, \sigma)$ですね。
$$ \begin{align} L(\mu, \sigma) &= -\log P(D) \\ &= \frac{N}{2}\log(2\pi) + N\log (\sigma) + \sum_ {x^{(i)}\in D} \frac{(x^{(i)}-\mu)^2}{2\sigma^2} \end{align} $$
とします。Lはnegative log likelihoodとも言います。尤度の最大化はLの最小化と等価です。 最小化問題なので微分を計算します。
$$ \begin{align} \frac{\partial L}{\partial \mu} &= \sum_ {x^{(i)}\in D} \frac{\mu-x^{(i)}}{\sigma^2} \\ \frac{\partial L}{\partial \sigma} &= \frac{N}{\sigma} - \sum_ {x^{(i)}\in D} \frac{(x^{(i)}-\mu)^2}{\sigma^3} \end{align} $$
偏微分を全部0にすると、
$$ \mu = \frac{1}{N} \sum_ {x^{(i)}\in D} x^{(i)} \\ \sigma^2 = \frac{1}{N} \sum_ {x^{(i)}\in D} (x^{(i)}-\mu)^2 $$
すなわち、$\mu$はデータDの平均、$\sigma$はデータDの標準偏差となっています。 正規分布関数は凹関数なので、この値におけるLは最小値になります。
例2
問題
最尤推定でunigramモデルを作りましょう。
回答
すなわち、各単語$w_ i$の確率$p_ i$を求めることです。 ここで$N$は全単語の数で、単語$w_ i$の数は$n_ i$とします。直感的には
$$ p_ w = \frac{n_ w}{N} $$
でしょうが、実際最尤推定で求めましょう。
対数尤度(log likelihood)は
$$ \log p(D) = \sum_ {w_ i \in D} n_ i \log(p_ i) $$ となります。 今回は分布のパラメータを求めるのではなく、確率$p_ i$を求めることです。 対数尤度を最大化するには微分を計算してみます。
$$ \frac{\partial \log p(D)}{\partial p_ i} = \frac{n_ w}{p_ w} $$
これを0にすると$p_ w$は∞になりますが、注意したいのは$\sum_ {w_ i \in D} p_ i = 1$という制限があります。
なので、別の方法を考えましょう。制限付きの最適化問題にはラグランジュ乗数法があります。
ラグランジュ関数$L(p,\lambda)$を作ります。
$$ L(p,\lambda) = \sum_ {w_ i \in D} n_ i \log(p_ i) + \lambda(\sum_ {w_ i \in D} p_ i - 1) $$ 各パラメータ$p_ w$に関しての偏微分を計算すると、
$$ \frac{\partial{L(p,\lambda)}}{\partial {p_ w}}=\frac{n_ w}{p_ w}+\lambda $$
全部0にしたら、
$$ -\lambda = \frac{n_ w}{p_ w} = \frac{\sum_ {w_ i \in D} n_ w}{\sum_ {w_ i \in D}p_ w}=\frac{N}{1}=N $$
になります。 結果:
$$ p_ w = \frac{n_ w}{N} $$
直感的に合っていますね。
最尤推定の問題点
最尤推定は「できるかぎりデータにフィットさせる」推定方法なので、求めた解はoverfitすることが多いそうです。 例えば、unigramモデルの場合は、未知語の確率は全部0になってしまいます。 これは実際問題に応用するときには注意することが必要です。