コラム

AIやディープラーニングのアルゴリズム解剖「ベイズ統計」

筆者:関口 大五郎

ビッグデータ
クラウド
ロボティクス
JTPだより

2016.12.21


AI、機械学習、ディープラーニングが最近注目を浴びていることが分かる人はたくさんいますが、それがどういう仕組みなのかを理解している人はそんなにいません。今回はその仕組みの基本的な考え方となるベイズ統計について簡単に学んで行きましょう。


今回考えたいお題「どうやってコンピュータは『感覚的な判断』をしているの?」


クレジットカードの不正利用のチェック、ローンの審査、スパムメールの判定など、ビッグデータを分析してある予測をする事例 がかなり増えてきました。昨今は 機械学習ディープラーニング、さらには AI  というキーワードが注目されていますよね。

皆さんは他人を見て、「この人は仕事ができそうだな」とか「こいつは胡散臭いやつだから気を付けよう」などと思うことはよくありますよね。このような 感覚的な判断をコンピュータにさせる仕組み ってどうなっているのでしょう?

この基礎となる考え方が 「ベイズ統計」 です。ベイズ統計は、データの大小に関わらず、その時点で分かる情報 をもとに 「もっともらしさ」を計算 します。データの量が多いほどその精度が向上します。

ベイズという数学者とベイズの定理


ベイズ統計の基のなる数学の定理が 「ベイズの定理」 です。「ベイズの定理」は300年前の牧師であり数学者でもある トーマス・ベイズ によって証明されました。ベイズの定理が発表されたのはベイズの死後、しかも「ベイズ統計」が脚光を浴びたのはごく最近のことなのです。

その ベイズの定理 とは、以下の通りです。
P (B | A) = P (A | B) * P (B) / P (A)

P (A) とは「Aが起こる確率」、P (A | B) 「Bが起こるという前提でAが起こる確率」 です。

つまり、ベイズの定理を文章にすれば 「Aが起こるという前提でBが起こる確率は、Bが起こるという前提でAが起こる確率にBが起こる確率を掛けて、Aが起こる確率で割った値に等しい」 となります。なんだかわかりにくいですね。やっぱりこういう時は数式で考えましょう。

トーマス・ベイズ

条件付き確率


ここで、出てきた 「Aが起こるという前提でBが起こる確率」 「条件付き確率」 と言います。

分かりやすい例を考えましょう。
例えば、Aを「髪の長い人」Bを「女性」 という集まりで考えると、P (A) は「髪の長い人の確率」となりますが、言い換えて 「全体のうち、髪の長い人の割合」 と考えましょう。同様に P (B)「全体のうち女性の割合」 となります。そして、P (A | B)「女性全体で髪の長い人の割合」 となります。

もう一回ベイズの定理


さて、ここでベイズの定理をもう一度考えてみましょう。今の例で考えれば P (A | B) は 「髪の長い人全体で女性の割合」 となります。

例えば、「私が先日髪の長い人と一緒にいた」という事実があったとします。その人が男性なのか、女性なのかをベイズの定理を使って判定ができるのです。つまり P (女性 | 長髪) P (男性 | 長髪) をそれぞれ求めてどちらが大きい値かで判定をすればよいのです。

ベイズの定理に当てはめると、下記のようになります。

P (女性 | 長髪) = P (長髪 | 女性) * P (女性) / P (長髪)
P (男性 | 長髪) = P (長髪 | 男性) * P (男性) / P (長髪)

さあ、計算してみましょう!


ここで、データが必要となります。例えば100人のデータがあったとして「男性か女性か」「髪が長いかそうでないか」を数えたものがあったとします。それより、女性が50人、男性が50人で女性のうち40人、男性のうち10人が髪が長かったとします。つまり

P (女性) = 50 / 100 = 0.5
P (男性) = 50 / 100 = 0.5
P (長髪 | 女性) = 40 / 50 = 0.8
P (長髪 | 男性) = 10 / 50 = 0.2
P (長髪) = (40 + 10 ) / 100 = 0.5

