作って遊ぶ機械学習。

~基礎的な確率モデルから最新の機械学習技術まで~

最尤推定、MAP推定、ベイズ推論

今回は、最尤推定、MAP推定(事後確率最大化推定、正則化)、ベイズ推論*1の関係性を見ていきたいと思います。結論から言うと、最尤推定とMAP推定はベイズ推論の特殊な近似方法であると見ることができます。

 

[必要な知識]

下記をさらっとだけ確認しておくといいです。

  • KL divergence
  • 確率の加法定理、乗法定理

 

\[ \newcommand{\argmax}{\mathop{\rm arg~max}\limits} \newcommand{\argmin}{\mathop{\rm arg~min}\limits} \]

$x$を観測データ、$\theta$をパラメータとした確率モデル$p(x, \theta)$に対して、それぞれの推定方法は一般的には下記のように認識されているようです。

 

最尤推定

\[ \theta_{ML} = \argmax_{\theta} \{ p(x|\theta) \} \tag{1} \]

・MAP推定(正則化

\[ \theta_{MAP} = \argmax_{\theta} \{ p(x|\theta)p(\theta) \} \tag{2} \]

ベイズ推論

\[ p(\theta|x)=\frac{p(x|\theta)p(\theta)}{p(x)} \tag{3} \]

 

ベイズ推論では基本的にベイズの定理を用いて事後分布を求めているだけであり、argmaxのような関数の「最適化」は含まれていません。*2

 

まずはベイズ推論に比較的「近い」MAP推定から見ていきましょう。MAP推定をベイズ推論の近似であるとすると、事後分布$p(\theta|x)$に次のようなパラメトリックな分布を仮定していることになります。

\[ p(\theta | x) \approx q(\theta|\hat{\theta}) = \delta(\theta - \hat{\theta}) \]

ここで$\delta(\theta)$はデルタ分布であり、次のような性質を持ちます。

\[ \delta(\theta) = \begin{cases} +\infty & (\theta=0) \\ 0 & (otherwise) \end{cases} \]

\[ \int_{-\infty}^{+\infty} \delta(\theta) d\theta = 1 \]

\[ \int_{-\infty}^{+\infty} \delta(\theta)f(\theta) d\theta = \langle f(\theta) \rangle_{\delta(\theta)} = f(0) \]

簡単に言ってしまうと、$\theta=0$の点で無限大に尖った形状を持つような確率分布です。したがって$\delta(\theta - \hat{\theta})$は$\theta = \hat{\theta}$の時に無限大の値を持つような確率分布です。

さて、この仮定のもとで真の事後分布とのKL divergenceを最小化してみましょう。

\[ KL(q(\theta|\hat{\theta})||p(\theta|x)) \\ = \langle \ln q(\theta|\hat{\theta}) \rangle_{q(\theta|\hat{\theta})} - \langle \ln p(\theta|x) \rangle_{q(\theta|\hat{\theta})} \\ = \ln q(\hat{\theta}|\hat{\theta}) - \ln p(x|\hat{\theta}) - \ln p(\hat{\theta}) \\ = - \{ \ln p(x|\hat{\theta}) + \ln p(\hat{\theta}) \} + c \]

$\ln q(\hat{\theta}|\hat{\theta})$は$\hat{\theta}$の値にかかわらず無限大の値を取るため、 定数項$c$に吸収させました。さて、この式を$\hat{\theta}$に関して最小化するので、

\[ \theta_{MAP} = \argmin_{\hat{\theta}} \{ KL(q(\theta|\hat{\theta})||p(\theta|x)) \} \\ = \argmax_{\theta} \{ \ln p(x|\theta) + \ln p(\theta) \} = \argmax_{\theta} \{ p(x|\theta)p(\theta) \} \]

となり、(2)が得られます。

 

次に最尤推定を見てみましょう。最尤推定ベイズ推論の近似であるとすると、事後分布$p(\theta | x)$と事前分布$p(\theta)$に次のような仮定を置いていることになります。

\[ p(\theta | x) \approx q(\theta|\hat{\theta}) = \delta(\theta - \hat{\theta}) \]

\[ p(\theta) = c \]

事後分布が無限大に尖っている分布に対して、事前分布は無限に平坦な無情報事前分布です*3。さて、MAP推定の場合と同様、真の事後分布とのKL divergenceを最小化してみます。

\[ KL(q(\theta|\hat{\theta})||p(\theta|x)) \\ = \langle \ln q(\theta|\hat{\theta}) \rangle_{q(\theta|\hat{\theta})} - \langle \ln p(\theta|x) \rangle_{q(\theta|\hat{\theta})} \\ = \ln q(\hat{\theta}|\hat{\theta}) - \ln p(x|\hat{\theta}) - \ln p(\hat{\theta}) \\ = - \{ \ln p(x|\hat{\theta}) \} + c \]

ここでも$\hat{\theta}$に無関係な項は$c$にまとめました。この式を$\hat{\theta}$に関して最小化したいので、

\[ \theta_{ML} = \argmin_{\hat{\theta}} \{KL(q(\theta|\hat{\theta})||p(\theta|x)) \} \\ = \argmax_{\theta} \{ \ln p(x|\theta) \} = \argmax_{\theta} \{ p(x|\theta) \} \]

となり、(1)が得られます。

 

以上のように、ベイズ推論の観点からすると、MAP推定や最尤推定は、事前分布や事後分布に対して非常に極端な分布を仮定して推定していることになります。

・MAP推定:

 事後分布を無限に尖った確率分布であると仮定

最尤推定

 事後分布は無限に尖った確率分布であり、事前分布は無限に平坦な確率分布であると仮定

事実、KL divergenceに基づく近似の観点からすると、どちらの推定方法も真の事後分布から「無限大に遠い」ような近似事後分布を計算していることになってしまっています。
ただし2つの手法にも利点はあります。それはデルタ関数を使うことによって難しい積分計算(期待値計算)を回避することができるという点です。積分さえ回避してしまえば、あとはKL divergenceを勾配法などを用いて最小化すればOKです。勾配法を使うには微分を要しますが、一般的に積分をするよりははるかに簡単です。

*1:ここでは推定(estimation)と推論(inference)を分けています。推定はある特定の値を何らかの方法で求めるのに対して、ここでは推論は確率計算によりある確率分布を求めることを意味しています。ちなみにMAP推定のことをベイズ推定と呼ぶ場合もあり、非常にややこしいことになっています。

*2:事後分布が解析的に求められない場合に限り、変分近似やラプラス近似のような最適化手法を使います。

*3:厳密に言うと、連続値を取る確率分布の場合、定数cを$-\infty$から$+\infty$まで積分すると無限大に発散してしまうため、$p(\theta) = c$は正しい確率分布ではないです。ここでは便宜上、$\theta$に事前に偏りがないという意味で定数$c$を置いています。