この記事では、「最尤推定」「ベイズ推定」とは何か、どう違うのかをわかりやすく説明します。「最尤推定」「ベイズ推定」をきちんと理解するためには、「確率論」「統計学」という学問の本質を押さえることが必要です。「難しそう…」と思うかも知れませんが、「コイン投げ」という身近な例を使ってゆっくり説明していきますので、身構えなくて大丈夫ですよ!目次1 確率論とは?統計学とは?2 「良い」モデルとは?3 尤度とは?最尤推定とは?4 ベイズ推定とは?1 確率論とは?統計学とは?この世界には「偶然」が満ちあふれています。偶然が関わる現象を理解するための学問が「確率論」です。たとえば、ここに一枚のコインがあるとします。これを適当に投げると、表が出る時もあれば、裏が出る時もありますよね(もちろんイカサマはなしとしておきましょう)。このコインを5回投げる時、「表が5回のうち何回出るか」ということを確実に予言することはできません。しかし、「表が何回出るか」について、全く何の予想も立たないわけではありません。たとえば、「5回中5回表が出る」というのは、「5回中3回表が出る」のよりも珍しいだろうな、と思う人が多いのではないでしょうか。起こるかどうか決まっていない出来事についても、「起こりやすさの度合い」については定まっていると考えることができそうです。こうした「起こりやすさの度合い」を数値で表したものを「確率」と呼んでいます。「確実に起こる」場合は1(=100%)とし、「決して起こらない」場合は0(=0%)とします。コイン投げで考えてみましょう。多くの人は、表か裏は半々であると何となく思っていますが、実際のところは表が出やすいコインもあれば、裏が出やすいコインもあるのです。話をわかりやすくするため、目の前のコインが、表が出る確率が0.6(=60%)、裏が出る確率が0.4(=40%)であるような(かなり偏った)コインであるとしましょう。この時、コインを2回振って両方とも表が出る確率はいくらでしょうか。1回目の結果と2回目の結果が「独立」であるならば―――つまり、「1回目に表が出る」と「2回目にも表が出やすくなる(出にくくなる)」といったことがないならば―――「2回とも表が出る確率」は、0.6×0.6=0.36(=36%)であるといったことが導かれます。確率論というのは、こんな計算を行うための数学的な枠組みです。つまり、確率論とは、「前提となる仮定」(「1回投げた時に表が出る確率が0.6」であるとか「独立」であるなど)のもとで、何らかの出来事の確率(「2回とも表が出る確率」や「5回中3回表が出る確率」など)および「平均すると何回表が出るか」といった「平均の量」(「期待値」と呼ばれます)などを導き出す理論なのです。この「前提となる仮定」のことを、「仮説(仮設)」とか「モデル」とも呼びます(以降は一貫して「モデル」と呼ぶことにしましょう)。モデル自体は自由にいくらでも考えることができます。コイン投げの例でいえば、表の出る確率を0.6にしたモデルも、0.9にしたモデルも、0.1にしたモデルも考えることができるわけです。しかし、確率論を現実の問題に応用する上では、やはり「良い」モデルを使いたいところです。でも「良い」モデルとは一体何なのでしょうか?どうやったら「良い」モデルを選んだり作り出したりできるのでしょうか?こういった問題を正面から受け止めながら、偉大な先人たちが智慧を絞って創り上げてきた学問があります。それが「統計学」なのです。2 「良い」モデルとは?すこし話が難しくなってきたので、またコイン投げを考えてみましょう。「もし」表が出る確率がpならば(そして「独立」という仮定が成り立つならば)「5回中表が3回出る確率」(これはpの式で書けます)などが計算できることはすでに説明しました。問題は、pの正体がわからないということです。非常にたくさんの回数実験すれば、pの正体がある誤差範囲で見積もれることが確率論において知られていますが(「大数の法則」と言います)、5回やそこら振ったところでは、まだまだその見積りも不確実性が高いです。たとえば、5回連続表が出たからといって「100%表が出るコインだ」と言い切れるかというと、「さすがにそれは言い過ぎだ」と思う人は多いでしょう。大事なことは、限られた実験結果のみから「表が出る確率」pを「断言」することは決してできないということです。たとえばAさんはp=0.6と考え、Bさんはp=0.9と考え、Cさんはp=0.1であると考えたとしても、誰が正解なのか(あるいは正解者がいないのか)は、絶対的には言えないのです。では、「良い」モデルを選ぶことは不可能なのでしょうか?そんなことはありません。実験結果という「データ」と比較することで、どのモデルが「良い」かを考えることができるはずです。問題は、モデルの「良さ」(「悪さ」でもよいですが)を、どのように数値化できるかです。この大問題に対して、統計学が与える重要な答え(のひとつ)が、「尤度(ゆうど)」という数値を考える、ということです。3 尤度とは?最尤推定とは?「尤度(ゆうど)」とは何かを説明します。いまあなたがあるモデルを信頼しているとしましょう。その信頼がどんな場合に揺らぐかというと、おそらく「そのモデルでは滅多に起こらないはずのことが現に起こった」場合ではないでしょうか。たとえば「巨大隕石が衝突するよりも確率が小さい」と言われていた事故が起こったら、「その確率を計算するモデルがおかしいのではないか」と考えますよね?つまり、「あるモデルでは確率が小さいはずの出来事が現に起こった」なら、そのモデルの信頼性は薄いだろう、と考えられます。裏を返せば、「あるモデルにおいて、現に起こった出来事に対する確率が大きい」ならば、そのモデルは「良い」と考えても良さそうです。この、「現に起こった出来事」に対する「各モデルから理論的に計算された確率」のことを、「尤度」というのです。この「尤度」が「最も」大きいモデルを選ぶことを、「最尤推定」と呼びます。ふたたびコイン投げで考えましょう。いま、Aさんはp=0.6というモデルを、Bさんはp=0.9というモデルを、そしてCさんはp=0.1というモデルを胸に抱き、コイン投げを見つめているとします。そして、いまコインを振ったところ、「表、裏、表」という結果となったとします。この状況下で、3人のモデルの尤度は、確率論により次のように計算できることが知られています(詳細を理解する必要はありません)。Aさんのモデルの尤度:Aさんのモデルでは、「表、裏、表」となる確率は、確率論の計算により0.6×0.4×0.6=0.144となるので、Aさんのモデルの尤度は0.144です。Bさんのモデルの尤度:同様にして0.9×0.1×0.9=0.081と求められます。Cさんのモデルの尤度:同様にして0.1×0.9×0.1=0.009と求められます。以上より、この三人のモデルの中では、Aさんのものが最も尤度が高いと言えます。もちろん他にも無数のモデルを考えることが可能です。pの値を決めるごとにモデルが決まるからです。それらの中で尤度が最も大きいのはどんな時か知りたくなりますよね。これについては、数学的な計算から(高校で習う「微分」などを使いますが)求めることができて、今の場合はp=2/3=0.6666...にしたモデルが最も尤度の高いモデルです。つまり、最尤推定によれば、このモデルが選ばれることになります。まとめると、最尤推定とは「最も尤度が高くなるモデルを選ぶ」方法です。尤度をモデルの「良さ」と考え、そのチャンピオンを選ぶという発想ですね。最尤推定の感覚がつかめてきましたか?4 ベイズ推定とは?さあ、いよいよ「ベイズ推定」です。最尤推定では、尤度が最も高いものを選び、他のモデルをいわば「捨てて」いました。これは、「未知だが決まっているはずの答えを探る」という発想に近く、科学者の多くにとって馴染みやすい考え方です。しかし、「チャンピオンだけを選ぶより、さまざまな立場をバランスよく混ぜ合わせて考えたほうがより良いモデルが作れるのでは?」と思った人もいるかもしれません。たとえばあなたが会社を経営していて、社員のAさん、Bさん、Cさんが別の意見を言っている時、Aさんの意見だけを聞いて他を切り捨てるというのはちょっと危ない気もしますよね。別に「平等」に重んじる必要はないけれど、それぞれ「一理ある」はずなので、上手に混ぜ合わせながら考えていくのが穏当と言えそうです。実は、これこそが「ベイズ推定」の発想なのです。ベイズ推定というのは、さまざまなモデルがある時、最も尤度が高いものだけを選ぶのではなく、モデルたちを混ぜ合わせて考え、データが得られるごとにその「混ぜ合わせ方」を更新していく方法です。コイン投げで言えば、Aさん・Bさん・Cさんの予測を「重みづけ」して混ぜ合わせることにするのです。先ほどの例で説明してみましょう。今までの経験から、社長であるあなたは、Aさん・Bさん・Cさんの意見を0.3(=30%):0,5(=50%):0.2(=20%)の重みで聞こうと決めているとします。このような、あらかじめ設定されるモデルの重みづけのことを「事前分布」と呼んでいます(この設定は、各自が自分の経験なり「カン」なりで決めてOKです)。ここで新たなデータとして「表、裏、表」という結果を知った時に、Aさんをいきなり100%信じるというのではなく、「尤度が大きいものは以前よりは少し重く、小さいものは少し軽く」信じるようにすれば、経験が反映できるでしょう。具体的には、「事前分布での重みに尤度を掛け合わせたもの」を新しい重みにすると良いことが知られています(細かいことをいうと、ちょうど足して1になるように調整しますが)。この「新しい重みづけ」を、「事後分布」と呼びます(ちなみに、この「事後分布」の計算方法の原型を考えたとされる人物の名前がトーマス・ベイズなので、ベイズ推定と呼びます)。たとえば先ほどの例であれば、【事前分布】Aさんのモデルの重み:Bさんのモデルの重み:Cさんのモデルの重み=0.3:0.5:0.2【事後分布】Aさんのモデルの重み:Bさんのモデルの重み:Cさんのモデルの重み=0.3×0.144:0.5×0.081:0.2×0.009=0.0432:0.0405:0.0018(辺々足し合わせると1ではなく0.0855)=0.0432//0.0855:0.0405/0.0855:0.0018/0.0855 (足し合わせると1になるように調整)≒0.505:0.474:0.021 というわけで、「表、裏、表」という結果を通じてモデルの重みがAさん:30%→約50.5%、Bさん:50%→約47.4%、Cさん:20%→約2.1%のように、事前分布から事後分布へと更新されるわけです。このように更新を続けていくことにすれば、経験に応じてより適切な重みづけに近づくであろうことが期待され、それぞれのモデルから計算される値にモデルの重みを掛けて足し合わせることにより、「より良い」モデルを構築できると考えられます。これが「ベイズ推定」の考え方です。このようなベイズ推定の考え方は、「人間が経験を踏まえて考え方を調整していく」やり方にも近く、相手にしている現象の確率自体が変動するような状況にも対応しやすいという長所があります。一方で、計算が最尤推定より煩雑になりがちであり、「事前分布」の選び方で結果が変わってくる(したがって「これが正解だ!」と誰もが納得できるとは限らない)ことなどが短所と考えられてきました。しかし、計算の煩雑さはコンピュータの発達により乗り越えられるようになり、一定の条件下では「事前分布の選び方が違っても更新していくうちに問題にならなくなっていく」ことなども分かってきたため、多くの分野で活用されるようになっています。