5分でスッキリ理解するベイズ推定

ベイズ推定を学ぶモチベーション

ベイズ推定は、Wikipediaに以下のように説明されています。

ベイズ推定(ベイズすいてい、英: Bayesian inference)とは、ベイズ確率の考え方に基づき、観測事象(観測された事実)から、推定したい事柄(それの起因である原因事象)を、確率的な意味で推論することを指す。

マイクロソフトビルゲイツは自社が競争上優位にあるのはベイズ統計によると宣言したり、グーグルでは検索エンジンの自動翻訳システムでベイズ統計の技術を活かしていることが知られています。

ベイズ推定の強みは、 1. 「データが少なくても推測でき、データが多くなるほど正確になる」という性質 2. 「入ってくる情報に瞬時に反応して、自動的に推測をアップデートする」という学習機能 にあります。

これらの強みを頭に置きながら、本題の「ベイズ推定とは」を見ていきます。

ベイズ推定を図で理解する

洋服屋さんの店員を考えます。この店員さんは常に「このお客さんは買うつもりなのか、それとも買うつもりはさらさらなく商品を見ているだけなのか」と考えています。前者のお客さんには積極的に話しかけに行って購買につなげたい、後者はそもそも買わないし声をかけても煩わしく思われるだけなので話しかけないという行動につなげたいからです。したがって、お客さんの行動から、お客さんのタイプを見極めることが大切になります。

まず、推測のために「買う人(A)」「買わない人(B)」の2タイプに分けて、その割合(確率)を割り振ることから始めます。お客さん全体を見たときに、買う人はだいたい0.2、買わない人は0.8だろうという感じにです。これを事前確率と呼びます。

Screen Shot 2018-06-01 at 19.09.03.png

次に、お客さんが店員に「声をかける」という行動に関して確率を割り振ります。買う人なら9割が声をかけるだろう、買わないのに声をかける人は3割だろうという感じです。

Screen Shot 2018-06-01 at 19.09.08.png

次に、店員はお客さんに声をかけられたとしましょう。店員は、お客さんの行動を1つ観察したことになります。これは追加的な情報です。「声かけをしない」という可能性が消えて、確率が変化します。

Screen Shot 2018-06-01 at 19.09.12.png

最後に、そのお客さんが買う人であるという確率を求めます。この、「声かけしてきたお客さんが買う確率」を事後確率と呼びます。

Screen Shot 2018-06-01 at 19.09.20.png

$0.18 : 0.24 = 3 : 4$です。つまりそのお客さんが買う確率は$3/7$となります。

声かけをしてきたという追加情報により、そのお客さんが買う人である確率は、0.2から0.43と約2倍に高まりました。これをベイズ更新と言います。

以上より、ベイズ推定とは「事前確率を行動の観察(情報)によって事後確率へとベイズ更新すること」と定義することができます。

ベイズ推定を式で理解する

$P(X)$を$X$という事象が起こる確率と定義します。 お客さんが買う人である確率は、$P(A) = 0.2$、買わない人である確率は、$P(B) = 0.8$です。

次に、本題である「声かけをしてきたお客さんが買う確率(Aである確率)」を考えます。これを$P(A|声)$と表します。すると、以下のような定式化ができます。

P(A|声) = \frac{P(声|A)P(A)}{P(声)} = \frac{P(声|A)P(A)}{P(声|A)P(A) + P(声|B)P(B)}

これも式だけ見ていても理解できないので、先ほどの図を見て見ましょう。

Screen Shot 2018-06-04 at 17.59.32.png

すると、

P(A|声) = \frac{P(声|A)P(A)}{P(声|A)P(A) + P(声|B)P(B)} = \frac{0.18}{0.18 + 0.24} = 0.428...

と、「声かけをしてきたお客さんが買う確率(Aである確率)」すなわち$P(A|声)$は、$0.428...$と求まります。

この式を一般化すると、「Yという事象が起こった時にXという事象が起こる条件付き確率」は、

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

で表され、$P(X)$を事前確率、$P(X|Y)$を事後確率もしくは条件付き確率、$P(Y|X)$を尤度といいます。

ベイズ推定の応用例

ベイズ推定の強みは、 1. 「データが少なくても推測でき、データが多くなるほど正確になる」という性質 2. 「入ってくる情報に瞬時に反応して、自動的に推測をアップデートする」という学習機能 にあります。

と一番最初に述べました。ベイズ推定は、これらの強みを活かせる場面で積極的に使われています。例えば、

  • 迷惑メールフィルタ
  • 記事のカテゴリ分類

などです。本記事ですっきり理解したベイズ推定の方法は、上の場面ではどのように応用されているのか考えてみるのが良いのではないでしょうか。