となります。さあ、上のベイズの定理の式に代入してみましょう。

P (女性 | 長髪) = P (長髪 | 女性) * P (女性) / P (長髪) = 0.8 * 0.5 / 0.5 = 0.8
P (男性 | 長髪) = P (長髪 | 男性) * P (男性) / P (長髪) = 0.2 * 0.5 / 0.5 = 0.2

定理の式より、P (女性 | 長髪) のほうが P (男性 | 長髪) よりも大きな値 となり 「髪の長い人と一緒にいたらその人はおそらく女性でしょう」と判定 できます。
今回は100人のデータを考えましたが、データ数や判定する材料をもっと増やせば判定の精度はもっと向上 します。

P (女性 | 長髪) と、P (長髪 | 女性) は何が違うの?と思われた方もいらっしゃるかもしれません。
P (女性 | 長髪) は、長髪の人のうち女性の割合、つまり 「長髪という条件で女性である確率」です。P (長髪 | 女性) は 女性の中で長髪の人の割合、つまり 「女性という条件で長髪である確率」 です。
今回は選択肢的に、「長髪 or 短髪」、「女性 or 男性」と二択で考えがちになるかと思いますが、両者が必ず一致するとは限りません。それを、ベイズの定理を使うと、この2つを結びつけることができるのです。

実際のケース


それでは、実際のケースで考えてみましょう。
ある人の学歴、年収、性別から その人がローンを完済できるか否か をベイズの定理を使って判定してみます。ここで図のような過去のデータがあってこれを利用します。ある人は大卒、年収500万未満、男性であることが分かったとします。 

求める式は
P (完済できた | 大卒、年収500万以上、男性)
P (完済できなかった | 大卒、年収500万以上、男性)

以上の2つです。ベイズの定理より

P (完済できた | 大卒、年収500万以上、男性)
= P(大卒、年収500万以上、男性|完済できた) / P(大卒、年収500万以上、男性)
= P(大卒|完済できた) * P(年収500万以上|完済できた) * P(男性|完済できた) / P(大卒、年収500万以上、男性)
= 0.25 / 0.6 * 0.3 / 0.6 * 0.55 / 0.6 / P(大卒、年収500万以上、男性)
= 0.1909 / P (大卒、年収500万以上、男性)

同様に
P (完済できなかった | 大卒、年収500万以上、男性)
= P(大卒、年収500万以上、男性|完済できなかった) / P(大卒、年収500万以上、男性)
= P(大卒|完済できなかった) * P(年収500万以上|完済できなかった) * P(男性|完済できなかった) / P(大卒、年収500万以上、男性)
= 0.15 / 0.4 * 0.2 / 0.4 * 0.25 / 0.4 /  P(大卒、年収500万以上、男性)
= 0.1171 / P (大卒、年収500万以上、男性)

以上のように 完済できる確率 のほうが 完済できない確率 より大きな値 となり、「この人は完済できるでしょう」と予測 できます。
ちなみに分母の P (大卒、年収500万以上、男性) は同じなので計算を省略しました。

まとめ


今回は簡単な例を交えてお話しました。実際のところは 分析用のソフトウェア がデータを受け取れば上のような計算を実行 してくれます。コンピュータがより多くのデータを読み取って多くのパターンを認識すれば自ら学習し予測もできるようになるわけです。

他にも分析のアルゴリズムはいろいろありますのでまたの機会にご紹介いたします。

関連URL

筆者紹介

関口 大五郎

プロフィール

関口 大五郎(Daigorou Sekiguchi)

ITトレーナー歴19年、ビッグデータ、データサイエンス、業務アプリケーション系
のトレーニングを最近は担当することが多いですがプログラミング、ネットワーク、システム管理など基本的に何でもできます。

趣味 ライブ鑑賞 ポエム フィットネス 旅行 B級グルメ など


Page Topへ