Hyper-Positive-Diary

TWICE/遊戯王/バイオインフォ/読書記録/アニメの感想等を走り書きします。

【統計学】ベイズ推論を理解しよう! 〜ベイズの定理からMCMCまで〜

導入

近年、計算資源の充実によって、ベイズ推論が台頭してきました。 現在ブーム真っ只中である機械学習にも、ベイズの枠組みが利用されているケースが多く存在します。

しかし、実際の社会では、 ベイズの概念を十分に理解しないのに、 現場でベイズを用いようとしている例が少なくないような気がしています。

ベイズを用いる以上は、難しい積分の計算はできなくても、 「ベイズで何を推論できるの?」、「ベイズ推論の強み/弱みは?」 といった質問には、答えられる必要があるのではないでしょうか。

本記事は、ベイズを学びたい・使いたいと考えている方たちが、 このような疑問に答えられるよう執筆いたしました。 至らない箇所がありましたら、コメントいただけますと幸いです。

ベイズ推論の理論的枠組み

まず、ベイズの理論的枠組みについて考えていきたいと思います。

ベイズ の定理

ベイズ推論の全ては、条件付き確率の定理から始まります。


今、二つの連続な確率変数、X、Yがあるとします。 この時、(同時確率) = (条件付確率)\times(周辺確率) から、 次の式が成り立ちます。 
 \text{P}(Y,X)  =   \text{P}(Y|X)  \text{P}(X) =   \text{P}(X|Y) \text{P}(Y)

特に \text{P}(X) >  0の時、 \text{P}(Y | X)について解くと、


\displaystyle
\text{P}(Y|X) = \frac{\text{P}(Y) \text{P}(X|Y) }{\text{P}(X)}

となり、ベイズ の定理が導かれます。

  \text{P}(Y|X) すなわち、  Xを観測した後の Yについての確率を、 事後確率と呼びます。 また、事後確率に対し、  Xに条件づけられていない \text{P}(Y)を、 事前確率と呼びます。 「事前」に想定していた確率に、  \text{P}(X|Y) をかけて、 \text{P}(X) でわったものが、 「事後」、すなわち Xの観測を終えた後の確率というわけです。 今、X,Yは確率変数ですので、これらはの確率は、確率分布とみなすことができます。

さて。ここで、  Xを観測することになるデータ、  Yを、何らかのパラメータだと想定しましょう。 この時、 \text{P}(X|Y)  Yの関数とみなしたものを尤度と呼びます。 これは、データ Xがどれだけパラメータ Y を支持するかを表す指標になります。

頻度主義との対比

頻度主義ではこの尤度を最大化させるような Yを求めることが一つの目標になります。 すなわち、観測されたデータから考えて最も尤(もっと)もらしい  Yを見つけようとするわけです。

一方、ベイズの枠組みにおいては、「尤度の最大化」ではなく、 事後分布そのものに興味があります。 事後分布が最大になる場所を求めることも行われますが、 パラメータに関する情報を、あいまいさを含んだ「確率分布」 で表現することこそが、ベイズ の本質でしょう。

ベイズの定理の式を少し変形してみます。 分母は、周辺確率の定義から、


p(\boldsymbol{X}) = \int_0^{1} p(\boldsymbol{X} | \theta)p(Y) dY

となるので、ベイズの定理の式は、

 \displaystyle
p(Y| \boldsymbol{X} ) =
\frac{ p(Y) p(\boldsymbol{X} | Y) }
{ \int_{0}^{1} p(\boldsymbol{X} | Y )p(Y) dY }

と変形できます。 この式から、 分子の p(\boldsymbol{X} | \theta)p(Y) を求めれば、事後分布が求まることがわかります。

ですので、ベイズ の枠組みでは、 
p(Y |X ) \propto p(Y) p(X | Y)
として、分子の部分に注目して事後分布の形式を考えます。

コイン投げでわかるベイズ の有用性

