4/04/2021

なぜ、コンピュータは自ら賢くならないのか?

New Yorkerより

私たちは「シンギュラリティ = 技術的特異点」を畏れ、切望しています。しかし、おそらく決してやって来ないでしょう。

テッド・チャン

11世紀、カンタベリーの聖アンセルムスは、神の存在を証明するためにある論拠を提唱しました。「神は、定義上、私たちが想像できる最も偉大の存在であり、存在しない神は存在する神に比べて明らかに偉大ではない。故に、神は存在するはずである。」これは存在論的証明(ontological argument)として知られていますが、この議論は1000年近く経った今でも議論されているほど、説得力があると思う人がたくさんいます。存在論的証明を批判する人の中には、存在論的証明は本質的に存在を定義するものであり、定義の仕組みではないと主張する人もいます。

人々が存在を主張しようとしたのは神だけではありません。数学者のアーヴィング・ジョン・グッドは、1965年に「超知能機械(ultraintelligent machine)とは、どんなに賢い人間の知的活動をもはるかに凌駕することができる機械と定義する」と書いています

機械の設計もその知的活動の一つであるため、超知能機械はさらに優れた機械を設計することができる。そうなると、間違いなく「知能爆発(intelligence explosion)」が起こり、人間の知能ははるかに取り残されてしまうだろう。したがって、最初の超知能機械は、その機械が十分に従順で、どうやって制御するかを教えてくれる場合に限り、人間が作る必要のある最後の発明である。

知能爆発という考えは、1993年に作家でありコンピュータ科学者であるヴァーナー・ヴィンジが「シンギュラリティ」と呼んで復活させたもので、それ以来、この考えは技術者や哲学者の間で一定の人気を得ています。ニック・ボストロムの『スーパーインテリジェンス 超絶AIと人類の命運』、マックス・テグマークの『LIFE3.0──人工知能時代に人間であるということ』、スチュアート・ラッセル の『AI新生 人類互換の知能をつくる』のような本はすべて、人工知能プログラムがそれ自体の改良版を繰り返し設計する「再帰的自己改善7recursive self-improvement)」のシナリオが描かれています。

私は、グッドとアンセルムスの論拠には共通点があると考えています。どちらの場合も、最初の定義によって多くの働きが行われているということです。これらの定義は、表面的には合理的であるように見えるので、一般的には額面どおりに受け入れられていますが、もっと精査する必要があります。グッドの議論の暗黙の前提を精査すればするほど、知能爆発という考えは説得力を失います。

人間にとって、再帰的自己改善とはどのようなものでしょうか? 便宜上、人間の知能をIQ(知能指数)で表すことにしますが、これは、IQテストを推奨するものではなく、IQは知能を一つの数値で有効に捉えることができるという考えを意味します。この考えは、知能爆発の支持者の前提の一つとなっています。その場合、再帰的自己改善は次のようになります。例えば、IQ 300を持つ人がいたら、この人が解決できる問題の一つは、IQ 300を持つ人をどのようにIQ 350の人に改善できるかということです。そして、IQ 350の人は、IQ 350の人をIQ 400の人に改善するという、より難しい問題を解決することができます。といった具合です。

これが知能の仕組みであると考える根拠はあるのでしょうか? 私はそうは思いません。例えば、IQ 130の人はたくさんいますが、IQ 160の人は少ないです。いずれの誰も、IQ 70の人の知能を100まで高めることができませんでした。これは、より簡単な課題だと考えられています。また、IQテストで測定するには知能が低すぎると考えられている動物の知能を高めることもできません。もし、誰かのIQを高めることが、数学のパズルを解くような活動であるなら、問題を解くのが簡単な低いレベルで成功例が見られれるはずです。しかし、そのような強い証拠はありません。

現在の私たちが、必要なしきい値からあまりにも離れ過ぎているかも知れません。もしかしたら、誰かの知能を高めるためには、IQ 300が最低限必要かも知れません。しかし、仮にそうだとしても、無限に再帰的自己改善が可能であると信じるに足る理由はまだありません。例えば、IQ 300の人ができることは、他の人のIQを200に増やすことだということは十分に考えられます。そうすると、IQ 300の人が周りの人にIQ 200を与えることができます。これは驚くべき成果です。しかし、それでも私たちは停滞期にとどまったままで、再帰的自己改善も知能爆発もありません。

