6月
01
2005

AIの歴史

自分の記憶だけで書いてみます。詳細なところは、記憶が定かでなかったり、主
観によって歪められていたりするかもしれません。それも今のところ、私の中で
は事実なのでお許しください。間違っていたら随時修正していきたいと思います。

AIの前の、コンピューターの歴史

20世紀の意外と早い時期にコンピューターが誕生しました。
コンピューターの種は、19世紀の初期にイギリスのバベッジという人が作った、
蒸気機関で動く歯車による自動計算機だと思います。確か微分か積分を計算する
もので、その歯車の位置を設計することが、プログラムでした。
それを手伝った女性が、Ada(エイダ)という婦人で、後のアメリカ国防総省の言
語名にもなりました。

それの前に、パスカルがお父さんのために発明した計算機やライプニッツの計算
機もその遠因だと思います。

それから20世紀の初頭に、電子リレーというのが発明されて、イギリスかアメリ
カで電子リレーをつかった計算機が作られました。電力も消耗するので、複雑な
計算はできません。単純な会計計算だと思われます。

第2次世界大戦が終わった頃、その電子リレーを組替えることができる、「本当
のコンピューター」が発明されたと世間では言われています。

そして1950年頃の有名な、真空管をつかったコンピューター「ENIAC」が作
られました。真空管のおかげで、反応速度が速くなり、計算処理の早いコン
ピューターが作られました。これはロケットの弾道計算をするために作られたと
いわれています。寿命が1年半くらいの真空管を7000個ぐらい使われていたの
で、全体として1時間くらいしか計算できなかったといわれています。またプロ
グラムを組替えるときは、真空管の配線を変えたとか。処理能力は、今100円で
売られている電卓にも及ばないものです。

しかし電力消費は相当なもので、ニューヨークでつくられていたのですが、使う
たびに停電したといわれているそうです。(なんか数字や場所があやふやだなぁ)

その頃、イギリスで活躍したアラン・チューリングという研究者がいました。

その後、IBMがさらに発展して初めての商用コンピューターを作ります。

当時、そのIBMのコンピューターと同じくらいのものを10コつくれば、世界中の
コンピューターの需要は賄えるといった科学者がおりました。
当時も今も、まったく予想はあたらないものですね。

AIの歴史

最初の頃は、コンピューターの目的は計算だけだったのですが、マッカーシーと
いう人がLispという言語を考えました。

Lispは人工知能分野のアセンブリ言語と呼ばれています。アセンブリ言語という
のは、コンピューターの命令を実行していくもっとも単純な言語です。足し算や
引き算、メモリーからデータを呼び出したり書き込んだり、データが0だったら
次の命令を実行せずに次の次の命令を実行しろというような単純な言語(命令)
です。世の中のコンピューターは全て、そういった単純な言語の組み合わせで動
いています。コンピューターのことを知らない人にとっては、びっくりする話か
もしれません。

Lispは、List Processor の略です。数学上のリストと呼ばれる要素(元)の並
びを扱うための言語として生まれました。
リストというのは、(a b)とか(dog cat z 3)などのように、文字や数字を並べた
ものです。括弧と区分するスペース文字は、要素の並びを表現するためです。

Lispの最初の要素は、演算子として考えられ、2つ目以降の要素はデータとして
扱われます。足し算だったら、(plus 3 5)や(+ 3 5)と表現できます。

これ以上Lispの話をすると、500ページ以上の厚い本一冊の内容となります。
詳しい話はこちらのページなどを参考にしてください(ここは調べてしまいまし
た)。
http://jp.franz.com/jlug/index.html
50年近くの歴史があるものの、シンプルな構造ですので、Franz Lispという形で
いまでもWebシステムを含め使われています。Franz Lispの活動を最近知ったと
きは驚いてしまいました。

このLisp言語を元に、今では人工無能と呼ばれるような実験的なプログラムが作
られました。Elizaと呼ばれる少女のように応答するプログラムです。プログラ
ムを起動して、そこに英語で簡単な質問をすると返答があります。例えば”What
is your name?” “What do you like to do best on Sunday?”などの質問をする
ときちんとした返答があります。ただ、複雑な質問をすると「わかりません」
「もっと詳しく話してください」というような返事があります。

これは質問文にある、単語からどのようなことを言っているか、テキトーに分析
して返答をしているに過ぎません。多くは疑問文から単語を抽出して、対応する
単語を平叙文に直して返しているにすぎません。

それゆえ、何度も質問を繰り返していると同じ返答を何度もしたり、「質問して
いることがわかりません。」との答えがあり、そのうちなんか変だなと思われま
した。これがプログラムであることは実験のときは当初伏せていたそうですが、
精神病患者であると思われたそうです。

このことから人間の言葉のやりとりは意外と単純なもので、語彙や返答パターン
を増やせば、それっぽい知能になるのではと思われていました。

ちなみに、そのプログラムが知能をもつかどうかは、こういった方法で判断され
ます。現代風にいえば、インターネットでチャットをやっているとき、相手が人
間のように完璧に会話をこなしていて、それがプログラムだと見破れなかったと
き、相手は知能があるとみなされます。これはチューリング・テストともいわれ
ます。

