1−2・「真性シンギュラリティ」の根底にどうメスを入れるかそれにしても恐らく読者は今まで、計算機数学の話と宇宙論レベルの話の中に、同じ論理をベースにしたものが含まれている、という話題それ自体を聞いたことがなかったのではあるまいか。先ほどの人間原理の話でも、その試行回数がどちらの無限になるのか、あるいはどういう条件が想定されているとそれが非可算無限回になってしまうのか、ということはすぐにはわからず、それを判定するには何か非常に難しい理論が要求されてしまいそうである。そこをクリヤーに直観的に理解する方法はないのだろうか。ところが先ほど述べたように、ここで「作用マトリックス」という新しい武器を導入すると事態は一変し、これらのほとんどのことが直観的に容易に見えてしまえるようになるのである。それは「真性シンギュラリティ」を巡るメカニズムがどうなっているかを根底から解き明かすことになるため、それを知りたい読者のためにここで見ておこう。以下は少し難しいかもしれないが、それ以上に深い内容の知識を得られるので、トライしてみても十分に引き合うのではないかと思われる。この問題を切るための決定的ツールとしての「作用マトリックス」ではその作用マトリックスとはどういうツールなのだろうか。これはもともと歴史的難問である「三体問題」がなぜ解けないかを、より直観的にクリヤーな形で数学的に表現することを目的に導入されたものである。これに関しては、「物理数学の直観的方法」で詳しく論じられているので、詳細はそちらを参照していただきたいが、同書をお読みでない読者のために、ここでもごく簡単に説明しておこう。月、地球、太陽の3つの天体があって、そこで月が1時間の間にどう移動するかを考えよう。この場合、月は地球と太陽の引力の影響を受けながら動くため、その1時間後の位置は、月自身の慣性運動による移動距離�@に、地球の引力�Aと太陽の引力�Bによる移動分を加えたものになる。そのためその位置の変動は、図のように3本の矢印を合成ベクトルの要領で足し合わせた形で表すことができる。この場合問題なのは、一般に引力の強さは相手の天体との距離で変化するため、この矢印の大きさは相手の天体(この場合は地球と太陽)の位置情報を入力してやらないと決まらない、ということである。残りの二つの天体についても、月と全く同じ状況が生じることになるため、話はかなり厄介である。そこでこの面倒な状況を、行列を使ってもう少しスマートに表現することを考えよう。行列というツールは、こうした複数の量を同時に並行的に扱う際の手間を簡略化するために導入されたものだが、実はわれわれの場合、うまいことに行列の掛け算の演算規則というものが、半ば偶然に上の過程に良く似たものになっていて、一工夫するとそれを非常にうまく表現できるようになるのである。文系読者の場合、中学高校の数学を完全に忘れてしまっている方が多いと思うので、念のためここで行列の演算規則について復習しておこう。普通の行列演算の教科書を開くと、まず第1ページ目にある一番基本的な演算規則はというパターンで、左が2行2列の場合、右が3行3列の場合である。左の2行2列の場合について言うと、この式の右辺には右端に「x、y」という値が縦に2つ並んで置かれている。cx+dy」という値に変換され、それが式の右辺に縦に2つ並んで表示される、という形で演算規則が定められていることになる。右図の3行3列の場合も同様で、ここでは演算の流れがわかりやすいように一番上の行だけが書かれているが、その流れは図に矢印で示したように、右端に縦に並んだxとyをそれぞれ行列内部のaとbにかけて、最後にそれを合計する形をとっている。これだけでは抽象的でわかりにくいかもしれないが、しかし先ほどの月の動きの話にこれを使うと、ずばり先ほどの過程が表現されることになるのである。(なお三体問題の場合は天体が3個なので、3行3列の方を使う。)そこでそれを見ていくと、われわれの場合、まず天体の現在位置データを上の図のxやyの位置に書き込むという形になり、xが月、yが地球、zが太陽の現在位置データということになる。ここで行列の中身の成分(a,b,c.dなど)として考えるのは、普通の数ではない。ここが発想のミソなのだが、それはいわゆる「演算子」である。これは一種のブラックボックスのようなものだと考えればよく、簡単に言えば、その演算子というものに天体の位置(数値)を右からかけてやると、その数値が箱に入力されて、先ほどの矢印の長さを表示してくれる、という仕掛けだと思えばよい。演算子aに月の位置データxを右からかけてやると、先ほどのベクトル�@が表示されるというわけである。それらの演算子を行列の一番上の行に3つ並べてやると、行列の演算規則が先ほどの過程を非常に良く再現してくれるのである。この場合、まず図の点線の矢印のように、それぞれの天体の位置情報が行列内部の各演算子に入力され、それによって各演算子は先ほどの矢印�@、�A、�Bの長さを表示する。次に先ほどの行列の演算規則に従って、実線の矢印のようにこの3つの値が合計されて、それが左辺の一番上の値として表示される。この場合の「足し算」とは、ベクトルの足し算のことを意味しており、そのためここでは要するに先ほどの3本の矢印を、合成ベクトルの要領で足し合わせたものだ、ということになる。して得られたものは、まさに先ほどの、月の1時間の移動を示すベクトルそのものであることがわかるだろう。少なくとも形式的には、こういう形でその状況をほぼ完全に表現できているわけである。(ただ細かいことを言うと、われわれが本当に欲しいのは「月の1時間後の位置」なのだが、今求まったものは、正確に言えば単にその1時間の移動距離に過ぎない。それを求めるのは簡単で、月の現在位置はすでにわかっていて入力されているのだから、その現在位置にこの1時間の移動距離を足してやれば、それが月の1時間後の位置である。それを表示することは、演算子のどれか1個を改良するだけで可能となり、この場合には、月の位置データが入力される「a」の演算子に機能を追加して、本来表示する�@のベクトルを、すでに入力されている月の位置データに足した形で表示するようにしてやればよい。それに�Aと�Bの移動距離を足してやれば、1時間後の月の位置そのものが表示されることになる。)そして1行目で月の位置が表示されるのと並行して、2行目と3行目でも残りの2つの天体(地球、太陽)について、全く同じ格好で表示が行われるため、全体から眺めると、この行列を1回かけることで、3つの天体の1時間後の位置が式の左辺に縦に3つ並んだ形で示されるのである。ここでその1時間後の位置データに、同じ行列を左からもう1回かければ、2時間後の位置が求まる。それを何度も繰り返してn回かけていくことで、どんな先の未来位置でも求めていくことができることになり、そこでこの特殊な行列を「作用マトリックス」と呼ぼうというわけである。人工知能が扱うべき全ての問題がこれで表現できるまたこれは天体だけでなく、一般化すれば社会などの動きも同じ要領で表現でき、文系の読者にはむしろその例の方がわかりやすいかもしれない。その場合、社会の中の職業集団というものを全部リストアップして、それを先ほどのx、y、z・・・のように縦にずらりと並べて書いてやる。これは、それらの職種に属する人々の現在の状態データを意味している。これに先ほどと同様に、左から行列(作用マトリックス)を1回かけてやると、それらの1日後の状態が求まるというわけだが、この場合その行列の各成分が意味するものは、各職業が他の職業に対して及ぼしている「相互作用」である。この話については「物理数学の直観的方法」でも述べられていて、そこでは職業集団の例としてパン屋と鍛冶屋が採り上げられている。この両者が相手に対してどういう相互作用を与えているかは、例えば鍛冶屋はパン屋に対して、パンを焼く窯の金具を供給しているだろうし、逆にパン屋は鍛冶屋に対して食料のパンを供給している。これらの内容が、各職業間の「相互作用」として作用マトリックスの成分を構成しているわけである。以上は大まかな説明なので、細かい疑問点については「物理数学の直観的方法」を参照されたいが、とにかくこのようにすることで、基本的には天体であれ社会であれ人体であれ、原理的にはこの世界のあらゆるものの動きを、このような形式で表現できることになる。それは言葉を換えれば、今後人工知能が扱っていく問題が、事実上全てこういう形で表現できるということである。このツールを使うと何がわかるのかではこのように表現することで一体何が可能になるのだろうか。実はこの段階では、まだ単に天体や社会の動きをこのような形で表現したということに過ぎず、別にそれによって劇的に問題が解けるようになるわけでもない。この場合むしろ大きいのは、「この宇宙のあらゆるものが原理的にはこういう形で表現できる」という哲学的な意義である。いうと、もしそうだとすれば、一般的な行列演算の基本法則はそこでも必ず成り立つはずだ、ということになるからである。実際これまで数学の世界では行列に関しては、非常に基本的なものから高度なものまで多くの演算法則が知られており、もしそれらの法則を世の中の全てのことにそのまま適用することができるとなれば、それだけでも今まで隠されていた巨大な事実をあぶり出すことが可能になるのである。述べられていることである。人類文明は近代以降「世界はばらばらにパーツに分解できる」というデカルト的な還元主義を基礎として、全てのものを設計してきた。最近になって、どうもこれはどこかおかしいのではないか、との疑問があちこちで囁かれるようになってきている。今まではたとえそういう疑問があっても、それを数学的に証明することができず、そのためそのもやもやした疑問はその都度いつも論理的には却下され、「何となくおかしい」という文学的な話以上のものに発展することができなかった。ところが驚くべきことに、その疑問に対する根本的な答えがこれによって数学的に証明できるようになるのである。実は今まで大きな盲点だったのだが、それは次のような行列演算の規則から簡単にわかるのであり、一般に例えば次の図の左辺のように行列内部を分野Aと分野Bに細分化し、それを個別にn乗した場合と、右辺のように全体をn乗した場合では、通常は一致しないということが、行列演算の基本的な法則として良く知られている。ところがもし宇宙の全てが基本的に作用マトリックスで表現しうるとすれば、あらゆる物事がこの法則に従わなければならないことになる。この事実は重大で、それはこの宇宙の根本原理そのものが「部分の総和が全体に一致しない」ということが基本となって成り立っている、という哲学的なメッセージとして解釈しうるわけである。実は今までこのことが300年にわたって巨大な盲点に居座り続けていたため、デカルト的還元主義がどこかおかしいということがわかっていても、それを証明する方法が見つからず、その牙城を突き崩すことができなかったのである。ここで興味深いのは、行列の演算規則では例外的にこの等式が成り立つ場合が存在することである。それはこの場合、もしこの行列のAとBの部分を除いた残りの部分が全てゼロ成分なら、その時に限り、両者は一致するのである。実は太陽系の問題などはまさにそうなのだが、逆に言えば過去にデカルト的な分割がうまく行った場合というのは、そのようにもともと最初からその部分の相互作用が存在せず、そこがゼロ成分となっているような、特殊な系だけだったということが判明するのである。大体において一般に上のようにゼロ成分が多いほど、問題は扱い易くなる。実際に詳しく調べてみると、うまく解けた問題というのは、後の図1-2-8のように斜め1列を残して他の全部がきれいにゼロ成分になるよう変形できている場合なのである。三体問題がなぜ解けなかったのかも、これによって直観的に明らかにすることができる。ここでは詳しい話は省くが、実は三体問題の場合、もともと問題自体がどうやってもそういう形に変形できないという性質を備えており、それゆえにこの問題は解くことができなかったのである。そこで作用マトリックスの思想では、これをもう一歩進めて、人間が「問題を解く」ということ自体をこの考え方で捉え直し、それを「作用マトリックスをうまく変形してゼロ成分の多い形に書き直す」ことだと解釈する。ここでは詳細は省くが、とにかくそれができるかできないかで、問題が解けるか否かを判定できることになり、三体問題が解けないこともそうやって直観的に明らかにできるのである。「演算回数を数える」ことでわかる人工知能問題の本質このように作用マトリックスという一見単純なツールを使うことで、非常に巨大な問題が盲点から根本的にクリヤーになっていくことに驚かれた読者も多いと思う。このツールは人工知能の問題においても巨大な威力を発揮し、上とは少し使い方をすることで、今までは到底手に負えなかったような課題も簡単に扱えるようになる。われわれの今の議論の場合、演算回数を数える、つまり「このツールで行列のn乗計算を行う際に一体、何回の足し算掛け算が必要になるか」ということに注目すると、以前から重要問題として注目していることが驚くほどクリヤーに見えてくるのである。先ほどの話でも、社会などの未来の状態を求めるには作用マトリックスを何度も繰り返しかければよく、それをn回かけることでn秒後の状態を求まるということになっていたが、要するにその際に何回の演算が必要かを数えるのである。読者がもし実際に行列計算をやった経験があればわかると思うが、一般にサイズの大きな行列を何回もかけていく際には、大変に面倒な計算を行わねばならない。3乗、4乗という具合に、n乗のnの値が大きくなるほど、足し算掛け算の回数がだんだん増えて、ノートまるまる1ページを使っても計算がはみ出るほどになってしまうものである。ところが行列の性質によっては、それよりかなり少ない手数でn乗計算ができる場合がある。良い例が先ほどの、デカルト的分割ができる場合で、一般にこのように行列内部にゼロ成分が多く含まれていると、計算の手数を相当に減らすことができるのである。その効率が良くなる場合というのが、次のAのように斜め一列に成分が並んだパターンである。これは「対角行列」と呼ばれるが、こういう形の行列は、いちいち全体をn乗計算せずとも、斜め一列の成分それぞれを別個にn乗するという形で、非常に少ない手間でn乗計算ができてしまうのである。その詳細については後にあらためて詳しく述べるが、一般に数学では行列をこういう対角行列に変形することを「対角化」と呼んでいて、そのように変形する方法も、行列の性質が十分良い場合にはちゃんと確立されている。対角行列の場合以外にももう一つ、図のBのように左下半分が全てゼロという「上三角行列」のパターンの場合も、対角行列の場合ほどではないにせよ、計算の手間は大幅に減らすことが可能となる。浮かび上がる重大な事実そしてそれらの計算の手間を比較してみると、ここで重大なことが判明するのである。それは、確かにいずれの場合もn乗の回数を増やすにつれてその手数数は増えていくのだが、先ほどの前者のようにまともに馬鹿正直に計算を行わねばならない場合、その手間数は幾何級数的に増大していくということである。いう場合には、演算回数が指数関数的なカーブを描いて爆発的に増加してしまうのであり、そのためn乗を無限にした極限では、手間の数は「数えられない無限=非可算無限回」になってしまうのである。ところが後者のAやBのような対角行列や上三角行列のパターンの場合、そのn乗計算の手間は大幅に減らせるため、たとえnを無限大にした時でさえも、それは「数えられる無限=可算無限回」で収まるのである。多くの読者は既に予想がつくと思うが、コンピューターや人工知能の力技による虱潰しの演算というものは、基本的に前者の世界に属しているのである。それらの詳しいことは後にもう一度述べるが、こうしてみると読者はまさに先ほどからの話の核心部分がここで現れているということがおわかりかと思う。要するに人工知能と人間がそれぞれ問題の答えにたどり着くまでのプロセスを眺めた時、もし人工知能が前者のパターンであるのに対して、人間の直観力が後者のパターンだったとすれば、もうそれだけで、本書全体での最も重要な命題の答えがほぼ与えられることになるからである。そのため読者はもし今後の議論で、数学の部分の話が何を言っているのかよくわからず筋を見失ってしまった時には、とにかく本稿での話全体が大筋でこのことを巡って展開されているのだ、ということさえ覚えておけば、議論そのものにはついていけるはずである。人間とコンピューターのそれぞれの営みそしてこのビジョンをもう少し推し進めると、人間と人工知能の関係性もあらためて明確に見えてくる。基本的に言って、この世界そのものを大きな作用マトリックスで表現した場合、もともとその内部は、基本的に先ほどのゼロ成分の多い対角行列や上三角行列のようなパターンできれいになる部分と、そうでない部分が混在しているのである。今までの人間の数学者とコンピューターの関係性を振り返ると、両者のうちのきれいにできる部分は人間が担当し、残ったきれいにできない部分はコンピューターの力技が担当する、という一種の分担作業を行っていたと言えるだろう。AやBのようにきれいにすることを意味している。そのためもしあらゆる作用マトリックスがそういう形にきれいにできるなら、人間の数学者があらゆる問題を解いてしまったはずだが、現実には三体問題のように解けない問題が結構多かった。それらはもともときれいにできない部分に属する問題だったのだが、20世紀に入って登場したコンピューターが、そこを担当するようになった。要するにまず人間の数学者が紙と鉛筆で前者の部分をきれいに対角化し、問題を解けるところまで解いた後、残った後者の部分をコンピューターが数値計算という力技で引き受け、両者が互いに足りないところを分担していたのである。従来はコンピューターの能力がまだ貧弱だったので、コンピューター側としても人間の数学者がそういう下ごしらえを担当してくれることは不可欠だった。現在ではコンピューターのパワーが桁違いに向上し、全部を力技で行っても大して変わらない、という状況になりつつあるように見える。人工知能の問題はある意味でこの話の延長である。このビジョンに従うと、人工知能の発達した将来では、今まで人間が行っていた部分をだんだん減らして、全体をまるごと力技でn乗計算するという方法に移行する、ということになるだろう。ところがそのように人間の行っていた部分が消滅するとなると「コンピューターの演算の手間数が非可算無限個になって、宇宙の終わりまでかかっても計算ができない」という問題が、あらためて表面化する恐れが出てくるのである。紙と鉛筆で解けない問題はコンピューターでも完全には解けないところでこれは特に理系の読者に聞きたいのだが、今まで読者の多くは一種の常識として、人間が紙と鉛筆で解けない問題はコンピューターにぶち込んでしまえば全部解決できる、と思っていたのではあるまいか。ところが先ほどの話を良く見ると、実はそこにはその常識を覆す内容が含まれていたのである。それというのも先ほどの話からすると「人間が解けない問題」とは、要するに作用マトリックスを対角化できない場合である。コンピューターがその問題を人間にかわって引き受ける場合、今度はn乗計算の手間数が非可算無限個になるという別の障害が現れるので、完全な答えは宇宙の終わりまでかかっても求められないことになる。少々意外だが、人間が紙と鉛筆で解くことができない問題というのは、実は無限の能力をもつコンピューターでも近似値しか求められず、完全制覇ができないという点においては、両者の達成度には大差はないことが明らかになるのである。実を言うと筆者自身、作用マトリックスで三体問題について調べるまでは、従来の常識のようにコンピューターの数値計算が万能で、究極的にはそちらが優位に立つ、という思考パターンからなかなか抜けられなかった。この意外なビジョンが頭に入ったことで、人工知能の問題に関してもこれと同じ考え方が適用できるのではないか、という思考の道が開けてきたのである。その場合、人間の直観力と人工知能の関係がちょうど先ほどの両者の関係に相当するわけで、その際にもし人間の直観力が何らかの形で、上の場合と同様の対角行列や上三角行列と似たパターンの構造をもっていたとすれば、両者の力関係は一変することになる。先ほどの図1−2−10では、人間の数学者はきれいにできる部分だけを扱っていて、力技の部分からは手を引いていたが、人間の天才的直観力の場合は、むしろ上の右図のように、人工知能が扱っている領域も含めた全体を(ただし大まかにではあるが)こういう形で捉えているのではないか、と想像される。それはともかく、もしそうだったとすれば、人工知能の側はたとえ将来無限に発達を遂げたとしても、扱う問題のレベルが上がってしまうと演算の手間数が幾何級数的に増大して、非可算無限個になるという壁を克服できないのに対し、人間の直観力ではそういうことが起こらない。その場合には、両者の共同作業において、究極的には人間の天才による直観力が支配的な役割を占め続ける可能性が出てくることになり、真性シンギュラリティの問題で最終的にどちらが勝利するかを大きく左右するわけである。そのため後の第2部では、これが「無限に発達した人工知能との対決」に数学的な決着をつける上で、重要な判定メソッドの役割を果たすことになる。人間の直観力を何らかの形でモデル化したとき、たとえそのモデルが何か別の数学的ツールで表現されていたとしても、その内部での式同士の相互依存関係などに注目して、一旦その大まかな構造だけを作用マトリックスを使って表現してみるのである。それを表現した場合のパターンが、(対角行列までは行かないとしても)少なくとも先ほどのような上三角行列型になっていたとすれば、その時にはたとえ人工知能の演算速度や能力が無限大に達していたとしても、人間の直観力がそれに対抗しうるということが判定できるわけである。今までは、人工知能が無限に発達した状態を扱うことは難しすぎてお手上げだったのだが、上で述べた方法論はそれを簡単に判定できるという点で画期的なものだと言える。そのため第2部ではこれがその判定のための最重要ツールとして使われることになり、とりあえずそのことだけでも覚えておいていただきたい。数学者とコンピューターを同時に視野に入れることの決定的意義それはともかく、上のビジョンの顕著な特徴は、「人間の数学者が問題を解けるか」という話と「コンピューターの力技で問題を解けるか」という話が、一枚の絵でまとめて扱われているという点である。実は従来はこの二つの話は全く別の学問に属しており、そのため「人工知能が無限に発達した場合」を本格的に議論することもできなかったのである。後者の話はいわゆる計算機数学に属していて、そこには「計算量の理論」というものがあり、コンピューターの世界での単なる力技ではどんな限界が生じるかについては、その理論によってある程度論じることが可能だった。その後者の部分で人工知能やコンピューターの限界が生じたとしても、ひょっとすると将来的には、もう一方の前者の部分で人間の数学者がその問題に別の攻略法を見出し、新しいアルゴリズムを編み出すことで、その壁が突破されてしまうことが無いとは言えない。ところが前者は純粋数学の「解析学」で扱われていて、両者の学問の間にほとんど連携がない。そのためどちらから行っても話の一部が両者のギャップに残ってしまって議論を詰め切れず、今までは「人工知能が無限に発達した場合」を確実に論じることができなかったのである。人工知能が自己進化を始めた未来の議論もできるまた人間の数学者とコンピューターの中間に、両者を仲介するものとして生まれるのがアルゴリズムだが、そのアルゴリズムもやはりこのメソッドで扱って、先ほどの大きな作用マトリックスの中に組み込んでしまうことができる。アルゴリズムのフローチャートの矢印を、一種の相互作用の矢印と見なせば、その構造も一種の小さな作用マトリックスの形で表現でき、アルゴリズムの限界もやはり同様に示すことが可能になるからである。先ほどの「並列処理」の話にしても、この方法論自体が「問題を分割して扱えるか否か」ということに決定的に依存しており、それができない場所ではアルゴリズム自体を作れないことは容易にわかる。この並列処理の話は、将来量子コンピューターが出現した時にも重要になるはずだが、この場合に限らず、アルゴリズムというものの本質が問題を単純化・簡略化することで成り立っている以上、その限界は作用マトリックスでかなりの程度わかってしまうのである。実はこれもわれわれの議論にとっては非常に重要なことである。それというのもわれわれの議論では「人工知能がほぼ無限に発達した状態」として、人工知能が自分でアルゴリズムやプログラムを作るようになっている時代のことも考慮する必要があったからである。人工知能が将来どんなアルゴリズムを作って自己進化を遂げていくか、ということまでを視野に入れる必要があるのだが、今までのばらばらな学問ではそれは到底不可能だった。このように、数学者が担ってきた作業、計算機の能力、アルゴリズムの全てが1個の視野に入ることで、たとえ無限に発達した人工知能がどんな自己プログラミング能力を身に着けようと、今やわれわれはその限界を総合的に見定めることができるのである。このように作用マトリックスという、三体問題などの根本原理から出発したツールを使うことで、われわれはついに「真性シンギュラリティ」の問題に本格的にメスを入れられる手段を手に入れたのと言えるのである。行列のn乗計算に要する手間数を具体的に数えると・・・では以下にあらためて、上で行った話をもう少し詳しく見てみよう。「二つの無限」の話だが、これについては別稿でもう一度詳しく述べるので、ここでは結果だけをもう一度おさらいしておこう。以下の話では、要するに問題に現れる無限大が「数えられる無限」かそうでないかの区別ができさえすればよいので、それを手っ取り早く理解したければこう覚えればよい。普通に「nを無限大にする」とだけ書いてあったとしたなら、そのnは自然数を指していると考えてまず間違いなく、その時にはたとえ「n→∞」としても、それは数えられる「可算無限」の範囲内に収まると思って良い。ところがその同じnが「2n」のように指数関数の肩の上に乗ってしまうと、それは幾何級数的に増大してしまって、n→∞とした時に「非可算無限」が現れてしまうのであり、以下の議論では要するにそのことだけ覚えておけばよいのである。行列をn回かけていく(つまり作用マトリックスを使って1秒後、2秒後・・・n秒後の状態を求める)際に、一体何回の演算=足し算や掛け算が必要になるかに関して、それがどちらになるかが決定的な鍵を握ることになるわけである。ところで細かいことで話が前後して恐縮だが、先ほどの「行列をn回かければn時間後の位置が求まる」という話の時は、いちいち1回づつ行列をかけていく恰好で話をしていた。最初の天体位置データに1回行列をかけると1時間後の位置が求まるが、それに再びもう一回行列をかけるとさらに1時間後の位置データが求まる、ということを逐一繰り返す面倒な手順をとっていたのである。一般に行列演算の規則ではその手順はもう少しスマートに簡略化できる。この場合、最初にあらかじめ行列だけをまとめてn回かけたものを求めておいて、その「行列のn乗」に最初の時点の位置データx、yをかけてやるだけでも、全く同じようにn時間後の位置データを求めることができるのである。要するにこの方法だと、n時間後を求めるために必要となる計算の手間数は、単純に作用マトリックスをn乗する際の手間数を数えるだけでよいことになるわけである。そこで面倒な理屈をこねるより、具体的に行列を2乗、3乗していく場合の手間の数を見た方が手っ取り早い。そこで早速最も簡単な2行2列の場合でそれを見ていこう。最初は普通の行列(対角行列でも上三角行列でもない)の場合で、これを2乗する際には一般に次のようになる。続いてもう一度かけて3乗すると、以下のようになる。これを見るだけでも、2乗、3乗していくと各成分それぞれの中で項の個数が多くなっていくため、計算の手間がどんどん増えていっていることがわかるだろう。今の場合だと、行列を1回かけるごとに、各成分を構成する項の個数は2倍、2倍と幾何級数的に増えていることが見て取れる(これは3行3列の場合だと3倍、3倍という形になる)。この項の個数が、n乗の際の演算回数を決める中心的な役割を果たしているのである。要するにこれを見ると、一般にm行m列の行列をn乗する場合、単純に言ってmn回の演算が必要になることがわかる。これはnに関して指数関数になっているので、nを大きくするに従って演算の手間が幾何級数的に増大することが、容易に確認できるわけである。それに対して対角行列の場合はどうなるだろうか。次のような行列の場合、それを2乗、3乗したものが次のようになって、演算の手間が大幅に減ることは、計算すればすぐわかる。そんなに演算回数を減らせることの理由は、行列の中にゼロ成分が多いことにあり、計算の途中で各項の中に1個でもゼロ成分が混じっていると、その項はゼロになって消えてくれるからである。ここで行われている掛け算の回数を見ると、行列全体を2乗、3乗していく際に、各成分ごとの掛け算の回数は1回づつしか増えていない。この場合にはnを大きくしてもその回数は算術級数的にしか増加しないわけで、質的に全く違ったものとなってしまっていることがわかる。先ほど出てきた「上三角行列」つまり上右半分だけを残して下左半分が全部ゼロ、というパターンの場合についても、一応簡単に見ておこう。この場合も3行3列の場合について図示するが、ただこれは先ほどの二つのケースとは違って各成分ごとに手間の数が異なるので、結論を一言できれいに表現することが難しい。三角形の一番下の頂点位置にある成分を見ると、これは行列全体をn乗しても(ちょうど対角行列の時と同様に)単純にn回だけの手間で値を求めることができている。同じ回数のものが斜め一列に並んでおり、その右上隣の斜めの列に移動すると、一段増えている。それは右上に行くほど多くなり、一番右上の成分が手間が最も多くなる。全体が階段状の増加になっているので話がかなり面倒だが、ただそれでもこれが何となく算術級数数レベルに収まりそうだ、という感じはするのではあるまいか。実際それはその通りなのであって、そもそも一番手間数が少ない列のものは対角行列の時と同じn回である。階段状に多くなっているものにしても、詳しく見ると、実は行列を1回かけるごとに、自分より少ない段数のものを足し合わせる格好になっている。階段を上がっている感覚に近い。(ちょっとわかりにくいが、これは当たらずといえども遠からずで、たかだかその程度で収まっている。)そして先ほどの無限大の判定基準によれば、これらはnが肩に乗っておらず、指数関数にはなっていないので、基本的には自然数と同じ可算無限個の範疇に収まるというわけである。上三角型行列はこの観点からする限り、対角行列と同じ仲間であるといって良く、n乗の際の手間数の増大は基本的には算術級数の範疇に収まることになる。これは後の話で重要になるが、多少面倒なので、結論だけを覚えておけば十分だろう。射程に入った最重要命題ここまで来れば、読者はこの論文全体の最大の目標となっている命題、つまり「問題のレベルを上げていくと、人工知能にかかる負担は幾何級数的に増大していくが、人間の直観力にかかる負担は算術級数的にしか増大しない」のうち、その前半部分がほぼ射程に入っていることを、ご納得いただけたと思う。上の命題の「問題のレベルを上げていく」という部分がまだ少し抽象的なので、ここをもう少し詰めておこう。具体的に言うと、この場合の「レベル上昇」としては二通りの意味のものを考えることができる。一つは、問題を時間的にもっと先まで眺める、という意味でのレベル上昇である。今までは1か月先までの結果を求めればよかったが、それをもっと先の2か月後まで時間を延長して眺めるということである。これは作用マトリックスでは、それを何度もかけていく回数を増やすことに相当し、単純にn乗のnの値を大きくしていくことだと考えればよい。一つは、問題をもっと広い視野から眺めて、今よりも多数の要素で問題を捉え直す、という意味でのレベル上昇である。今まで一つの狭い分野の中だけで問題を考えていたが、もっとカメラを引いて他の分野までを視野に入れ、そこの要素の影響も加味して問題を全体から大きく眺めるということである。それは作用マトリックスでは、系の構成要素を増やすことに相当し、そのサイズを一回り大きなものに拡大することを意味している。そのどちらを行う場合でも、その演算の手間は指数関数的に増大していくのである。これをもう少し詳しく眺めてみよう。前者の時間的な延長の場合は簡単で、これが指数関数的な増大を伴うことはすぐにわかる。先ほど見たように、全部を馬鹿正直に計算する一般の場合だと、全体をn乗する際の演算の手間は、例えば3行3列の場合では、細かい係数などを省くと大きく言って3n回である。時間的にもっと先まで見るために行列をかける回数を増やすと、このnがどんどん大きくなるので、演算の手間の回数「3n回」は、指数関数的に増大していくことになる。後者の意味でのレベル上昇、つまり作用マトリックスのサイズを拡大する場合だが、具体的に眺めるために、例えば今までは問題を構成要素3個だけで見ていたが、別の分野も視野に入れて構成要素6個で問題を捉え直す、という状況を考えよう。前者つまり構成要素3個の場合(作用マトリックスのサイズは3×3)では、n乗する際の演算の手間は3n回だが、構成要素6個(サイズは6×6)の時には、手間は6n回に増えることになる。同じ時刻(nの値が同じ)での両者の手間数を比較してみると、構成要素を2倍に拡大した時には6n回/3n回で手間数は2n倍に増えていることになり、ここでも指数関数が現れている。これに限らず一般に作用マトリックスでは、構成要素や成分の個数を増やしていくと手間数が指数関数的に増大しがちで、特にコンピューターや人工知能のように問題を力技で虱潰しにする場合、問題の拡大に伴って手間数が幾何級数的に増大していく、というのがむしろ普通なのである。ここまで来れば、もう先ほどの命題のうち、少なくとも人工知能に関連した前半部分は、ほとんど証明されていることがわかるだろう。この部分のまとめではこの1−2の内容をここで整理しておこう。・まず、確かに以前の1−1では、たとえ人工知能が将来無限に発達しても、演算に「数えられない無限」の手間が必要になってしまうと能力限界に突き当たることまではわかったが、どういう場合にそうなるかは結構難しい話だった。ここで作用マトリックスというツールを使うと、それが全部見えてしまう。・もともとこのツールは三体問題が解けないことを示すために導入されたもので、原理的には宇宙のすべてをそれで表現でき、そのため人工知能がこれから扱うべき全ての問題がこの形式で表現できる。この場合には、その行列のn乗を求める際に、一体何回の掛け算足し算が必要になるかを数え上げて、それがどちらの無限になるかを眺めれば、その判別が出来てしまう。・この場合、もし作用マトリックスの形が図1−2−9の右のような対角行列や上三角行列のパターンになっていれば、n乗を無限回にしてもその演算の手間は「数えられる無限回」に収まるが、図の左のようにそうでない一般の場合は「数えられない無限回」になる。人工知能の場合、後者の形のものを力技で扱うという局面が一般的だと考えられるのである。・またこのツールを使えば、並列処理などのアルゴリズムが作れるかを判別することもできるため、人工知能が自分でプログラムを作って自己進化を遂げ始めた状態までをも視野に収められる。このビジョンによって「人工知能が無限に進歩した場合」での限界を明確に詰めるという、これまでのツールでは不可能だったことが可能になる。・そのようにして眺めると、人工知能側は、扱う問題のレベルが上がっていくと、演算の手間が幾何級数的に増大して、原理的に非可算無限個になるということがほぼ推論でき、ついに「クラークの法則」を超えての議論が可能となるのである。・このビジョンは続く第2部にもヒントを与え、要するにもし人間の直観力の世界がもう一方のきれいなパターンになっていたとすれば、たとえ人工知能が無限に発達しても人間の天才の直観力は(少なくとも数学的には)それに勝ちうる可能性を持ち続けることになる。そのため第2部では、人間の直観力の構造が図1−2−11のようなパターンを示すかどうかが、最大の本質として重要な関心を持って扱われることになる。そのためもうこのまま第2部に進んでしまっても良いのだが、このツールを使うと人工知能の問題をもう少し詰めることができ、例えば具体的にどういう場所を対戦場所に選ぶと人工知能の弱点が暴露されるのか、ということなどもよくわかる。そこでもう少し詳しくそのあたりを知りたい読者のために、次の1−3でもう少し寄り道をしておこう。いう議論は面倒な読者は、次の1−3も最後のまとめにざっと目を通すだけで、本命の第2部に進んでしまっても差し支えない。