制作者:KrK (Knuth for Kludge)
「人工知能が人間を超える日」。最近よく見かける標題(脅し文句)である。
はたして何をもって「超える」とするのだろうか?
考えるまでもなく、記憶力と演算力ではとっくにコンピュータが人間を超えている。知能と言った場合、多くの人が必要条件として求めるのは、自ら考える、「想像力」「発想力」のようなものだろう。漠然と言うと「考えの飛躍」ができることが大切なのだと思う。そういう意味で言うと、現在人工知能と言われているものは、知能ではない。
現在のコンピュータ(ノイマン型コンピュータ)はすべて、ビット演算(AND/OR)、条件分岐(IF)、ジャンプ(GOTO)の4つを組み合わせて動いている。どんな複雑なアプリケーションもゲームもAIも、これである。
では、この3つの命令をどう組み合わせれば知能が生まれるのか?
自分はいくら頑張っても生まれないと思っている。
最近「人工知能が、出された絵を猫と認識できた!」というニュースを見た。これも、簡単な「丸の上に三角が2つあれば猫」という条件分岐から出発し、もっと大量の条件分岐を入れまくれば猫を判別するプログラムができる。要はプログラマの条件分岐設定が上手なだけである。
「それでも猫を認識できたんだから知能じゃないの?チューリングテストを知らないの?」という意見もあると思う。しかし、例えば16ドット×16ドット×2色(白黒)のアイコンを考えた場合、約10の77乗通り(十万×兆×兆×兆×兆×兆×兆通り)の絵が描ける。このすべてをあらかじめ人間が「猫である」「猫でない」と区別しておけば、コンピュータは間違えなく「猫か否か」を答えられる。だが、これを「人工知能」と呼ぶ人はいないだろう。もしこれを人工知能と呼ぶのなら、「時間が来たら鳴る」目覚まし時計も立派な人工知能ということになる。
コンピュータは、「猫か否か」と聞かれて「ってか、犬」と答えることはない。与えられた条件分岐から飛躍することはしないし、できないのである。もちろん、現在のような「条件分岐による判断」とまったく違う、素人には予想だにできない原理が発明されることはあるかもしれないが。
ここで、ディープラーニングだの何だの言うかもしれない。しかしこれとて、「こういう絵だったらこういう条件分岐を増やして」とプログラマがプログラミングした結果に過ぎない。結局はプログラマの指示通り、調教次第である。
確かに、学習を巧く調整してやれば、カオス理論が如く、プログラマの予測しない答えを返すこともあろう。だが、学習結果が予測できないから知能だとは言えない。もし「予測できない答えを出す、すなわち知能」なら、円周率を延々計算するプログラムも人工知能ということになる。「予測しない」と「コンピュータが自発的に考えた」の間には、はっきりとした壁がある。外部から見て区別できないとしても。
結局、現在のプログラミング方法をいくら精錬させても、その昔「人工無能」とはやされたプログラムを脱することはできないのである。
まぁ、もちろん、「役に立つか否か」は別の話です。
「存在は有り、非存在は無い。」Parmenides
最終更新:2024/12/27