見出し画像

進化計算時代への序曲

統合科学者ネクシャリストという考え方がある。平たく言えば、理系・文系の分け隔てなくさまざまな専門分野を統合的に扱う学者である。ちなみにこの言葉自体は「宇宙船ビーグル号」に登場する架空の概念であり、現実には存在しない。

ただ、人類が生み出した偉人、天才と呼ばれる科学者の中で、特に傑出した人々は、その発言の真意が理解されるまでに途方もなく長い時間がかかることがある。

そうした発言はしばしば「予言」または「予想」と呼ばれ、場合によっては何世代にもわたってその真意を確かめようと後の人類が挑戦する。それが実際にはたわごとなのか、それとも真理なのか、それは誰にもわからない。

20年以上前にミンスキーが「心の社会」を書き、ペンローズが「皇帝の新しい心」を書いた。

どちらも登場した当時は「すごい本が出た」と言われたが、この「すごい」は「凄そうなことが書いてあるが、何が書いてあるかわからない」という「すごい」である。

ここ数ヶ月のAI業界のトレンドは全世界的に緩やかに「進化計算」に変化している。
大量の電力とデータを使ってLLMを訓練する時代はもはや牧歌的なものになりつつある。

Togheter AIのMixture of Agentsはオープンで無料のLLMの(とても素朴な)組み合わせだけでGPT-4oを上回る性能をマークし、Sakana AIは既存のモデルのレイヤーの組み合わせを「進化的に」変えるだけで同等の性能を達成する。大規模言語モデルLLMの時代から小規模言語モデルSLMの時代へと急激に変化しようという動きもある。

最初は全くのたわごとに思えたBitNetもSLM用のものとしては目覚ましい成果をあげつつある。これを裏付けるように微分可能性は必要条件ではなくなり、もっと単純で効果的な方法として進化計算が受け入れられつつある。

進化計算が恐ろしいのはこれが全くの戯言たわごとに思えるにもかかわらず、実際には恐ろしく強力であるということだ。

進化計算を否定する/したい人々の主張は僕にも理解できる。
「そんなものは表層的に生物の性質を模倣し、サイコロを振ってるだけじゃないか」

でもそれはニューラルネットを過去半世紀にわたって否定し続けて来た人々と同じ論理的誤謬に陥っていることを忘れてはならない。そもそもニューラルネットそのものが「表層的に生物の性質を模倣し、サイコロを振ってるだけ」だからだ。

これが本当にただの子供の思いつきではなく、実際的に効果があるものだと確信を持つには、僕だって軽く30年以上かかっている。小学生の時に最初のニューラルネットを書いて以来、「どうしてうまくいくのか」ということについて絶えず疑問が付きまとっていた。

今、僕がニューラルネットを理解するのではなく、その実効性を「受け入れられる」のは、単に長きに渡る経験から、「それがどうしてそうなるのか理解するのを諦めたとしても、太陽が東からのぼり、西に沈むのと同じように、ニューラルネットは学習し、ほぼ正しく推論するから」という諦観があるに過ぎない。

進化計算も同様である。
進化計算に「実効性がある」ことはかなり前から知られていた。知られていたが進化計算がうまくいくかどうかは運次第と考えられていた。

ただ、実際には進化計算は運次第と考えるにはあまりにも効果が高過ぎる。これは進化計算を繰り返した経験のある人にしかわからない感覚だろう。

誇大妄想家の怠惰な希望的観測と思われていたニューラルネットが急激に重要度を増したのは、コンピュータの計算速度が上がり(これにGPUが寄与している)、誰でもニューラルネットの効果を手軽に確かめることができるようになったからだ。

ニューラルネットに確かな効果があると十分知られていたほんの10年前(2013年)ですら、「ニューラルネットはいずれもっとマシでスマートな(数理解析的な)方法によって駆逐される」と信じられていた。

都合よく2013年までのことを忘れてはならない。
今、おそらく進化計算が同じレベルにある。