ここで、ベイズ推論がどんな時に有用かを示すために、 コイン投げによる思考実験を行ってみましょう。 コインは、表と裏のでる確率が等しいとは限らないとします。 私たちは、このコインを数回投げ、表が出る確率を当てるゲームをします。

頻度主義の場合

さて、このコインを3回投げたとき、次のような結果だったとしましょう。

出た側 回数
2
1

この時、表が出る確率  \theta は、どのように推論されるのでしょうか。 (表の回数)/(投げた合計回数)を、推定値として思い浮かべる人も多いでしょう。


\hat{\theta} =
2/(1+2) = 2/3

実はこれは、ベルヌーイ試行の最尤推定を行っていることと同じなのです。 最尤推定は、頻度主義の枠組みですから、 (表の回数)/(投げた合計回数)というのは、頻度主義での推定結果となります。

ペルヌーイ試行における最尤推定

※以下は、ベルヌーイ試行の最尤推定、と言われてピンとこない人むけです。

今、Xが、コインが表の時に「1」、 裏の時に「0」になる確率変数だとします。 すなわち、

 p(X=1) = \theta

 p(X=0) = 1- \theta

となります。

また、 i 回目に観測した Xを、 X_i と書きます。  X_1, X_2, X_3を並べたベクトルを、  \boldsymbol{X} と書きます。すなわち、  \boldsymbol{X} = (X_1, X_2, X_3)^{T}です。

今回のデータでは、 表が2回、裏が1回です。 試行が独立ならば、尤度Lは各確率の積で表せるので、

 L(\theta) = p(\boldsymbol{X} | \theta) = \theta^{2} (1 - \theta)

となります。 3次関数だと思って微分して増減を調べると、 \theta =2/3 で、Lが最大でとなることがわかります。 全体の試行回数をN、表の回数をkなどの文字でおいて、 同様の操作をすれば、最尤推定量が、 (表の回数)/(全体の回数)であることがわかります  \Box


それでは、次のような結果だった時はどうなるでしょうか。

出た側 回数
3
0

同様に頻度主義のやり方に則ると、表が出る確率の推定値は、

 \hat{\theta} = 3/3 = 1

となります。

いくらイカサマのコインだとしても、 確率1で表、すなわち「絶対表が出る」なんてことはないでしょう。 そう考えると、頻度主義によって導かれたこの結論は、 少々やりすぎているように感じられます。

もちろん、この結果は、たまたま表が連続して3回出るという 偶然の賜物ですが、逆にいうと、 「偶然」、間違った結果を生じる可能性を孕んでいるわけです。

ベイズの場合

一方、ベイズ推論では、少々違ったアプローチを取ります。 「大抵のコインでは、コインの裏表は、等確率で出る」わけで、 私たちはそのことを、あらかじめ事前に知っています。 事前の知識からすると、いくらイカサマコインでも、 「コインが三回表」というのは、考えにくい現象です。

ベイズ 推論では、この「事前の知識」と、「実際のデータ」の二つを利用します。 そしてこの事前の知識を、 今回はベータ分布に落とし込んで表現します (なぜベータ分布かについては、後でまた記事を書く予定です)。

ベータ分布とは、

 \displaystyle
p(\theta | a, b) =
\frac{ \theta^{a-1} (1 - \theta)^{b-1} }{\text{B}(a, b)}

と表されます。 ただし、ここでのB(a,b)はベータ関数を表します。

それでは、事前の知識を、 どのようにこの分布に落とし込めば良いでしょうか。 事前の知識は、「大抵のコインでは、コインの裏表は、等確率で出る」 といったものでした。 ですので、このベータ分布の平均が1/2になるようであれば、 ある程度納得感が生まれます。 そこで、a,bを以下のように設定します。

 \displaystyle
p(\theta | a = 2 ,  b = 2)=
\frac{\theta (1-\theta) }{ \text{B}(2, 2) }
= 6 \theta (1 - \theta)

分母は定数なので、この分布は、 \theta = 1/2 で最大値をとります。また、左右の対称性から、 この分布の平均も1/2となります。

f:id:slmnphmet1-2:20200501152849p:plain

