進化・学習・意識を、ひとつの勾配で読む
前回、私たちは「地形をぼかす」解像度 \(\sigma\) を手に入れ、進化戦略(ES)が微分できない地形の上でも勾配を推定できることを見ました。今回はその視点を、思いきり引いて眺めます ── 一匹の生きものではなく、地球上の全生命を、一斉に走る一つの計算として。無数の個体が、少しずつ違う遺伝子 \(\theta+\varepsilon_i\) を持って生まれ、環境の中で試され、多くは死に、一部が子を残す。この「生と死の総体」が、実は第4回で書いたES勾配推定量 \(\hat g\) を、そっくりそのまま計算しているのです。個体はサンプル、生死は損失評価、繁殖は更新。同じ処理を別々のノイズで大量に並列実行するその姿は、GPUのSPMD(単一命令・多数データ)そのものです。生物圏とは、一台の巨大な無微分最適化器 ── いわば地球規模のGPUなのだ、という主張を、式と図で確かめましょう。
「生命が計算をしている」と言うと比喩に聞こえます。しかし第1回から積み上げてきた道具立てでは、これは比喩ではなく構造の一致として言えます。学習とは、パラメータ \(\theta\) を動かして損失 \(L(\theta)\) を下げること(第1回)。進化では、\(L\) は適応度の符号を反転したものでした ── 生き延びて子を残せば損失は小さく、そうでなければ大きい。
問題は、自然界に「損失を微分してくれる神さま」がいないことです。DNA を偏微分する装置など、どこにもない。にもかかわらず、種は世代を越えて着実に地形を下っていく。どうやって? 答えが第4回の進化戦略でした ── 微分せず、たくさん試して、結果で重みづけて平均する。今回は、その「たくさん試す」の主語を集団そのものに置き換えます。
この式の各記号を、生物学の言葉に翻訳してみましょう。驚くほど素直に対応します。
| ES/最適化の言葉 | 生物圏の言葉 | 意味 |
|---|---|---|
| サンプル \(\theta+\varepsilon_i\) | 個体 \(i\) | 種の設計図をわずかに変異させた一つの試作 |
| 損失評価 \(L(\theta+\varepsilon_i)\) | 個体の生死(適応度評価) | 環境が下す採点。生き延びて子を残せたか |
| パラメータ更新 \(\theta\leftarrow\theta-\eta\,\hat g\) | 繁殖(次世代の構成) | うまくいった変異の方向へ、種の中身がずれる |
| 最適化される \(\theta\) | 種(そのもの) | 調整され続ける当のパラメータ束=遺伝子プール |
| 1回の更新ステップ | 1世代 | 評価と更新の1サイクル |
| 並列スレッド数 \(N\) | 集団サイズ | 同時に走る「生きて試される」処理の本数 |
一匹一匹の個体は、同じ「生まれて・環境で試されて・採点される」というただ一つの処理を、別々の変異 \(\varepsilon_i\) を入力として実行しているだけです。これはコンピュータの用語でいうSPMD(Single Program, Multiple Data ── 単一プログラム・多数データ)、まさにGPUが数千のコアで同じカーネルを別々のデータに走らせるあの並列モデルと同型です。生物圏を一台の計算機だと見立てれば、個体はスレッド、世代はクロック、種はレジスタに載ったパラメータ。地球は、この上なく巨大で、この上なく並列な一台のGPUなのです。
対応表の心臓は「集団全体が一つの勾配推定量を計算している」という点です。もう一度、式を見ます。
右辺は「各個体の変異方向 \(\varepsilon_i\) を、その個体の採点 \(L\) で重みづけて足し合わせ、頭数 \(N\) で割る」という操作です。うまくいった変異(損失が小さい方向)ほど次世代に多く残り、その平均として、種を下り坂へ押す方向 \(\hat g\) が浮かび上がる。誰も微分していないのに、集団全体の集計が勾配を代弁しているのです。個体たちは互いを知りません。ただ同じ環境で並列に生き、死ぬ。その総和が \(\hat g\) になる ── これがSPMDの集計(リダクション)にあたります。
ここで「集団サイズ \(N\) が大きいほど有利」という、進化のもっとも素朴な事実が、統計の言葉で正確に説明できます。\(\hat g\) は、独立同分布な \(N\) 本の項
の標本平均にほかなりません。独立な確率変数の平均の分散は、1個ぶんの分散を頭数で割ったもの ── これは統計の基本定理です。したがって、
期待値(=推定したい真の勾配)は \(N\) によらず同じままで、ばらつきだけが \(1/N\) で縮む。つまり大集団ほど、種は勾配をより正確に見積もり、より速く・より安定に地形を下れる。「数の多さ」は、そのまま「勾配推定器としての精度」なのです。小さな集団は少数のサンプルで勾配を当てずっぽうに推定するので、世代ごとの向きがふらつく(漂流・遺伝的浮動)。大きな集団は滑らかに、迷いなく坂を下る。
分散は 1/N。標準偏差(ばらつき)はその平方根なので 1/√N
$$\mathrm{sd}(\hat g)=\sqrt{\mathrm{Var}(\hat g)}\;\propto\;\frac{1}{\sqrt N}$$N を 4 から 64 へ(16倍)増やすと
$$\frac{\mathrm{sd}_{N=64}}{\mathrm{sd}_{N=4}}=\sqrt{\frac{4}{64}}=\sqrt{\frac{1}{16}}=\frac14$$たとえば \(N=4\) で勾配推定の標準偏差が \(0.40\) だったとすると、同じ \(\theta,\ \sigma\) のまま \(N=64\) にすれば \(0.40\times\tfrac14=0.10\) まで下がる ── ばらつきが4分の1。ただし精度を2倍にするには \(N\) を4倍にせねばならず(\(\mathrm{sd}\propto1/\sqrt N\))、収穫は逓減します。次の図で、この \(1/\sqrt N\) の効き方を目で確かめましょう。
下は2次元の損失地形(明るいほど損失が小さい=適応度が高い)。白い点が個体(=並列スレッド、色は適応度:緑ほど良く赤ほど悪い)、赤い大きな点が集団の重心=種のパラメータ \(\theta\) です。「1世代進める」で1ステップ、「自動」で連続実行。スライダー \(N\) を小さくすると重心の動きがガタつき(高分散)、大きくすると滑らかに前進します(低分散)。同じ地形・同じ \(\sigma\) で \(N=4\) と \(N=64\) を見比べてください。
\(N=4\) では、重心が世代ごとに向きを変え、行き過ぎたり戻ったり ── わずか4サンプルの平均では勾配がまるで定まらないからです。これが小集団の宿命(浮動)。\(N=64\) や \(128\) にすると、重心はほとんど一直線に谷底へ滑り込みます。読み取り欄の「ばらつき」の数値が、\(N\) を4倍するごとにおよそ半分になる(\(1/\sqrt N\))ことも確かめてください。
ここに、今回のいちばん美しい逆説があります。自然は微分できない。しかし積分はできる。
微分とは、地形の一点で無限に細かい極限をとって傾きを解析的に求める操作です。それには地形の数式を知り、それを操れる主体が要る ── 自然界にそんな計算者はいません。ところが \(\hat g\) の式をよく見ると、これは期待値(=積分)のモンテカルロ近似です。真に推定しているのは、変異全体にわたる平均
つまり自然は、鋭い一点の傾きを計算するのではなく、変異という名の膨大なサンプルを地形にばらまき、その生死を集計する ── 解析的微分の代わりに、地球規模の並列サンプリングで積分を実行し、そこから勾配を取り出している。無数の生と死のひとつひとつが、この積分の被積分点なのです。前回「ぼかせば微分できない地形も下れる」と言いましたが、そのぼかしの正体は、この惑星規模のモンテカルロ積分だった。個体の死は無駄ではなく、勾配を推定するための一評価だったのです ── これが元論文のいう「生物圏はGPUである」の核心です。
この比喩は、どこまでが厳密な一致で、どこからが理想化か。正直に裁きます。
| 問い | 答え | 判決 |
|---|---|---|
| ES推定量 \(\hat g\) は、選択(生死の集計)が計算している量と同じ構造か | 同じ。損失で重みづけた変異の平均、という骨格は厳密に一致する | 構造は一致 |
| 大集団は、より低分散の勾配推定になるか | なる。\(\mathrm{Var}(\hat g)\propto 1/N\) がそのまま効く | 成り立つ |
| 現実の進化は、この式の通りに動いているか | 厳密には違う。目的は動き、選択は正確な報酬重み平均ではなく、変異も等方ガウスでなく、中央の更新者もいない | 理想化 |
「生物圏=一台のES最適化器/GPU」は、構造的にとても強い比喩です ── ES推定量と自然選択の対応(損失で重みづけた変異の平均)は、こじつけではなく本物の同型だからです。しかし、そのまま現実の進化そのものだと言えば理想化が過ぎます。第一に、地形は固定されていない:共進化で獲物が速くなれば捕食者の適応度地形も動く、絶えず揺れる標的です。第二に、選択は厳密には報酬重み平均ではなく、適応度に比例した再サンプリングで、これはむしろ自然勾配(フィッシャー情報で整えた勾配)に近い。第三に、突然変異は等方ガウスではない:ゲノム上の位置で率が違い、方向にも偏りがある。第四に、\(\theta\leftarrow\theta-\eta\hat g\) のような中央集権的な一括更新は存在しない:更新は無数の局所的な生死に分散していて、全体を束ねる主体はいない。
モデルとしての強さ(骨格は本物)と限界(細部は理想化)を、両方とも正直に。そして次回、この並列計算はタダではないという話に進みます ── 一つの評価にも、一つの死にも、エネルギーが要る。計算に物理的コストがある以上(ランダウアーの原理)、生命は必然的に効率よく計算する競争になるのです。
個体=サンプル \(\theta+\varepsilon_i\)、生死=損失評価、繁殖=更新、種=パラメータ \(\theta\)、世代=1ステップ、集団サイズ=並列スレッド数 \(N\)(STEP 01–02)。集団全体は、変異を採点で重みづけて平均するES勾配推定量 \(\hat g=\tfrac{1}{N\sigma^2}\sum_i L(\theta+\varepsilon_i)\varepsilon_i\) を、同じ処理を別データで走らせるSPMD(GPU)として計算している(STEP 03)。\(\hat g\) は標本平均だから \(\mathrm{Var}(\hat g)\propto 1/N\):大集団ほど低分散=良い推定器で、\(N\) を16倍にすればばらつきは1/4(STEP 04–05)。そして自然は微分できないが、無数の生死を集計する=積分はできる:平滑化地形 \(L*\phi_\sigma\) の勾配を、地球規模のモンテカルロ積分で得ている(STEP 06)。骨格は厳密な同型、細部は理想化(STEP 07)。
個体の死は無駄ではなかった。それは勾配を推定するための一評価であり、生物圏という一台のGPUの、一本のスレッドの終了だった。次回は、この並列計算の電気代を問います。
印刷 / PDF 化:⌘+P(Windows は Ctrl+P)。画面では「集団サイズ N」を変えて「自動」を押すと、個体(点)が散布され、種の重心が坂を下ります。N=4 と N=64 でふらつき方を見比べ、「ばらつき」の数値が 1/√N で縮むことを確かめてください。「答えを見る」で解答が開きます。