カテゴリー別アーカイブ: ソフトウェア技術

遺伝子の水平伝播

progress000「遺伝子の水平伝播」という言葉をご存知でしょうか。wikipedia 遺伝子の水平伝播によると、「遺伝子の水平伝播(いでんしのすいへいでんぱ、Horizontal gene transfer(HGT)またはLateral gene transfer(LGT))は母細胞から娘細胞への遺伝ではなく、個体間や他生物間においておこる遺伝子の取り込みのこと。」とあります。これは、工学的な「知能の進化」にとって、非常に重要な概念と思っています。「脳科学基礎論としての生物言語学」(有川康二著) によると、「ネアンデルタール人が離散無限の働きを有する脳を作る遺伝子情報を持つウィルスに感染した結果、離散無限の性質を有する自然言語を生み出す脳を持つヒトに進化したとする「説」も提案されている」とあります。工学的には、遺伝的プログラミングを思い起こさせますが、遺伝的プログラミングも大規模になれば、同様の挙動について検討する必要がでるということ、と思います。

生物の進化は非常に多様性に富んでいます。たとえば、「ミトコンドリア」と「葉緑体」。これら2つは、細胞内共生説の代表的存在です。2つともに、核DNAとは別に独自に自律複製するDNAがあります。この2つが動物と植物を特徴づけているというのも面白いと思いませんか。人間社会にたとえると、居候が大家さんの社会的地位を担っているようなものですよね。

「進化論」も、日々、進化してますね。

人工知能のモデル

intelligence001「人間の脳」をモデルとして人工知能を設計しようと考えるのは、現時点で、決して、間違えではないと思います。わたしも、現在、ある意味、同様の立場をとっています。しかしながら、それだけで「技術的特異点」(Technological Singularity)を引き起こすような、全人類の知恵に匹敵するような、人間の知性を超えるような「超知能」ができるのでしょうか。すなわち、もう手を加える必要の全くない最終的な「人工知能】ができるのでしょうか?…。わたしはそう思いません。「生物界」全体をモデルとする必要があると考えています。

「生物界」を大雑把に空間的に見ると、植物と動物がいます。植物が太陽のエネルギーを物質に閉じ込め、動物や人間がその閉じ込められたエネルギーを使って、脳を機能させます。遠くから見ると、「生物界」は太陽エネルギーで動いている知能システムと見ることもできると思いませんか。このようなシステムとしての知能を設計することが必要と思います。これは、クラウドを設計するときに、電気の供給源である発電所を一緒に設計することと似ています。事実、クラウド運用企業は発電所の位置関係からデータセンターの場所を決めているようです。発電所を考慮し、電気にかかるコストを考慮しなければクラウドは成り立たないのではないでしょうか。

次に、「生物界」を時間的に見てみましょう。通常、「生物界」は、単純な構造の生物から進化してきたとされています。進化の過程で、脳は、「短期記憶」「エピソード記憶」「意味記憶」「言語能力」等を順次獲得してきました。この事実を見て、人間の脳が知能・知性の最終形であると、だれが断言できるのでしょうか。もし仮に、人間の知性を超えた「超知能」を目標とするのであれば、生物の進化のようなメカニズムを考慮しなければならないのは、当然ではないでしょうか。人間の脳の機能にはない新しい機能を持った人工知能があっても何の不思議もないと思います。

デジタルプログラム

AGCT000現在、ソフトウェアは、すべてデジタル情報として作られています。wikipedia”デジタル”によれば、「デジタル(英語: digital, 英語発音: [ˈdiʤətl]。ディジタル)量とは、離散量(とびとびの値しかない量)のこと。」だそうです。「多少の誤差を許容して、情報を扱いやすい形にする」というまさに素晴らしいアイデアです。なんと人間は賢いのでしょう。

しかし、このアイデアは、もう数十億年前に自然界が採用して「生物」を創造した手法でもあったのです。

すでに、お気づきの方も多数いらっしゃると思いますが、「生物」はデジタルプログラムで動いています。遺伝子は、アデニン、チミン、グアニン、シトシン(A,T,G,C)という4つの塩基の配列です。1塩基あたり4つの状態があるので、1塩基あたり2ビットの情報ということができます。それが一列に並んでいます。すなわち、生物は、ビット列表現できるプログラム -遺伝子- を元に動いているのです。

