さんごー日記。

映画や本やゲームの感想をゆるく記録したり、プログラミングの勉強をゆるく記録するゆるい日記です。

数学に不慣れな私が「ベイズの定理」を図解して自分なりにまとめます。

「入門 機械学習」という本を読んでいて、Eメールのスパムフィルタの原理について学びましたが、スパムフィルタに使われている「ベイズの定理」や「ナイーブベイズ分類器」に関してイマイチ理解できずにいました。

未だに完璧に理解できているかは怪しいですが、自分なりにまとめる事で理解を深めていきたいと思います。

 

確率や統計に関して前提知識の乏しい私がWikipediaや他の人のブログを見たところで、なかなかすぐには理解できなかったので、

自分のように数学や数式に詳しくない人が見ても「なんとなーくイメージがつかめる」事を目指してまとめてみようと思います。

また、私の理解が不十分なため間違ったところもあるかもしれません。その時はツイッターとかで教えてもらうと嬉しいです。

 

 

ベイズの定理とは何か

ベイズの定理のざっくりとした説明

ベイズの定理というのは、簡単に言うと「ある事象が起こる確率を導き出すための方法」です。

 

この定理の利用シーンとして個人的によく目にするのは「Eメールの迷惑メールフィルタ」です。

迷惑メールフィルタの場合は、メールに含まれる単語の数から、そのメールが迷惑メールである確率を求めているわけです。

正確には確率ではなく、迷惑メールかどうかの「分類」をしていて、それが「ナイーブベイズ分類器」と呼ばれる考え方を利用しています。

 

あってるかな?たぶんあってる。と思う。

 

ベイズの定理の式を確認する

まずは、よく見かけるベイズの定理の式を見てみます。

以下はWikipediaに書いてある式。 

式1: P(B|A) = \displaystyle \frac{P(A|B)P(B)}{P(A)}

または以下のような式で説明している教科書もあります。

式2: P(X)P(Y|X) = P(Y)P(X|Y)

 

数学に疎い私はこれを見てもサッパリ理解できません。じっくりひも解いていきます。

 

この式は高校数学を理解していれば分かるらしいです。というかベイズの定理って高校数学でやる内容なんだっけ。全く記憶に無いや。

高校で勉強しなかった事を今更悔やんでも仕方ないので、アホな自分を受け入れてなんとか理解するように頭を使います。

 

まず、上記の2つの式はよく見ると同じ式です。

よく見なくても同じ式なのですが、数式を普段見ない者としては一瞬考えないといけないのです。そのぐらい普段は数式に馴染みが無いのです。

これから慣れていくので許してほしい。

 

私と同レベルの人の為にいちおう説明すると、ベイズの定理の式は4つの部分から成り立っています。

式1でいうと、「P(B|A)」「P(A|B)」「P(A)」「P(B)」の4つですね。

(数式に慣れていないと全部同じに見えてしまう…というのは自分だけでしょうか。)

 

これらの「A」と「B」は単なる記号なので、「X」でも「Y」でもなんでもいいです。

「P」というのはここでは「確率(probability)」の意味で、「P(A)」は「Aの確率」という意味です。

 

くどいかもしれませんが、もう一度式を見てみます。

式1: P(B|A) = \displaystyle \frac{P(A|B)P(B)}{P(A)}

これのAとBを、XとYに変えても同じ意味なので、こうも書けます。

式1’: P(Y|X) = \displaystyle \frac{P(X|Y)P(Y)}{P(X)}

で、式1’の両辺にP(X)を掛けたものが式2になるわけですね。

式2: P(X)P(Y|X) = P(Y)P(X|Y)

 

ベイズの定理とは、 「ある事象の確率を求める為の方法」です。

求めたい事象が「P(B|A)」なのであれば、式1のような形になります。

「P(A)」を求めたいのであれば、上記の式を変形すれば良いわけです。

「3つ事象の確率さえ分かれば、残り一つ事象の確率も分かる」…というのがベイズの定理の考え方です。

 

たぶんそういう事です。

 

「条件付き確率」という考え方

ベイズの定理の式をしつこくもう一度確認します。

式1: P(B|A) = \displaystyle \frac{P(A|B)P(B)}{P(A)}

 

この式の「P(A)」という部分は、「Aの確率」という意味です。

 

では「P(A|B)」とは何か。

これは「Bが起こった時のAの確率」という意味で、こういうのを「条件付き確率」と呼びます。

Wikipedeaの説明はこちら → 条件付き確率 - Wikipedia

 