IBMの研究エンジニアであるエマーソン・ピュー(Emerson Pugh)は、「もし、人間の脳が、私たちが理解できるほどに単純であったなら、私たちは単純過ぎるので、それが理解できないだろう」と語ったとされています。この言葉は直感的に理解できますが、さらに重要なのは、それを裏付ける具体的な例を挙げることができるということです。それは微小な線虫Cエレガンスです。この線虫はおそらく史上最もよく理解されている生物の1つです。科学者たちは、ゲノムの配列を解読し、体の中の959個の体細胞のそれぞれを生み出す細胞分裂の系統を理解し、302個のニューロン間のすべての接続をマッピングしました。しかし、その行動を完全には理解しているわけではありません。人間の脳には平均860億個のニューロンがあると推定されており、Cエレガンスの302個のニューロンで何が起きているのかを理解するには、そのほとんどが必要になるでしょう。この比率は、私たちが自分の中で何が起こっているのかを理解する見通しを立てるのに悪い前触れです。

知能爆発を提唱する人の中には、システムの仕組みを完全に理解しなくても、システムの知能を高めることは可能だと主張する人もいます。人間の脳やAIプログラムのような知能システムには、1つ以上の「知能のツマミ」が隠されており、人間はそのツマミを見つけられるだけの頭脳を持っていれば良い、というのです。しかし、このツマミの候補となるものが今のところあまりないので、この考え方の合理性を評価するのは難しいと思います。人工知能の性能を「上げる」ための最も一般的な手法は、プログラムを実行するハードウェアの速度を上げることでしょう。人間と同等の知能を持つソフトウェアができたら、そのソフトウェアをより高速なコンピュータで実行することで、超人的な知能が効果的に生み出すことができると言う人もいます。これは知能爆発につながるのでしょうか?

平均的な人間のコンピュータ・プログラマと同じくらいの知能と能力を持ったAIプログラムがあるとします。ここで、そのプログラムのコンピュータの速度を100倍に上げ、1年間動作させたとします。これは、平均的な人間を100年間部屋に閉じ込め、割り当てられたプログラミング作業以外には何もさせないということに相当します。多くの人間はこれを地獄のような懲役刑と考えるでしょうが、このシナリオでは、AIが同じように感じていないと仮定しましょう。AIは人間として望ましい特性をすべて備えていますが、目新しさを求める気持ちや自分で選択したいという欲求など、このシナリオで障害となるような他の特性は持っていないと仮定します。(これが合理的な仮定であるかどうかは私には分かりませんが、この問題は別の機会に譲りましょう。)

人間と同等のAIが、一つの仕事に100人年を費やしているわけです。では、どのような結果が期待できるでしょうか? 仮に、このAIが1日に1,000行のコードを書いてデバッグできるとしたら、驚異的なレベルの生産性です。その速度では、4500万行のコードで構成されていると言われるWindows XPを、独力で書き上げるのにほぼ一世紀という時間が必要になります。これは素晴らしい成果ですが、自分よりも賢いAIを作ることができることとはかけ離れています。より賢いAIを作るには、優れたコードを書く能力以上に、AI研究における大きなブレークスルーが必要であり、それは平均的なコンピュータ・プログラマがいくら時間を掛けても達成できるものではありません。

ソフトウェアを開発する際には、通常、コンパイラと呼ばれるプログラムを使用します。コンパイラは、C言語などで書かれたソースコードを、コンピュータが理解できるマシンコードで構成されるファイルである実行プログラムに変換します。例えば、あなたは自分が使っているCコンパイラに満足していないとします。これをCompilerZeroと呼びます。CompilerZeroは、ソースコードの処理に長い時間がかかり、生成されたプログラムの実行にも時間がかかります。あなたはもっと良いものが作れると確信しているので、より効率的なマシンコードを生成する新しいCコンパイラを作成します。この新しいコンパイラは、最適化コンパイラとして知られています。

