LISP と人工知能
LISP のことで何か書いてみようと自分で考えてみたけど、他人にわかるような内容でまとまらなかった。
LISP はその歴史と人工知能に関することが良いのであって、括弧だらけのプログラムはおもしろくも何ともないだろう。
何故、括弧だらけのプログラムが人工知能の考えに使われるようになったのか。
現在、AIとかいわれているのは LISP とは無関係だ。理由は処理が遅いこともあるけど
LISP で考えられた人工知能とは別のものだからだ。現時点では、LISP はまったく役に立たなかったといえる。
カッコに対して、演算器が1つずつあるとか番地が1つずつ割り当てられたハードウェアとかあり、
それでAIが実現されていれば LISP かもしれないが行列演算してAIをしているように見せている。
LISP vs FORTRAN でいえば勝者は FORTRAN になる。
ベクトルの計算結果であって、コンピュータは元々ベクトルの計算をするように製作されている。
論理を実現できるものでない。
コンピュータは論理回路と言うぐらいだから、論理を考えることから始まったけどいつの間にかトランジスタを増やすことだけ
しかしなくなった。それであれば、計算能力は向上するだろう。でも肝心の論理回路は何もかわっていない。
LISP とてマシン語で実行するものだけど 1960 年代の頃から同じ論理回路だ。
ここまで LISP のことを否定的に書いたけど自分の考えはそうでなく、現在のAIと言っているのはAIでも何でもない。
商品としてAIと言っているだけで理論としてのAIでない。
そんなことをどう書こうかと思っていたらbit誌の記事があった。
この号がいつものか、1970年 12月になっている。日本では、1968年あたりからLISP の研究が始まっているので
その研究の成果といえる。
1970年 12月
記号処理言語② LISP
-- 記事の引用ここから --
LISP は、10年ほどまえ J.McCarthy が記号を処理するための言語として開発した言語で
MITの人工知能グループがIBM-7090 を対象に LISP-1.5 というシステムを完成した。
LISP では、後で述べる S式という木構造になってリストをデータをとして取り扱いプログラム自身も同じ形式の S式になっている。
S式は、たとえば次のようなものになる。
BIT
BYTE
(GOLGO 13)
(CAR (CDR(QUOTE ((A*B) C))))
(1) car [ x ]
( x1 x2 , ・・・ xn ) という形の S式(これをリストという)のなかの最初の要素(ここではx1)を値とする。
car [ (A, B, C) ] = A.
(2) cdr [ x ]
( x1 x2 , ・・・ xn ) のx1 をのぞいた残りを値とする。
cdr [ (A, B, C) ] = (B, C).
(3) cons [ x ; y ]
y というリストの最初に x という S式 を要素として加え値とする。
cons [ A ; (B, C) ] = (A, B, C).
(4) eq [ x ; y ]
(5) atom[ x ]
-- 記事の引用ここまで --
個人的にはこれだけでも人工知能と思う。
これができれば自然語も表現できる。当時は、自然語イコール人工知能だったのだろうけど
コンピュータの処理能力を考えるとそのことはおかしくない。
遅くてもリストの付け替えができてベクトル処理を速くするかこれはアプローチの違いではあるけど
ベクトルとリスト操作は違う。ベクトル処理を高速化しても論理的にならない。
2024/04/29