ベイズの定理の式に使われる4つの項は、それぞれ以下の意味を持っているという事になります。

  • P(A) → Aの確率
  • P(B) → Bの確率
  • P(A|B) → Bが起こった時のAの確率
  • P(B|A) → Aが起こった時のBの確率

 

Eメールのスパムフィルタの例で考えると、「P(A)」が「迷惑メールである確率」で、「P(B)」が「メールに<HTML>という文字が含まれる確率」だとします。

さらに、事前に手動で迷惑メールを振り分けたデータを見て、「P(B|A)」つまり「迷惑メールに<HTML>という文字が含まれる確率」 が分かったとします。 

こうやっていくと、「P(A|B)」つまり「メールに<HTML>という文字が含まれている時に、そのメールが迷惑メールである確率」が分かるような気がしてきます。

スパムフィルタのアルゴリズムは実際はちょっと違う気がしますが、そういうイメージです。

このようり利用されるのが、ベイズの定理なのです。たぶん…

 

図解、ベイズの定理

ベイズの定理の説明でよく使われる図があります。

それが以下のような図です。

f:id:thirtyfive:20170712152604p:plain

 

「P(A)」P(B)」P(A|B)」が分かれば、「P(B|A)」が分かるというのがベイズの定理ですが、上記の図だと「P(A|B)もP(B|A)も同じじゃん」ってなっちゃいませんか?

私はなってしまいました。

これは、そこそこ恥ずかしいかもしれない。

匿名でブログ書いてて良かったと思う瞬間です。

この記事は、そんな私と同じような勘違いをしてしまう人向けの記事です。

 

私のような数学や確率に疎い人間が勘違いをしてしまう原因は、「条件付き確率」というものをこの図では上手く表せていないからだと思っています。

(きちんと理解していれば図なんてなくても理解できるので、問題無いんですが。)

 

というわけで自分なりのベイズの定理の図解をしていきます。

まず「P(A)」「P(B)」は上記の図のイメージで説明できるので問題ないと考えます。

ここに「P(A)」から見た「P(B|A)」の図解を加えます。

P(B|A)」の意味は、「Aが起こったうえでのBが起こる確率」という事を思い出しておきます。

 

f:id:thirtyfive:20170712164938p:plain

 

P(B|A)P(A)」というのは、「全体から見て、P(A)が起こったうえでP(B|A)が起こる確率」という意味になっている事を表しています。

ちょっとややこしいのですが、「P(A)から見た確率」なのか、「全体から見た確率」なのかという点を区別する必要があります。

 

さらに、「P(B)」側から見た図も加えます。

 

f:id:thirtyfive:20170712161613p:plain

いかがでしょうか。じゃっかん図がゴチャゴチャしてしまった感じもするのですが、これでベイズの定理に登場するP(B|A)」「P(A|B)」「P(A)」「P(B)」の関係を表す事ができました。

さらに「P(A|B)P(B)」と「P(B|A)P(B)」が同じものだという事も分かると思います。これらは「全体から見て、AとBが同時に起こる確率」を意味しています。

 

つまり、最初に書いたベイズの定理の「式2」の意味そのままです。

式2: P(X)P(Y|X) = P(Y)P(X|Y)

 

「全体から見た確率」を、「P(A)」と「P(B)」それぞれの側から見て表しているわけです。

以上が私なりのベイズの定理の図解です。

どうでしょう。これで分かりやすい説明になっていれば幸いです。 

 

まとめ

ベイズの定理の式を見れば、「4つのうち3つの確率が分かれば、残りの一つが分かる」という意味は理解できると思います。

そして、それぞれの関係を頭の中にイメージしておくと、より本質的な理解が進むのではないかと思います。

今回は私のように数学や数式な不慣れな人が、「ベイズの定理」をできるだけ早くイメージできるように図を考えたつもりです。

なにより、自分で図を考える事で、私自身の理解が進んだと思います。

 

「まだよくわからん」という場合は、自分であれこれ図を書いてみたり、身の回りの「確率」を例にして数字を当てはめて考えてみると良いかもしれません。

 

私も良い例が思いついたら追記したいと思います。

 

それでは以上です。

またよろしくお願いいたします。

 

 

ベイズの定理に関して、私は以下の本を参考にしました。

プログラミングが分かる人であれば、ナイーブベイズ分類器の考え方を応用したスパムフィルタのコードも掲載されているので、より理解の助けになると思います。(ちなみにRのコードで書かれています。)

入門 機械学習

入門 機械学習

  • 作者: Drew Conway,John Myles White,萩原正人,奥野陽,水野貴明,木下哲也
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2012/12/22
  • メディア: 大型本
  • 購入: 2人 クリック: 41回
  • この商品を含むブログ (11件) を見る