しかしながら、これって、私達の作っているソフトウェアとなにかが違うと思いませんか。生物が持つ遺伝子は、直接には、知能に関係ありません。知能を担っているのは、ニューロン細胞やグリア細胞です。これらの細胞が外部からの情報を処理します。遺伝子はこれらの細胞の挙動を制御している裏方です。ところが、私達が普段作っているデジタルプログラム(ソフトウェア)は、直接に外部からの情報を処理し、結果を出します。いってみれば,表方.

生物に学び設計する立場から見ると、今のデジタルコンピュータのプログラミングは、ほんの少しだけ、作り方を間違えているのかもしれないと思います。

普遍文法

baby002あくまで仮説ですが、「普遍文法」という考え方があります。ウィキペディア”普遍文法”によると「普遍文法(ふへんぶんぽう、Universal Grammar)は、言語学の生成文法における中心的な概念で、全ての人間が(特に障害がない限り)生まれながらに普遍的な言語機能 (faculty of Language) を備えており、全ての言語が普遍的な文法で説明できるとする理論。」とあります。言語は人間の知的活動の中で大きな役割を占めます。それが、この説によると学習によらない「普遍的な言語機能」があるというのです。それが、環境の違い(生まれ育った場所の使用言語の違い)によって「日本語」言語能力になったり、「米語」言語能力になったりするというのです。もしもこの説が正しければ、「人工知能」にもこのような仕組みを取り入れる必要があるかもしれません。このようなものを、どのようにソフトウェアで表現するかは難しい問題となるかもしれません。

発現

「発現」、または、「遺伝子の発現」という用語があります。この用語が指すことは、生物が普通にやっていることで、遺伝子に刻まれた情報を具体的な機能を持つ部位にすることです。人間の脳での「記憶」もこの発現によって行われます。現在でも様々の関連の研究が行われています(たとえば、共同発表:長期記憶形成時の脳部位に応じた遺伝子発現調節機構の発見,2014)。人間と相互作用するような人工知能では、認識プロセス実行中に、学習プロセスを起動する必要がある場合があると考えています。このような機能がないと、会話中に得た知識が、続く会話の中で使えないことになります。この発現の機能をソフトウェアで実装することが必要と考えています。そうでなければ、まともな会話もできないことでしょう。

「人工知能」という単語

ai002最近、「人工知能AlphaGo」とか、「人工知能Watson」とかの言い回しを聞くと思います。一昔前は、高度なエアコンの温湿度調節や洗濯物の量を適切に自動計測する洗濯機も「人工知能搭載」と呼ばれていました。私が数式処理をいじっていた時代には数式処理を「人工知能」と呼んだりする人たちもいましたし、エクスパートシステムも、かつては、「人工知能」でした。更に昔には、どんな処理をしてようともコンピュータそのものを「電子頭脳」と呼んでいました。この「電子頭脳」も人工知能と同様のニュアンスですよね。「頭脳」という単語が使われているのですから。しかし、時間の流れとともに、人工知能と呼ばなくなっていきました。「単なる」ソフトウェアであると?面白いものですね。これらはすべて人間の知的活動をエミュレートしているソフトウェアなので、私は、人工知能と言ってもいいと思うのですが。
わたしは、このような歴史を考えて、「人工知能」を「最先端のソフトウェア技術」と読み替えてもいいような気がしています。その時点で、最も先進的なソフトウェアを「人工知能」と呼んだと考えればいいのではないでしょうか。だから、次第に「人工知能」と呼ばれなくなる。時間が経てば、最先端ではなくなるのだから。そして、最終的に、自身のソフト開発等を含むすべてが「人工知能」で自動でおこわなれ、人間による新しいアーキテクチャやアルゴリズムの開発が不要になったときに、すなわち、それが常に「最先端のソフトウェア技術」となったときに、「人工知能が完成した」となるのではないでしょうか?

わたしは、「人工知能」という単語を「最先端のソフトウェア技術」というニュアンスで使っています。この会社の目的は、今までにないアーキテクチャやアルゴリズムでより賢いソフトウェアの実装を目指すことで、ある意味「単なるソフトウェア」を開発することです。これをもって、私は、「人工知能」という単語を使っています。