進化計算もまた、生物にとって重要な一つの要素、すなわち遺伝という性質を形式上模倣したものである。

遺伝子の組み合わせに対して淘汰圧をかけ、淘汰された結果生まれた生物群を交配し、突然変異させ、また淘汰圧をかける。これを繰り返すとそれをプログラミングした人間自身にも予測不能な最適解に辿り着く。

これは単なる「事実」であって実験的にも確かめられる。
これが長い間コンピュターサイエンスのメインストリームから無視されてきたのは、この理由を数理解析的に説明できないからだ。

ただ、遺伝子という言葉を、単に「結果に原因を与えるパラメータセット」と考えたらどうだろう。仮にそれを変換行列と呼ぶことにしよう。

つまり、進化計算(の一つ、遺伝的アルゴリズム)とは、以下のように言い換えることかできる。

入力ベクトルを複数の変換行列に乗じた結果、得られた出力ベクトルから、最も望ましい結果を産んだ上位の変換行列同士をランダムに組み合わせ合わせ、合成して新しい行列群を作る。これを繰り返すと、最終的に理想的な変換行列が得られる

ちなみにニューラルネットワークを変換行列と呼ぶことにして、同じように説明してみる。

入力ベクトルを単独の変換行列に乗じた結果、得られた出力ベクトルと望ましい結果ベクトルの差分に基づいて、変換行列の内部状態を遡及的に変更し、新しい行列を作る。これを繰り返すと、最終的に理想的な変換行列が得られる

こう書いて比較すると、進化計算とニューラルネットワークの"学習"はほとんど変わらない。単に最適化の方法が違うだけだ。

むしろ進化計算の方が、複数の仮説ハイポセシスを同時並行的に検証できるのだからより有利とさえ言える。単独の行列を分解して計算するよりも、複数の行列を並行して計算する方が、遥かに単純ではないか。

進化計算はこの「並列性」という性質によって特に小さめのニューラルネットワークの最適化に対して効果を発揮すると思われていたが、Mixture of Agentsの発見などを考えると、大掛かりな仕掛けを使って大規模言語モデルを学習させるよりも、小規模言語モデルの進化計算をさせた方が遥かに短時間で高い効果を得ることができるはずだ。

というのも、人類が欲しいものは結局、大規模言語モデル並みの性能を持った小規模言語モデルだからだ。

それがいかに高速に移動できたとしても、誰もがサターンV型ロケットを欲しいと思うわけではない。短距離の移動なら、自転車で十分だし、少し長距離の移動でも、自動車で十分だ。飛行機がどうしても必要なのは、よほどの場合だけである。

飛行機は高価だが、必要な時に必要なだけ使えばいい。わざわざ所有する必要はない。毎日乗るものでもない。

大規模言語モデルは飛行機や宇宙ロケットのようなもので、大抵の人が日常的に必要なのは自転車か自動車か、せいぜいバスやタクシーのようなもので、そのためにはハードウェアの小型化と低コスト化、低消費電力化、そしてソフトウェアの小型化と高効率化は共進化していく。

現在、進化計算に用いられている生物学的知識はワトソンとクリックが70年以上前に発見した素朴な知識に基づいているが、すぐに量子生物学の応用が必要とされることが来るだろう。

このような背景を踏まえると、ミンスキーが「心の社会」理論を考え始めたのは1970年代にすでにこういう時代が到来することの予想がなされていたと思える。さらにはペンローズが1994年に書いた「皇帝の新しい心」の中で披露される様々なアイデアはこれからの進化計算に貪欲に取り込まれていくだろう。

重要なのは、「よくわからないけどやってみる」という態度である。「できることがわかっているからやってみる」のでは科学は進歩しない。

「できるかもしれないし、できないかもしれないけど、とりあえずやってみる」ことができるようになったのは、実験装置が安くなったからだ。

進化計算にはまだまだ試されていない可能性がたくさんある。
おそらく量子アルゴリズムも、人間がコツコツ考えるよりも進化計算的に求めた方が遥かに短期間にマシなものがみつかるだろう。