確率ベースの人口知能

ルールベースの人口知能は、人口知能研究の初期には主流であり、エクスパートシステムなどでは一定の成果をあげてきた。しかし、前項に述べたように結局、その限界が分かってきたため、現在ではあまり取り上げられない。

ルールベースの人口知能の限界を超える手段のひとつが、確率ベースの人口知能である。この基礎は次に示すベイズの定理である。

P(B|A) = P(A|B)P(B)/P(A)

ここで、右辺のP(A)、P(B)は普通の確率である。すなわち、Aが起きる確率、Bが起きる確率である。この確率を区別のため事前確率と呼ぶ。もうひとつの確率P(A|B)は、事後確率と呼ぶ。これは、Bという事象が起きたときにAが起きる条件が付いた確率である。

この式は一見、何のことか分からない。こう考えてほしい。P(A)、P(B)はあらかじめ分かっているとする。そこで実験を行った。最初にBが起きたことを確認した後で、Aが起きる確率を測定した。これはP(A|B)を測定したことになる。

上の式は、こうして求めた3つの確率を使ってP(B|A)を計算できると言っている。確認してほしいのは、この確率(Aが起きた後にBが起きる確率)は、まだ実験で求めていないことである。すなわち、「まだ行なっていない実験の結果を予想することができる」というのが、ベイズの定理の意味なのだ。「原因と結果が逆転した」とも言える。

これではまだ意味が取りにくいとでしょう。そこで、スパムフィルタ(迷惑メールフィルタ)の話をする。実は、ベイズの定理の応用が最も成功したのは、スパムフィルタなのである(当社はスパムフィルタの製作を行なっている)。

一時、スパムメール(迷惑メール)で多く見られたのが「バイアグラ」という単語である。しかしこの単語は、迷惑メールだけに含まれているのではない。医療関係のニュースにも含まれる。だから、「バイアグラ」が含まれるからと言って、そのメールが迷惑メールであると決定できるわけではない。そこで、「バイアグラ」と迷惑メールの関係をベイズの定理にあてはめてみる。

P(迷惑メールである|メールにバイアグラが含まれたら)
=P(バイアグラが含まれる|迷惑メールの中に)×P(迷惑メール)/P(バイアグラが含まれるメール)

当社には何十万通というスパムメールの蓄積(普通のメールも含めて)があるので、上式の3つの確率をあらかじめ計算しておくことができる。そのため左辺の確率、すなわち、新着のメールに「バイアグラ」が入っていた場合の迷惑メールである確率、を計算することができるのである。

もちろん「バイアグラ」だけではない。何十万個の単語(固有名詞も入れると単語の種類がかなり多い)全てに対して確率を計算するので、最終的な精度はかなり高くなる。

確率ベースの人口知能は、現在では多くの用途に利用されつつある。たとえばGoogleのお勧め機能(「中華料理が食べたい」とスマホに呟くと、近所の中華料理店のリストが表示される)があげられる。これは(著者の推定だが)おそらく、「中華料理」と「食べたい」の単語を取り出して、それが共存する場合に「利用者が中華料理店の場所を知りたがっている」確率を計算しているのだろう。

このように確率ベースの人口知能は現段階ではかなり成功している。しかしこれも限界がある。「何の確率をどのように計算するか」については、人間があらかじめプログラムしておかなければならないのである。

本当は、「こうしたい」という要求に対して自動的に「こうなりました」とコンピュータが答えてほしい。そのためには、次節以降で扱うニューラルネットワークに登場してもらわなければならない(諸事情のため、かなり後になります)。