<私たちの考え方をマネたAI#2>
「エキスパートシステム」簡単でしょ?
っていうか、こんなんもAIなの?
っていう疑問さえ浮かでしょ。
勘のいい人なら、これは非常に間違いが起こりにくい、
しつけのしやすいモデルであることに
お気づきだと思います。
それが証拠に、
医学など間違いがあってはならぬ世界で
実用化されている実力派AIであります。
ただ、おもちゃとしては、まじめすぎておもしろくない、
ってのが、ぼく個人の感想です。
また、最後にも書きましたが、
専門家(エキスパート)を必要とする分野では
活躍できるのに、
そうでない分野では、
意外に使えないなんてこともわかってきています。
つまり、我々の生活の中では
「もし××ならば、△△しなさい」
なんて事情もそれに対する対処も明確なんてこと、
意外と少ないんですよね。
よく考えてみたら、我々の直面する問題の多くは、
状況や原因ががわからないか、
あいまいか、複合的であることが多いし、
じゃあどうすればいいのか、
前もってその対処方法がわかっていないことも
意外と多いモンです。
こうした場面では、
ルールを一杯用意するという
エキスパートシステムの方法論が通用しにくいわけです。
なんて、いきなり否定的なことばかり
言っているようですが、
エキスパートシステムは、使える!
でも万能ではない!
って、当たり前のことを言いたかっただけです。
失礼しあした。
以下、「マッチ箱の脳」の「ニューラルネットワーク」より抜粋
■エキスパートシステム
●ファジー理論の登場
ところでエキスパートシステムと、
相性のいい数学的理論として
「ファジー理論」というものがあります。
ファジーという言葉だけは有名ですが、
これがどんなものなのか、
エキスパートシステムとはどういう関係があるのか
ちょっと説明したいと思います。
例えば、こうしたルールがあったとします。
「もし、スピードが速かったら、ブレーキを踏む」
しかし、コンピュータは我々の言葉を理解できませんから、
「速い」といったあいまいな表現は困ってしまいます。
そこで、スピードが時速80km以上なら
「速い」と決めたとしましょう。
すると、時速30kmは速くない、
時速120kmは速い(そして交通違反)
と区別できるようになります。
しかし、これで一件落着かというとそうでもありません。
速い、速くないの境界線である時速80kmとは
かけ離れたスピードの場合にはうまくいきますが、
境界線と近いとどうも無理が出てしまいます。
例えば、時速79kmは上の定義でいえば、
「速くない」になりますが、
たった1km速い時速80kmになった瞬間に
「速い」となってしまいます。
速度が時速49kmも違う時速30kmとは同じ仲間なのに、
時速1kmしか違わない時速80kmとは
違う仲間になってしまうことになります。
これはどうみても不自然ですね。
同様に、背が高いとか、暑いとか、たくさんとか、
重いとか、我々が使う表現は、
こうしたあいまいなものが多いのです。
というより、そちらの方が圧倒的に多いとも言えます。
こうしたあいまいな(ファジーな)数量を、
ある一定の数値以下である、
以上であると一刀両断に区切ってしまうのではなくて、
数量に応じてなだらかに表現できないものだろうか。
そして、さらに数学的表現しか
理解できないコンピュータにも
わかるような形にできないだろうか。
……という問題を解決したのがファジー理論です。
特に、エキスパートシステムでは、
対話形式でユーザーの訴えを聞いたり、
診断やアドバイスを与えるインターフェースが一般的です。
このような対話形式では往々にして、
あいまいな表現が使われます。
病院で自分の症状を説明するのに、
「かなり」熱がある、とか「だいぶ」咳き込むとか、
あいまいな表現が多かったなんて経験、
皆さんあるでしょう?
ですから、漠然としたあいまいな表現を
うまく数値化するように橋渡ししなくてはいけません。
そういう場合、ファジー理論は非常に有効です。
例えば、背が高い、
低いの境界線を身長175cmと決めたとします。
先ほど説明したように、こうした場合、
従来のような分け方では苦しいところが出てきます。
そこで、ファジー理論では身長を
「背が高い 度合いxx」という表現をします。
まず、ファジー理論では、
これ以上なら間違いなく背が高いだろうという値と、
これ以下なら間違いなく背が低いだろうという値を
設定します。
例えば、180cm以上なら間違いなく背が高い、
150cmなら間違いなく背が低いとしてみましょう。
こうしたとき、身長180cm(以上)の人は
「背が高い 度合い1」、
身長150cm(以下)の人は
「背が高い 度合い0」と表現されます。
身長190cmの人も「背が高い 度合い1」となります。
そして、身長が150cm以上180cm以下の人は
どう表現されるかというと、
例えば身長170cmの人は「背が高い 度合い0.7」、
身長160cmの人は「背が高い 度合い0.3」
というように表現されるわけです。
このように、
すべての身長を「背が高い その度合い0〜1」で
表現してしまいます。
こうした表現を取ることによって、
たった1cm違っただけなのに、背が高い、
低いと分かれてしまうような落差を生まなくなりますし、
また、こうして数値で表すことができるおかげで、
足し算や引き算ができるようになります。
足し算や引き算?
と思われるかもしれませんが、
例えば、「背が高くて体重が重い」や
「背が高いけど体重が軽い」なども
数字で表現できることになります。
昨今、エアコンなどにファジー機能搭載という言葉を
よく耳にします。
ここでは「ちょっと暑い、かなり寒い」などの
あいまいな感覚を、
マイコンが扱えるようにファジー理論を使って
翻訳しています。
●エキスパートで観光案内も
エキスパートシステムは
このような簡単なアルゴリズムであるにもかかわらず、
大変正確に判断ができるので、
たくさんの実用例があります。
どんなものか試してみたい人は、
インターネット上でも試せるサイトがありますから
紹介しておきます。
どんな場所に行きたいか、
時間はどのくらいあるのかなどのアンケートから、
効率よい金沢観光順路を教えてくれる
「エキスパートシステム金沢観光」
風邪にかかっているかどうか診断してくれるサイト
「風邪診断エキスパートシステム」
試しにやってみると、
「ああ、こういうことね」と実感できると思います
(診断内容については、責任を持ちませんですよ)。
●エキスパートの弱点
しかし、問題もあります。
まず、ルールを設定するのはやはり人力であり、
かなりの専門的知識が必要であること。
このため、ルールを新たに追加するたびに
必ず専門家(エキスパート)の手が必要となります。
また、ルールがいっぱい増えると、
ルール同士の整合性を取らなくてはいけなくなってきます。
仮に書き表せたとしても、
結局は、その専門家以上の知識にはならない
という問題もあります。
それよりも、果たして、
すべての場合を網羅したルールを設定できるのかとなると、
これはかなり疑問です。
専門家が、自分が持っている知識を
もれなく書き出せるのかという問題もありますから。
さらに、確かに「もしxxならば、△△はxx」
という考え方で処理できる問題も多いのですが、
こと日常に関しては、
必ずしもすべての状況について
そうした表現が可能であるとは言えませんね。
こうしたことから、
「専門的な問題しか解決できない」AIと
指摘する人もいます。
|