LoginSignup
3
0

最尤推定の欠点を補完するMAP推定

Last updated at Posted at 2021-05-19

最尤推定は、教師あり学習をはじめとして、広く使われています。
しかし、その広く使われる最尤推定ですが、時と場合によっては、不合理な推定結果をもたらします。
その際に使用できるのが、ベイズの定理を応用したMAP推定(「最大事後確率推定」「事後分布最大化推定」)です。
不合理な推定結果をもたらす最尤推定の欠点とは何か、
MAP推定がそれをどう補完するのか、

について、書きたいと思います。

本稿が対象としている読者は、
最尤推定、ベイズの定理、MAP推定について、それぞれを単体では理解しているものの、それらの関係性については知らない
という人です。

n個の観測データをまとめた観測データベクトル$ \boldsymbol{x}=( x^{(1)}, x^{(2)}, …, x^{(n)} ) $があるとします。
パラメーターベクトルを$ \boldsymbol{\theta} $とします。

最尤推定の欠点

尤度関数

p(\boldsymbol{x}|\boldsymbol{\theta})=\prod_{i=1}^{n}p(x^{(i)}|\boldsymbol{\theta})

最尤推定は、この尤度関数を最大化するパラメーターベクトル $ \boldsymbol{\theta}=\hat{\boldsymbol{\theta}_{ML}} $を推定します。
これは、与えられた観測データの発生確率を最大にするθを推定する、ということです。

\begin{align}
\hat{\boldsymbol{\theta}_{ML}} &= \text{argmax}_{\theta}[p(\boldsymbol{x}|\boldsymbol{\theta})] \\
&=\text{argmax}_{\theta}[\prod_{i=1}^{n}p(x^{(i)}|\boldsymbol{\theta})]
\end{align}

最尤推定が言っているのは、
「パラメーターベクトル$ \hat{\boldsymbol{\theta}_{ML}} $だと、与えられた観測データの発生確率が最大になります」
だけです。
しかしこれだけだと、結局この推定値が使えない場合があります。

それは、そもそも $ \boldsymbol{\theta}=\hat{\boldsymbol{\theta}_{ML}} $になりにくい、即ち、

p(\boldsymbol{\theta}=\hat{\boldsymbol{\theta}_{ML}}) 

がとても低い、という場合です。
例えば、

p(\boldsymbol{\theta}=\hat{\boldsymbol{\theta}_{ML}}) = 0.00001

などという超低確率なら、最尤推定の答え$ \hat{\boldsymbol{\theta}_{ML}} $は、「リクツではそうなるんだろうけど現実味が無くて使えない」推定値、ということになります。

最尤推定は、「 $ \boldsymbol{\theta}=\hat{\boldsymbol{\theta}_{ML}} $ だと観測データの発生確率が最大になります。」とは言ってくれます。
しかし、最尤推定の仕事はそこまでです。
そもそもそのθの値に現実味があるかどうか、は、最尤推定は関知しません。

つまるところ、最尤推定の欠点は、
推定値そのものの現実味(発生確率)$ p(\boldsymbol{\theta}=\hat{\boldsymbol{\theta}_{ML}}) $ を考慮していない
ゆえに、ありえないθを推定値としてしまうことがある

ということです。

イメージしやすくするため、現実社会を例にとります。

<例>Aさん

Aさんの属性等    その値や内容、表記  
Aさんのある年の年収 「x」で表す
Aさんのその年の、
収入につながる行為や現象
「θ」で表す
Aさんの人となり ・宝くじ好き
・株をたんまり保持する資産家

今、Aさんの年収(課税所得という意味)が、1億円以上だったとします。x≧1億円です。
どうしたらこんなに大儲けできるのか知りたい、即ち、
このx≧1億円の時のθを知りたい、とします。

θが「宝くじで1億円を当てた」なら、xが1億円以上となる確率は、100%近くと考えていいです。
$p(x \geq 1\text{億円} | \theta = \text{宝くじで1億円当てた})$ は、考えられるθの中でおそらく最も高い、即ち、
「θ=宝くじで1億円を当てた」は「x≧1億円」を最もダイレクトに説明できる
ので、
観測値x≧1億円での最尤推定値は、θ=宝くじで1億円を当てた、となるでしょう。

しかし普通に考えて、この最尤推定値は使えないです。
それはそもそも、宝くじで1億円を当てること自体ほぼあり得ない、即ち、$p(\theta=\text{宝くじで1億円を当てた})$ がとても低いからです。

最尤推定の答え:θ=宝くじで1億円を当てた ありえん!使えない推定値

この最尤推定の不合理な結果を避けるために、$p(\theta)$ という事前知識を使用したいところです。
もうピンと来たと思いますが、
この$p(\theta)$という事前知識は、ベイズの定理に出てくる「事前分布」です。

MAP推定は最尤推定の欠点をどう補完するか

ベイズの定理の事後分布

p(\boldsymbol{\theta}|\boldsymbol{x})=\frac{p(\boldsymbol{x}|\boldsymbol{\theta})p(\boldsymbol{\theta})}{p(\boldsymbol{x})}

MAP推定は、この事後分布を最大化するパラメーターベクトル $ \boldsymbol{\theta}=\hat{\boldsymbol{\theta}_{MAP}} $を推定します。

\begin{align}
\hat{\boldsymbol{\theta}_{MAP}} &=\text{argmax}_{\theta}[p(\boldsymbol{\theta}|\boldsymbol{x})] \\
&=\text{argmax}_{\theta}[\frac{p(\boldsymbol{x}|\boldsymbol{\theta})p(\boldsymbol{\theta})}{p(\boldsymbol{x})}]
\end{align}