最適化コンパイラはC言語で書かれているので、CompilerZeroを使ってソースコードを実行プログラムに変換できます。このプログラムをCompilerOneと呼びます。あなたの創意工夫により、CompilerOneは実行速度の速いプログラムを生成できるようになりました。しかし、CompilerOne自体はCompilerZeroの製品であるため、実行にはまだ時間がかかります。では、どうすればいいのでしょうか?

CompilerOneを使って、自分自身をコンパイルすることができます。CompilerOneに自分のソースコードを与えると、より効率的なマシンコードで構成された新しい実行ファイルが生成されます。これをCompilerTwoを呼びます。CompilerTwoも非常に高速に実行するプログラムを生成しますが、CompilerTwo自身も非常に高速に実行するという追加の利点があります。おめでとうございます — あなたは自己改善型のコンピュータ・プログラムを書きました。

しかし、ここまではいいのです。CompilerTwoに同じソースコードを入力しても、CompilerTwoの別のコピーが生成されるだけです。CompilerThreeを作ることはできず、より優れたコンパイラーを次々と開発することはできません。非常に高速に実行するプログラムを生成するコンパイラを求めるなら、他の場所を探して手に入れるしかありません。

コンパイラが自分自身をコンパイルする手法はブートストラップと呼ばれ、1960年代から採用されています。コンパイラの最適化が進んだため、CompilerZeroとCompilerTwoの差は以前よりもはるかに大きくなっていますが、その進歩はすべて、コンパイラが自らを改善したというよりも、人間のプログラマによって達成されたものです。また、コンパイラは人工知能プログラムとはまったく異なりますが、知能爆発というアイデアについて考える上で、有用な先例を提供してくれます。なぜなら、コンパイラは他のコンピュータ・プログラムを生成するコンピュータ・プログラムであり、その際にはしばしば最適化が優先されることが多いからです。

プログラムの使用目的を理解すればするほど、そのコードを最適化することができます。人間のプログラマは、プログラムの一部を手作業で最適化することがあります。つまり、マシン命令を直接指定するのです。人間は、プログラムが何をすべきかをコンパイラよりも詳しく知っているため、コンパイラが生成するものよりも効率的なマシンコードを書くことができます。最適化を最も得意とするコンパイラは、ドメイン固有言語として呼ばれる狭いカテゴリのプログラムを書くために設計された言語のコンパイラです。例えば、Halideという画像処理プログラム専用に設計されたプログラミング言語があります。

これらのプログラムの使用目的は非常に特殊であるため、Halideコンパイラは人間のプログラマが書いたものと同等以上のコードを生成できます。しかし、画像処理に最適化された言語は、コンパイラを書くのに必要な機能をすべての備えているわけではないため、Halideコンパイラが自分をコンパイルすることはできません。そのためには、汎用言語が必要ですが、汎用コンパイラにはマシンコードを生成するという点で人間のプログラマには敵いません。

汎用コンパイラは、何でもコンパイルできなければなりません。ワープロのソースコードを与えれば、ワープロが、MP3プレーヤのソースコードを与えれば、MP3プレーヤがといった具合です。明日、プログラマが1990年の初めてWebブラウザが登場したように、今の私たちに馴染みのない、新しい種類のプログラムを発明したら、そのソースコードを汎用コンパイラーに与えれば、その新しいプログラムを忠実に生成します。だから、コンパイラは決して知能があるわけではありませんが、これまでに見たことのない入力を処理できるという点では、知能を持った人間と共通しています。

これを、現在のAIプログラムの設計方法と比較してみます。例えば、チェスの手が提示され、それに対応するチェスの手を吐き出すだけのAIプログラムがあるとします。このプログラムの仕事は非常に特殊であり、そのことを知っていれば、プログラムのパフォーマンスを最適化するのに非常に役立ちます。同じことが「ジェパディ!」のヒントだけを与えられ、質問形式で答えを出すだけのAIプログラムにも当てはまります。同様のゲームをプレイするように設計されているAIプログラムはいくつかのますが、それでも想定される入力と出力の範囲はまだ極めて狭いものです。今、あなたがAIプログラムを書いているとしましょう。どんなタイプの入力が期待できるか、正しい応答がどのような形式になるか、事前には何も知らされていないとします。そのような状況では、何に対して最適化していいか分からないため、パフォーマンスを最適化するのは困難です。

