Chapter Content
えーと、チャプター3ね。「自然は作り手」っていうのかな、うん。
本当の洗練さってなんだろうね、みたいな話なんだけど。自然っていうのは、難しい問題を解決するための最高の例だって言うんだよね。自然の解決策って、有機物とか無機物の集まりで、自然界の難しい課題を解決するもの、なんだって。
例えば、川は水の分配とか、浸食の防止、栄養の運搬、生息地の創造、洪水の調節とかをするし、山は水の捕獲、生物多様性、気候の調節、炭素の固定とかをするって。ビーバーは、木の伐採、ダムと巣の建設、食料の貯蔵、縄張りの防衛、家族の構成とかをするんだよね。へえー。
空を飛ぶ鳥を見てると、自分も飛びたくなるし、イルカが水の中を滑るのを見てると、自分もそうしたいと思うじゃない?人間の体って、ほとんどの動物と比べると、自然環境で生き残るのには適してないんだよね。毛皮もないし、身を守る爪もないし、獲物を倒すための大きな歯もない。でも、私たちには、協力して、アイデアを物理的な道具に変えるすごい能力があるんだよね。
自然を観察して、その一部を再現する能力っていうのは、人間であることの核心部分なんだって。魚のひれを見れば、表面積と推進力の関係に気づくし、川の流れを見れば、自分たちで水の分配や洪水の調節をしようとする。山を見れば、エネルギー消費を抑えるために、流線型の形をした高い建造物を作ろうとしたり、気候とか人から身を守るために何かを作ろうとしたりするんだよね。景観設計とか土木工学の技術は、ビーバーのダムの構造とか機能を模倣してるし、服とか織物は、動物の暖かさとか撥水性を再現しようとしてるんだよね。
人間は昔から、自然の解決策を参考にして、生き残るために使うものを作ってきたんだよね。でも、人間が作るものは、自然の解決策ほど洗練されてないんだって。例えば、自動車はチーターよりも速いかって?まあ、速さの定義によるよね。直線的な動きだったら、自動車の方が速いけど、そんな環境は人間が作ったもので、自動車がほとんどの環境で動けないのを考慮したものなんだよね。自動車は、ほとんどの自然環境では役に立たない。ジャングルを駆け抜けたりできないし、砂漠ではタイヤが滑っちゃう。タイヤを変えたり、仕組みを改良したりすれば、まあ、ちょっとはマシになるかもしれないけど、自然の解決策のように動けないんだよね。
チーターは、角を曲がったり、急旋回したり、急加速したり、変化する状況下でバランスを保ったりできる。ほとんどすべての点で、チーターの方が自動車よりも優れてるんだよね。これは、人間が作ったものすべてに当てはまることで、見た目は洗練されてるけど、自然が作り出すものには遠く及ばない。人間が作ったものが優れて見えるのは、人工的な環境の中だけなんだよね。車は道路があって初めて速いと言えるし、飛行機は広い空と直行ルートがあって初めて効率的と言えるし、薬は副作用を知らなければ「標的を絞っている」って言えるんだよね。自然の洗練さは、人間が作るものをはるかに超えてるってことだね。
人間は、解決策にたくさんの部品を追加してきたけど、橋とか旅客機とかマイクロチップは、いまだに完全に決定論的で、決まったルールとか設計に基づいて動作するんだよね。発明品のすべての部品は、相互作用が分かってて、原因と結果の道筋が見える。自動車の内燃機関は、どんなに高度で複雑でも、動作は完全に決定されていて、予測可能。もちろん、エラーで予測不能になることもあるけど、それは外部からの要因によるもので、システム自体は、完全に決定された、予測可能な方法で出力するんだよね。
人間の進歩って、驚くようなイノベーションを生み出すよりも、自分たちの限られた能力に合わせて世界を変えることの方が多かったんだって。人間が作ったものと、自然が作ったものの違いを正直に見ると、人間は本当の洗練さを作り出せてないことがわかる。都市とか市場とかAI以外は、ほとんどの解決策に、複雑さを示す特徴がないんだよね。だから、本当に難しい問題を解決するものではない。人間が作ったものは、それらに合わせて作った狭い世界の中でだけ、洗練されてると見なされるんだって。
ロケットエンジンを見ると、「複雑だ」って言うけど、それは、今まで作ってきたものと比較しての話なんだよね。現代のロケットエンジンは、昔の火薬ロケットよりも部品や接続が多いけど、ロケットとイカの推進システムを比べてみよう。どちらも流体中で推進する装置だけど、イカはロケットエンジニアが夢見るような能力を持ってるんだよね。イカは、速度や機動性を非常に細かく制御できるし、短時間の急加速も長時間の移動も、エネルギーを急速に消耗することなくできる。イカの神経系は、周囲の環境を感知して、リアルタイムで推進力を調整できるし、推進システムの構造は、再生して維持されるんだよね。
ロケットが「優れている」のは、ただ一つのことをするためだけなんだよね。ロケットの燃料とか部品は、使用中に消耗して劣化する。まあ、イカは月には行けないけど、それはイカが進化してきた目的ではないんだよね(もしそうだったら、ロケットよりもはるかに効果的だろうね)。
自然の解決策を見ると、人間の発明品の中にあるような複雑さは見られない。これは、自然の解決策の中にある数えきれないほどの細部が、複雑さによってならされてるからなんだって。ロケットエンジンは、複雑なものではないし、どんなに部品を追加しても、入力(燃料とかナビゲーションコマンド)が出力(推力とか空力安定性)に決定論的に対応している限り、複雑になることはないんだよね。
本当に洗練されたものっていうのは、難しい問題を解決するために必要なもので、それは、詳細な複雑さではなくて、湿っていてヌメヌメした洗練さなんだって。物事が複雑に見えるとき、それは実際には単純なんだよね。なぜなら、その仕組みが見えるから。複雑なものは、複雑なのであって、複雑ではないんだって。
人間が発明したものは、その出力を作り出す根本的な原因と、目に見える因果関係の経路を持ってるから、本当の洗練さの例ではないんだよね。何か問題が起きたら、デバッグできるし、その仕組みについて、凝った図とか数式を作れる。これは洗練さではなくて、明白な単純さなんだって。複雑さはデバッグできないから。
自然はどうやって、そんな極端なレベルの洗練さを作り出せるんだろう?人間が作り出すものよりも、はるかに多くの部品とか接続を持つ解決策を、どうやって作り出すんだろう?どうやって、高度に適応性のあるチーターとか、非常に有能なイカを作り出すんだろう?
そのヒントになるものはすでに見てきたよね。都市とかAIは、設計がない状態で、どのように構成を作り出すのかを見たし、人間が作ったものでも、複雑さの特徴にたどり着けるのは、システムの外に出て、物事が自然に収束するのを許容した場合だけだってことを、見た。実は、そういうアプローチこそが、自然がずっとやってきたことなんだって。
自然のレシピ
本当に洗練されたものっていうのは、自然のレシピ、つまり自然選択の材料を使ってしかたどり着けない。自然選択っていうのは、変動、反復、選択という3つの主要な部分を持つプロセス。変動っていうのは、個体群内の個体間に存在する、身体的および行動的特徴の違いのこと。反復っていうのは、個体群内の変動が、環境ストレスにさらされるプロセスの、繰り返されるサイクル(世代)のこと。選択っていうのは、個体群内のある特徴が、その環境によって有利になったり不利になったりして、時間の経過とともに、その特徴の頻度が変化することなんだよね。
自然選択における変動は、さまざまな原因から生じる。遺伝学的には、突然変異とか、組み換え、遺伝子流動、遺伝的浮動などが原因だけど、生息地とか気候、食料の入手可能性、その他の生態学的要因も、個体群間の行動とか形態、生理機能の変動につながる可能性がある。交配システムとか、社会階層、コミュニケーション方法、さまざまな集団力学も、行動とか特性を形作るし、エピジェネティックなメカニズム、つまり、重要な発達期に経験する環境要因も、永続的な影響を与える可能性がある。まあ、変動の原因はたくさんあるってことだね。
でも、たくさんの種類があるだけでは十分じゃない。価値がないと証明された変動、つまり、生存に関わるさまざまな課題を十分に解決できないものを、ふるいにかけるために、多くの反復が必要なんだよね。自然界における反復は、世代を通じて可能になる。個体群が時間の経過とともに生み出す子孫の連続した段階としてね。永遠に生きる個体はいない。この生命の限界によって、単一の生物は、その系統を継続するために子孫を産む必要があるんだよね。
変動と反復は、多くの選択肢と、多くの試みがあることを保証するために協力する。でも、自然のレシピには、もう一つ重要な材料があって、それが選択なんだよね。何が「良い」のかを定義する何かが必要。それは、生存するために満たさなければならない一連の基準である選択圧という形で現れる。もし、新しい世代が、環境に適合しない変化をもたらした場合、彼らは生き残る可能性が低くなるし、その逆もまた然りなんだよね。
自然のレシピ、つまり変動、反復、選択について最も重要なことは、それが外側から働くということなんだよね。自然が作り出す解決策の、内部の詳細を意図的に組み合わせて作ったりはしない。必要なものの本質は、反復的な変化と収束という自然の継続的なプロセスから自動的に生まれるんだって。
DNAは、自動的な解決策の作成という概念に反するって言う人もいるかもしれない。結局のところ、DNAは、すべての生物の成長、発達、機能、生殖に使われる遺伝子の指示として参照されることが多いじゃない?DNAは、生命に必要な有機物の形成に必要なタンパク質を組み立てるためのコードを保存してる。でも、DNA自体が自然選択の結果なんだよね。それはプロセスの始まりではなくて、より単純な分子が、生命を維持するために必要な情報を複製して保存するのに優れていたからこそ、その分子構造にたどり着いたんだって。DNAは、数十億年かけて、化学進化のプロセスを経て出現した。今日見られるDNAは、非常に長いプロセスの、ある瞬間に過ぎないんだよね。
さらに、DNA自体は、人間が区切ったもの、つまり都合の良い定義なんだよね。これは、DNAが現実ではないという意味ではなくて、その孤立した構造に、私たちが非常に大きな重要性を置いているという意味。でも、その構造は、その役割を可能にする周囲の物理的文脈がなければ、何の意味も持たない。繰り返すけど、複雑さには根本的な原因はないんだよね。
自然選択は、外側から操作することが、本当に洗練されたものにたどり着く方法であることを教えてくれる。物事がどのように機能するのかについて、内部の知識を一切持たない状態で存在することで、自然選択は、物質と情報の混沌が、生き残るために必要なものに自然に構成されることを可能にするんだって。これが、難しい問題の解決策が作られる方法なんだよね。
だから、インテリジェント・デザインのような議論は失敗するんだよね。反証可能性がないからだけじゃなくて、複雑さは設計されるという前提から始まっているから。たとえ超自然的な存在であっても、複雑さは設計されると信じることは、そもそも複雑さがどのように機能するのかに適合しない。これは神の存在に対する反対ではなくて、複雑さの不適切な枠組みに対する反対で、多くの科学者も同じように罪を犯しているんだよね。自然は設計しない。そして、その本当の理由は、設計は決定論的な環境でしか機能しないから。もし神がいるとしたら、神は宇宙を決定論的な意味で設計したのではなく、自然が自動的に収束することを可能にする、高レベルの外部プロセスを設けたはずだ。そっちの方が、はるかに美しいアプローチだと思うな。
自然は常に私たちのミューズだった。私たちは常に自然からインスピレーションを得て、自然の解決策を模倣しようとしてきた。でも、ここにはもっと重要なメッセージがある。自然は、高度に柔軟でダイナミックな解決策、つまり、本当に難しい問題を解決する解決策を生み出すには、変動、反復、選択という外部プロセスだけが唯一の方法であることを示してくれているんだよね。これは、私たちが作ろうとしているシステムの外に出ること。これは、何かがどのように機能するのかを内部から理解することへの、絶対的な認識論的障壁を認めること。でも、もっと重要なのは、それが難しさとか不明瞭さの問題ではないということ。複雑なシステムにおける因果関係の欠如(因果関係の不透明性ではなく、欠如)は、程度の問題ではない。それは、問題解決の体制を切り替える、明確な移行なんだよね。
自然選択は生物学の文脈で語られることが多いけど、生物学だけに限定されるものではない。自然選択は、複雑さが達成され、進化する普遍的なプロセスなんだよね。システムに関係なく、それが人間が作ったシステムに見られるような単純な複雑さを超える何かを達成するためには、大規模なレベルの変動、反復、選択を活用して、本当に洗練されたものに収束する必要があるんだって。
自然選択は、自然版の試行錯誤なんだよね。自然は、演繹によって解決策にたどり着くわけではない。演繹だけでは、難しい問題の答えを生み出すことはできない。なぜなら、演繹は、複雑な可能性の空間の中で、特徴間に生じるトレードオフを予見できないから。複雑な状況の中で、無数の特徴がどのように相互作用するかを分析的に評価する方法はないんだよね。
3体問題から始まるカオスのパターンは、何かがどのように機能するかを正確に(数学的に、分析的に)知ることを不可能にし、この不確実性は、システム内の部品の数とともに指数関数的に増加する。物質の正しい配置を達成する唯一の方法は、内部の詳細に対して外部的に操作することなんだって。
自然のレシピは、詳細を特定のアレンジメントに合わせることではなくて、自動的にアレンジメントに着地することなんだよね。つまり、生き残ったものが正しい出力を計算するアレンジメント。これは、自然が何よりも計算であることを意味する。自然は、最も難しい問題に対する答えを計算する解決策を作り出す。そして、自然は、人間が作った機械とはまったく異なる方法でそれを行う。実際、自然を計算という観点から捉えることは、ほとんどの伝統的な科学的アプローチと比較して、自然を理解するための、はるかに知的に正直な方法なんだよね。それは、創発が真に何であるかを解明するための良い出発点にもなる。
自然を計算として捉える
自然を生物学的なレンズを通して見るだけが、唯一の選択肢ではない。計算のレンズを通して自然を見ることもできるんだよね。自然界のすべてのシステムは計算する。なぜなら、入力と出力、そしてその間のプロセスがあるから。山は、入力が風と雨である構造で、気候の調節とか炭素の固定などの出力に計算される。ビーバーは、入力が捕食者、食料、縄張り、気温変動、干ばつ、寄生虫である構造。これらはすべて、ビーバーの生存を可能にする出力、つまり、噛み砕き、食料の貯蔵、巣の建設につながる何かに変換される必要があるんだよね。
これは、無理やりなアナロジーではない。計算は、人間が作った機械に属するものではないんだよね。私たちは通常、計算という言葉を、計算を実行したり、データを処理したり、アルゴリズムを実行して結果を生成したりすることだと考えてる。でも実際には、計算は、アルゴリズムとか論理ゲートに依存しないんだよね。計算っていうのは、1つ以上の操作を通じて、入力情報を出力情報に変換すること。操作は、システムまたはプロセス内で結果を達成するために実行される単なるアクション。アクションは、動くものである必要すらない。アクションは、完全に静止していることによって、周囲のものが動くことによって実行できる。この相対的なアクションの概念は、山とか川床も計算することを意味するんだよね。活動の真っ只中にあって、無機物と有機物の両方が、物質、エネルギー、情報を新しいものに変換する。それが、自然の問題が解決される方法なんだよね。
これにより、計算の考え方が変わる。結局のところ、計算は、手順とかルール、一連のステップに従うことではないんだよね。客観的には、情報の変換についてなんだよね。このより良く、より究極的な定義により、計算をはるかに厳密な用語で表現できるようになり、計算が自然にもたらす普遍的な特性に光を当てることができる。それらの特性の中で最も重要なのは、手順についてではなくて、抽象化についてなんだよね。
チャプター1で、抽象化による進歩は普遍的な真理だと述べた。つまり、時間の経過とともに難しい問題を解決する可能性のあるプロセスは、内部の詳細を上位レベルの構造に抽象化することによって、そうしなければならないということ。これは、無生物にとっても、人間や私たちが作るものにとっても当てはまる。山とかビーバーが、物理的な抽象化で構成されていると考えるのは奇妙に思えるかもしれないけど、計算の観点から見ると、まさにそうなってるんだよね。山とかビーバーは、決定論的なステップのセットを使って出力を生成するオブジェクトではない。風と雨を気候調節に変換したり、縄張りを巣の建設に変換したりするのは、アルゴリズムではないんだよね。自然の解決策は、単純な因果関係の経路がない状態で、進化を通じて配置された、入力を出力に変換する物質の集まりなんだよね。
これにより、物理的な抽象化が、複雑なものの主要な計算構成要素になる。論理ゲートとかアルゴリズムではなくて、物理的な抽象化なんだよね。なぜなら、自然における計算は、すべての抽象化が行うこと、つまり、多くの可能な入力を、必要な少数の出力にマッピングする必要があるから。物理的な抽象化だけが、山とか川、チーターとかビーバーが生み出すものを生み出すことができるんだよね。
山は、遠くから見ると単純に見えるけど、無数の複雑な側面と洗練された特徴を持つ、信じられないほど複雑な構造なんだよね。傾斜、褶曲、断層のある層は、さまざまな地殻変動の副産物。山には、さまざまな岩石の種類が含まれていることが多くて、その歴史を通じて、さまざまな地質学的プロセスとか時期を表してる。実際、山は静的なオブジェクトではなくて、地殻プレートの境界上またはその近くに位置していることが多く、沈み込みとか、リフティング、大陸衝突などの、多くの複雑な相互作用につながる。山は、さまざまな形態の物理的、化学的、生物学的活動の影響を受ける。これらは、岩石を分解して、山とか周囲の景観を再形成し、難しい問題を解決するユニークな構造につながるんだよね。
自然を見ると、大規模な計算を見てることになる。従来のコンピューティングで見られるような計算ではなくて、複雑なオブジェクトだけが実行できる計算の種類。問題を解決するために情報を圧縮する物理的な抽象化の存在に、そのコア能力を置いている計算なんだよね。
内部プロセスと外部プロセス
自然のレシピである変動、反復、選択は、自然が問題に対する答えを計算する方法ではなくて、自然が問題に対する答えを計算する物理的な解決策を見つける方法なんだよね。これが、内部プロセスと外部プロセスの違い。自然選択は、問題を解決するために必要な内部に関心のない外部プロセス。もちろん、意識的な意味で関心がないと言ってるわけではなくて、自然のレシピは、それが作り出すオブジェクトの内部の詳細とは、最終的には切り離されたままであるということ。
内部プロセスは、必要な出力を生成するために、実際の計算を行うプロセス。ほとんどの人間が作ったオブジェクトでは、内部計算は意図的に設定されてる。これは、人類の歴史を通じて私たちが作成したほとんどすべてのものについて、発見は、設計によって紐付けられて計算を実現する部品を見つけるためだけに使用されることを意味する。しかし、複雑なものの場合、発見プロセスは、オブジェクトが機能する時点まで、つまりオブジェクトが使用可能になるまで使用される。従来のエンジニアリングは、設計を使用して計算構造(例えば、弾丸の発射を計算するためのライフル部品間の相互作用)を作成する必要があるのに対して、複雑さでは、計算構造が発見のみを通じて自動的に出現する。自然選択では、ソリューションが発見されるまでに、ソリューションはすでに組み立てられており、荒野で計算するために必要なすべての内部構造が備わっている。設計されたのではなく、発見されたんだよね。
同じ外部プロセスが、深層学習でも使用されているのを見たよね。深層学習は、出力を計算するための特定の内部の詳細を設計することではなくて、変動、反復、選択という外部プロセスを実装する足場をプログラミングすること。さまざまなデータ、数百万回の反復、最適化基準に対する選択により、深層学習は、本質的に自然選択の狭い再構築になる。だからこそ、深層学習は、エンジニアがそこに配置しなかった内部計算を実現できる。深層学習は、すべての真に複雑なソリューションが行うように、情報を圧縮する創発的な抽象化のおかげで機能する。深層学習は、作成しようとしているシステムの外に出て、必要な計算構造が自動的に発生するまで、物事が自然に収束できるようにする構築アプローチのおかげで可能になるんだって。
深層学習のようなテクノロジーを使用すると、人間は、自然に難しい問題を解決するものを構築することが何を意味するのかを理解し始めている。でも、さまざまな問題を解決する異なるプロセスを理解するだけでは十分ではない。複雑さがどのように機能するのかを理解し、創発とは何かを解明するためには、「難しい」が難しい問題にどこから来るのかも理解する必要があるんだよね。
ふう、長かったね。