a,bが2以外の時のグラフは、wikipediaで確認できます。 ベータ分布 - Wikipedia

さて、ベイズ の目的は、先ほども申し上げた通り、 事後分布を求めることです。

 \thetaの事後分布 p(\theta | X)は、 事前分布である \beta (\theta | a = 2, b = 2) によって、 どのように表現されるでしょうか。事後分布は事前分布と尤度の積に比例するので、


p(\theta | \boldsymbol{X}, a=2, b=2) \propto
p(\theta| a = 2, b=2) p(\boldsymbol{X} | \theta)
= \theta^{3}  6 \theta(1 - \theta)

よって、

 p(\theta | \boldsymbol{X}, a=2, b=2) \propto 6 \theta^{4} (1 - \theta)

となります。

微分して最大値を与える  \theta を求めるとわかりますが、 この事後分布は \hat{\theta} = 4/5で最大となります。

すなわち、「コインが全て表」という珍しい事象が起きても、 「事前の知識」が反映されます。 その結果、コインの表の確率が「1」という主張よりも、 納得感のある推論が得られました。

ただし、これだけでは事後分布自体を求めていることにはなりません。 ベイズ の定理の分母を求めてみましょう。

 \displaystyle
p(\boldsymbol{X}) = \int_{0}^{1}
6 \theta^{4} (1 - \theta) d\theta =  \frac{1}{5}

よって、事後分布は、

 p(\theta | \boldsymbol{X}, a=2, b=2) =
\frac{6 \theta^{4} (1 - \theta) }{1/5} = 30\theta^{4} (1 - \theta)

f:id:slmnphmet1-2:20200501154947p:plain

ベイズ推論の強みと弱み

ベイズ推論では、 「データ」と「事前の信念」の二つを加味した事後確率を考えますが、 この枠組みこそが、ベイズ推論の強みでもあり弱みであります。

強み

強みの一つとしては、先ほどのコイン投げの例での結論が挙げられます。 事前の知識を用いることで、 量が少なく、極端なデータが得られた場合に、 極端な推論を回避することができるのです。

次に不確実性の評価です。 ベイズ推論では、パラメータを確率変数ととらえ、 分布を考えているので、 頻度主義の信頼区間よりも、 より直感的にパラメータの 不確実性を捉えることができます。

また、もう一つの強みとしては、逐次学習が挙げられます。 以前行われた推論の結果を、事前の知識として事前分布に組み込むことで、 データを観測するたびに事後分布が更新できます。

弱み

このようなベイズ推論の強みに対し、頻度主義の反論はシビアです。 というのは、「事前の信念」を数学に反映することこそが、 大いなる欠陥だと主張する科学者もいます。 現に、極端におかしな事前分布を用いると、 事後分布が全く的外れなものとなってしまう可能性もあります。

人間の頭で考えるのではなく、数学を用いて論理的に推論を行おう、 というのが、数理統計の出発点だとしたら、ベイズ の事前分布という考え方は、 この出発点を大きく逸脱するものです。

さらにそれと同等かそれ以上に深刻な弱点として、 事後分布を求める際の「解析的な難しさ」が挙げられます。

事前分布の設定によっては、 事後分布の形が複雑になりすぎてしまう のです。複雑すぎてパラメータがどのような値を取りやすいのか確認できなければ、 新しい入力に対して予測を行うこともできません。

ベイズの枠組は、この問題を抱えているがために、 長い間日の目を浴びてきませんでした。 しかし、この弱点を解決したのが、 CPUの高性能化に伴って実行可能になってきた、MCMCなのです (MCMCについても、別の記事を書く予定です)。

まとめ

以下が、この記事の大雑把なまとめです。

・ベイズ の定理は条件付確率の定理から導かれる。
・ベイズ推論では、事前の情報と観測データから推論を行う。
・積分が難しくて事後分布が求められないこともある
・事後分布を求められない時、MCMCのような手法を用いる

次回は、事後分布が解析的に求まらない例と、MCMCによるサンプリングがどのようにして事後分布を近似するかを解説します。