どこまで汎用性を高めることができるのでしょうか? これまでに遭遇したことのない状況を含め、ありとあらゆる考えられる状況に対して、システムを同時に最適化することは、どこまで可能なのでしょうか? おそらく、ある程度の改善は可能だと思いますが、知能爆発という考えは、最適化の範囲には基本的に限界がないことを意味します。これは非常に強い主張です。もし誰かが、一般性に対する無限の最適化が可能だと主張するのであれば、特殊なタスクの最適化の例を挙げる以外に、いくつか論拠を見てみたいものです。

明らかに、これらのどれも知能爆発が不可能であることを証明するものではありません。実際、そのような問題はおそらく数学的証明の範囲内にないため、証明できるとは思えません。これは、何かが不可能であることを証明する問題ではなく、何が信念を正当化する構成要素になるのかという問題です。アンセルムスの存在論的議論の批評する人たちは、神が存在しないことを証明しようとはしているのではなく、アンセルムスの主張が神の存在を信じる正当な理由の構成要素にはならないと言っているだけです。同様に、「超知能機械」の定義は、そのような装置を作ることができると考える十分な理由にはなりません。

再帰的自己改善が意味のある概念であると私が考えるのは、人類の文明全体の能力を考える場合です。これは個人の知性とは異なることに注意して下さい。一万年前に生まれた人間が、今日生まれた人間よりも知能が低かったはずはありません。彼らは私たちとまったく同じ学習能力を持っていました。しかし、現在の私たちは一万年分の技術的進歩を駆使しており、それらの技術は物理的なものだけでなく、認知的なものも含まれています。

アラビア数字をローマ数字と比較して考えてみます。アラビア数字のような位取り記数法を使用すると、掛け算と割り算がしやすく、掛け算のコンテストではアラビア数字の方が有利です。しかし、アラビア数字を使っている人がローマ数字を使っている人よりも賢いとは言えません。たとえれば、ボルトを締めようとするとき、レンチを使えば、ペンチを持っている人よりもうまく締められますが、自分の方が強いと言うのは公平ではありません。あなたは機械的に有利な道具を持っていますが、ライバルに同じ道具を与えて初めてどちらが強いかを公正に判断できるのです。アラビア数字のような認知ツールも同様に有利であり、個人の知能を比較するには、同じツールを備えていなければならないのです。

単純な道具があるからこそ、複雑な道具を作ることができます。これは、物理的な道具と同様に、認知的な道具にも当てはまります。人類は、複式簿記からデカルトの座標系まで、歴史上何千ものそのような道具を開発してきました。そのため、人間の知能は昔ほどではないにしても、自由に使える認知的な道具の種類が増えたことで、さらに強力な道具を発明することができるようになったのです。

このようにして、個人のレベルではなく、人類全体のレベルで、再帰的自己改善が行われていくのです。アイザック・ニュートンが微積分を発明したからといって、彼自身の知性が高まったとは言えません。そもそも微積分を発明した彼は、並外れた知能の持ち主だったに違いありません。微積分学のおかげで、それまで解けなかった問題が解けるようになりましたが、その恩恵を受けたのは彼だけでなく、残りの人類でした。ニュートンの後に登場した人々は、2つの方法で微積分の恩恵を受けました。短期的には、それまで解けなかった問題が解けるようになったこと、長期的には、ニュートンの研究を基にして、さらに強力な数学的手法を考案することができたことです。

私が、人間と同等のAIプログラムを隔絶させて100年間実行させても、大きなブレイクスルーは得られないと考える理由は、まさにこのような人間の相互補完能力のためです。完全に孤立して仕事をしている個人がブレイクスルーを発明することがあっても、それを繰り返し行うことはほとんどありません。直接的なコラボレーションではなく、どのような分野研究でも、多くの人が働いている方がうまくいくでしょう。

