まず、毎回毎回しつこいとは思いますが、「人工知能」という技術は存在しない(関連記事:「我々が求めるAIとは、碁を打ち、猫の写真を探すものではない」)ので、今回も、「人工知能」といわれるものを実現する技術の全般を、カッコ付きの"人工知能技術"と表記します。
さて、"人工知能技術"とは、ほとんどの場合、コンピュータのプログラムとして実現されます。つまりコンピュータの存在を前提として、「人工知能」と呼ばれるものが実現されます。
―― でも、コンピュータでなくったっていいんじゃないの?
動物の脳を改造したり、クローン人間の脳だけ生成し、そこに「知能」を発生させることができるようにすれば、これだって立派な「人工知能」です(参考記事)。コンピュータで実現するより、よっぽど手っ取り早いと思うのですが、誰もそこには言及していない(したくない?)ようです。
それはさておき。
基本的に現状のコンピュータで実現されるプログラムは、それがどのようなものであれ、基本的にデータが入力されて、出力されるという点においては、情報処理システムでも制御システムでも、そして"人工知能技術"であろうとも同じです。
ただ、"人工知能技術"の場合、プログラムの内容(もっぱらパラメータの数値)を徐々に変化させていくものもあります。そこは特徴といえばいえるのですが、しかし自己チューニングしていくプログラムなんぞ、昔から腐るほどあります(例えば、フィードバック制御のプログラムなら、私も山ほど作ってきました)。
このようなパラメータのチューニングではなく、プログラムが、自分自身のプログラムを勝手に作り出す ―― 例えば、最初は20行しかなかったのに、ほっといたら、3日後に2万行にもなっているプログラムを見せてもらえれば、ちょっと、私もビビるかもしれませんが*)。
*)当然、(malloc()やクラスのインスタンスなどの)動的メモリ生成などは、この概念には含みません。
実際、そのような自己生成型のプログラムについても、世界中で山ほど特許出願されています(昔、調べました)が、そのようなプログラムが、知識だけでなく、新しいアルゴリズムまでも自力で獲得して、有効に働いている ―― という話を聞いたことがありません(私が知らないだけかもしれませんので、知っている人は、ぜひ教えてください)。
私が何を言いたいかというと、現状の"人工知能技術"のプログラムであっても、構造的には、昔のプログラムと基本的には同じであるということです。
そして、さらに、"人工知能技術"のプログラムには、普通のプログラムにはない、決定的に面倒なことがあるのです。
それは、「本当に正しく動いているのか」が分からないことです。
Copyright © ITmedia, Inc. All Rights Reserved.