このテストの名前がついている、チューリングという人は1940年頃から活躍した
イギリス人数学者です。第二次世界大戦中は暗号の開発と解読に貢献した人で、
コンピューターの研究、そして人工知能の初期の研究で有名な人です。論理的に
計算ができる機械というものを考案して、チューリングマシンというのを考案し
ました。このチューリングマシンで、数学上の問題が解決可能かどうかはこのマ
シンで解決できるかどうかと同じであることを証明しました。対偶的でいえば、
このマシンで解決不可能な問題は、数学上解決不可能です。ゲーデルの不完全性
定理の別証明でもあります。

なんて難しいこと書いてしまいましたが、20年前は理解していたのですが、今は
さっぱり忘れてしまいました。

こんな感じで、Lispを使ったシステムをどんどん大きく築いていけば、そのうち
本物の人工知能が実現できるだろうと思っていました。

しかし、進歩しているのですが一向に人間に近づきません。その焦りはいろいろ
なところで出てきます。その頃から50年近く経った今でも実現してはいません
し、あと数十年は生まれそうもないでしょう。鉄腕アトムをはじめいろいろなSF
小説やマンガなどで、人工知能が生まれているのに残念です。

そのLispを使ったプログラムから、プロダクションシステムというのが作られま
した。さきほどのElizaを複雑にして一般化したものです。

Elizaのプログラムは、相手がどんな質問をしたかということに対して単純な返
答をしています。もちろん話題の状況も内部的にデータとして持っています。

これをプログラム上で表現すると、以下のような条件文を集めたものです。

if 質問1, then 答1
if 質問2, then 答2
if 質問3, then 答3
if 質問4, then 答4
if 質問5, then 答5

これが少し賢くなると、質問の内容を分析した上で上の条件文にしたり、答が質
問文の一部となります。このようなたくさんの条件文を処理するのをプロダク
ションシステムといいます。

そして、DENDSYL?だったけ、患者の症状を聞いて病気を推定して医療のアドバ
イスをするプログラムが作られたり、さまざまな経済指標から株や債券のポート
フォリオを組むようなプログラムが作られました。上述のプロダクションシステ
ムを応用して、対象範囲を特定して専門家の役割を担うので、エキスパートシス
テムと呼ばれます。

1970年代からこの研究は続いておりますが、やはり人工知能を実現するには問題
がありました。

第一に、このシステムでは刺激に対しての単純な反応の積み重ねであり、刺激や
反応に対して理解をしていない。例えば、足し算や引き算のやり方を覚えるが、
足し算とは何か引き算とは何か、どうしてするのかということがわからないまま
である。

次に、このプロダクションシステムの条件文がいくつあればいいのか、逆に全て
の事柄は条件文にすることができるのかという、プロダクションシステムを続け
れば人工知能を実現できるのかということです。

最後に、この条件文は人間がつくったものであるが、システム自身がつくること
ができるのか?つまり学習機能があるかどうかです。また人間がこの条件文をつ
くるにしても、非常に難しいものでした。

まず専門家の持っている知識や知恵を取り出すことが難しい。
専門家が自分の持っている知識を本を書くことができれば、第一段階はクリアで
す。でもだいたい本に書ききれないことが多いのです、その状況になって初めて
どうすればよいかの答えを経験上出すことができます。前者を形式知、後者を暗
黙知という人もいます。

次に、その知識をコンピューターの表現できるようにします。プロダクションシ
ステムの場合は、if ?, then ? ですが、すべて可能でしょうか?なんでも条
件文に置き換えることが可能でしょうか?そのためデータを現実にあわせるため
オブジェクト指向にしたり、いろいろな工夫をしています。

結局のところ、専門家から知識や知恵を取り出せないところで一番挫折していま
す。取り出したものは本物のものではない。そしてそれを表現することも難しい
です。

しかし、その知識や知恵が良くわかっていて表現しやすい分野では、うまくいっ
ているところもあります。オセロのプログラムは人間より強くなっています。
チェスも世界最高のプレーヤーと同じくらいのレベル、そして将棋もだんだん
と、囲碁はまだまだです。これらはルールが単純で表現する場もわかりやすいの
で、コンピューターでは得意の分野です。でも将棋や囲碁では、人間の方がまだ
上です。

F1レーサーを考えてみましょう。車を走らせることはもうコンピューターの世
界では簡単です。次にF1の窓から見える景色や他のF1を認識することもでき
るようになりました。おそらくF1がゆっくりとコースを走って、他のF1とぶ
つからずに走るのはできるでしょう。それから、車やコースの状態もセンサーで
なんとかわかるでしょう。ではF1ドライバーの知識や知恵を取り出すのはどう
するのでしょう。きっと言葉にならないのではと思います。また経験する人は少
ないので、経験事例としてたくさんの情報を取り出すことは難しいかもしれません。

(話が長くなりました。明日に続きます)

Written by in: 楽天日記 |

コメントはまだありません »


コメント&トラックバック




トラックバック URL

コメントのRSS feed