例えば、DNAの研究を考えてみましょう。ジェームズ・ワトソンとフランシス・クリックは、1953年にDNAの構造に関する論文を発表した後も、数十年にわたって活躍しましたが、その後のDNA研究における大きなブレイクスルーは、彼らによるものではありませんでした。彼らは、DNAのシークエンシング技術を発明したわけではありません。また、DNA合成を手頃な価格で実現するポリメラーゼ連鎖反応を開発したのも彼らではありませんでした。これは、ワトソンとクリックを侮辱しているわけではありません。それらをAI化して通常の100倍の速度で走らせても、世界中の分子生物学者がDNAを研究して得られた結果ほどの成果は得られないということです。イノベーションは孤立して起こるものではなく、科学者は他の科学者の研究を参考にしています。

イノベーションの速度は増しており、たとえ後継機を設計できる機械がなくても、その速度は続くでしょう。この現象を知能爆発と呼ぶ人もいるかもしれませんが、私は物理的な技術だけでなく、認知技術を含めた技術爆発と呼んだ方が正しいと思います。コンピュータのハードウェアやソフトウェアは最新の認知技術であり、イノベーションを強力に支援してくれますが、それだけでは技術爆発を引き起こすことはできません。そのためには人が必要であり、多ければ多いほど良いのです。より良いハードウェアやソフトウェアを一人の賢い個人に与えることは有効ですが、本当の効果は皆がそれを持っているときにもたらされます。現在の技術爆発は、そうした認知的道具を何十億人もの人が使った結果です。

AIプログラムが人間の代わりになることで、デジタルの世界では人間よりも早く爆発が起きるのではないでしょうか? 可能性はありますが、それには何が必要なのかを考えてみます。最も成功する可能性が高い戦略は、基本的には人類の文明のすべてをソフトウェアで複製し、80億人の人間に相当するAIが仕事をすることです。しかし、それにはコストがかかります。そこで課題となるのが、求めているイノベーションのほとんどを生み出すことができる人類の文明の最小のサブセットを特定することです。一つの考え方として、こう問いかけてみます。マンハッタン計画を実行するには、何人の人間が必要でしょうか? これは、マンハッタン計画で実際に取り組んだ科学者の数を尋ねるのとは違うことに注意して下さい。ここで問題となるのは、このような取り組みに行うのに十分な数の科学者を集めるには、どのくらいの人口が必要なのでしょうか? ということです。

物理学の博士号を取得できるのは数千人に一人であるのと同じように、物理学では、物理学の博士号を取得できる一つのAIを作るためには、人間に相当する数千のAIをつくらなければならないかも知れません。マンハッタン計画を遂行するには、1942年にアメリカとヨーロッパを合わせた人口が必要です。現在、研究所では、採用の際に2つの大陸に限定することはありません。なぜなら、最高のチームを作るには、最大の人材を集めることが必要だからです。人類全体の数と同じだけのイノベーションを生み出すことを目標とするなら、当初の80億という数字を劇的に減らすことはできないかもしれません。

人間に相当するAIを一つ作ることができるようになるまでには、何十億ものAIを作るのはまだ遠い道のりです。当分の間、技術爆発は、人間が過去に発明した道具を使って、新たな道具を発明することで推進され、「人間が最後にしなければならない発明」は存在しないだろうということです。これはある意味で、心強いことです。なぜなら、グッドの主張に反して、人間の知能が「はるかに取り残される」ことは決してないからです。しかし、超人的な知能を持ったAIが文明を破壊することを心配する必要がないのと同様に、超人的な知能を持ったAIが私たちを救ってくれることを期待するべきではありません。良くも悪くも、私たちの種の運命は人間の意思決定にかかっているのです。

テッド・チャンは、SFの受賞歴のある作家です。2016年、彼の最初の短編集『あなたの人生の物語』のタイトルストーリーが、映画『Arrival』に採用されました。彼はワシントン州ベルビューに住んでおり、フリーランスのテクニカルライターとして働いています。

Hacker News