$p(\boldsymbol{x}|\boldsymbol{\theta})$は、尤度関数です。
最尤推定のところで挙げた例に即すると、
「Aさんがある年にしたことθがhogeならAさんのその年の年収xが~円になる確率」です。
実観測データxが起こる確率(尤度関数)を最大化するθを、そのθそのものが起こる確率を考慮することなしに推定するのが最尤推定なのでした。

$p(\boldsymbol{\theta})$は、「事前分布」で、θそのものが起こる確率です。
先ほどの最尤推定の説明で、「最尤推定はこれを考慮していないところが欠点」と指摘したものです。
今こっちが事前に持っている想定(ベイズ的に言うなら「確信度」「信念」)にもとづく分布です。
最尤推定のところで挙げた例に即すると、
『「θ=宝くじで1億円を当てた」は、ほとんどありえないと思う。それは私が事前に持っている知識や感覚での判断による。』
『「θ=持ってた株が値上がりした」は、まあそこそこありえると思う。それは私が事前に持っている知識や感覚での判断による。』
というものです。

左辺の出力値$ p(\boldsymbol{\theta}|\boldsymbol{x}) $は、「事後分布」です。
今の例だと、
「Aさんのある年の年収がx円であった場合、その年にしたことθ各々の確率」です。
MAP推定は、その最大確率を与えるθを推定します。
つまり、
「Aさんのある年の年収がx円であった場合、その年にしたことθのうち最もありうるのはhogeです。」
です。
これこそ、今推定したいことそのものです。

MAP推定の定義式(θでargmaxを取っている上式のうちベイズの定理の部分)の分子
「 $p(x|\theta)p(\theta)$ 」
を見てみます(分母の$ p(\boldsymbol{x}) $はθと無関係なのでargmaxの観点では無視できます)。
尤度関数$p(\boldsymbol{x}|\boldsymbol{\theta})$と、事前分布$p(\boldsymbol{\theta})$を掛け算しています。
最尤推定のように尤度関数$p(\boldsymbol{x}|\boldsymbol{\theta})$を最大化するθが単純に選ばれても、次に控えている事前分布$p(\boldsymbol{\theta})$が「そのθの現実味」を加味するので、最尤推定単独のように、「確かにそのθなら尤度関数を最大化するのだろうけど、そんなθそもそもありえない」という使えない推定値を返すことが無くなります。

今の例だと、

  • <最尤推定>
    「Aさんが宝くじで1億円当てたなら、Aさんのその年の年収が1億円以上になることをダイレクトに説明できる(尤度関数を最大化するθ~ここまでが最尤推定)」
    けど、
    「そもそも宝くじで1億円当てるなんてありえない(事前分布がとても低い)。だからその年に起こったのはこれじゃないんだろう。」
    と、最尤推定値を「ありえない」と否定して、↓

  • <MAP推定>
    「Aさん手持ちの株が値上がりしたなら、Aさんのその年の年収が1億円以上になることを1億円の宝くじを当てることほどにはダイレクトには説明できない(尤度関数を最大化しないまでもそこそこ大きくするθ)」
    けど、
    1億円の宝くじを当てるよりはよっぽどありえる(事前分布は1億円の宝くじを当てるよりはずっと高い)から、その年に起こったのは実はこれなんだろう。」
    となります。

数式で表現すると、

  • 尤度関数同士の比較:
    $p(x \geq 1\text{億円} | \theta = \text{宝くじで1億円を当てた})$  >  $p(x \geq 1\text{億円} | \theta = \text{手持ちの株が値上がり})$

  • 事前分布同士の比較:
    $p(\theta=\text{宝くじで1億円を当てた})$  <<<  $p(\theta=\text{手持ちの株が値上がり})$
    「<」が3つ連なっているのは、差がとても大きい、という意味。
    音読すると「 $p(\theta=\text{宝くじで1億円を当てた})$ 超超小なり $p(\theta=\text{手持ちの株が値上がり})$ 」か。

ここで、ベイズの定理の事後分布 $p(\theta|x)$ の分子 $p(x|\theta)p(\theta)$ を、
θ=宝くじで1億円当てた
θ=手持ちの株が値上がり
の2つの間で大小比較します。
(分母の $p(x)$ は無視できるので、分子だけの比較です)
大きい方のθ、即ち $p(\theta|x)$ を最大化するθが、MAP推定値です。

$p(x \geq 1\text{億円} | \theta = \text{宝くじで1億円を当てた})$ × $p(\theta=\text{宝くじで1億円を当てた})$
<<
$p(x \geq 1\text{億円} | \theta = \text{手持ちの株が値上がり})$ × $p(\theta=\text{手持ちの株が値上がり})$
となるので(前者より後者の方がずっと大きいので)、
θ=手持ちの株が値上がり と推定
となります。

MAP推定の答え:θ=手持ちの株が値上がり  これなら納得!

まとめ

最尤推定は、尤度関数$ p(\boldsymbol{x}|\boldsymbol{\theta}) $を最大化するθを推定するが、そもそも「そのθの現実味」を考慮しないので、しばしば「ありえないθ」を推定してしまい、結果その推定値は使えなくなる。
MAP推定は、尤度関数$ p(\boldsymbol{x}|\boldsymbol{\theta}) $と、「そのθの現実味」である事前分布$p(\boldsymbol{\theta})$を掛け算したものを最大化するθを推定する。
これにより、(尤度関数を最大化するものの)そもそもありえないθを推定値とはせず、尤度関数の大きさと事前分布の大きさをともに考慮した推定値を返すことができる。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0