
パーコレーションの相転移を実測する。占有率1.5ポイントの差で貫通確率が0%から100%に跳ぶ
正方形の格子があって、各マスがそれぞれ確率で「開いている」とする。開いたマス同士が隣り合っていればつながる。このとき、格子の上端から下端まで一続きにつながった経路は存在するか——という問題をパーコレーション(浸透)と呼ぶ。コーヒーの粉に湯が浸透するか、山火事が森を焼き抜けるか、噂がネットワークを貫通するか。全部この骨格を持っている。
面白いのはここからだ。理論によれば、2次元のサイトパーコレーションにはという臨界確率があり、がそれを下回れば(無限に大きい格子では)貫通する確率は0、上回れば1になるという。0.59と0.60の間に、「つながらない世界」と「つながる世界」を分ける崖が立っているというのだ。
確率がなめらかに変わるのに、結果が不連続に変わる。Grokkingの回で見た「何万ステップも何も起きず、あるとき突然わかる」のと同じで、連続に動かしているパラメータに対して観測量だけが跳ぶ。本当にそんなに急なのか。そして有限の格子でもその崖は見えるのか。numpyとscipyで実測してみた。
実験に使ったコードの全文はGitHubに置いています。
実験設計
やることは単純で、実装の中心は10行くらいしかない。
- の一様乱数場を作り、のマスを「占有」とする
scipy.ndimage.labelで4近傍の連結クラスタを一括検出する(絡まった2つのリングを分けた回と同じで、ここで効くのは距離ではなく連結性だ)- 最上行と最下行に共通のクラスタラベルがあれば「貫通」と判定する
これを占有率からまで0.005刻みで振り、格子サイズのそれぞれで貫通確率と最大クラスタサイズを測った(試行数はで1000回、で80回)。さらに各試行の乱数場に対して「初めて貫通する占有率」を二分探索で求めた。同じ乱数場ならを上げたとき占有マスは増える一方なので、貫通の境目は二分探索で precision まで詰められる。このの分布が、転移点の位置と転移の「鈍さ」をそのまま教えてくれる。
まず見てほしい: 貫通の瞬間
同じ乱数場でを少しずつ上げていったときの様子がこれだ。クラスタごとに色分けし、合体したクラスタは「先にできた芯」の色を引き継ぐようにしてある。上下を貫通したクラスタは黄色に光る。

では小さな島の群れだったものが、0.58あたりから雪崩のように合体を始め、この乱数場ではで画面を貫通した。ここで効いているのは「新しく置かれたマス」そのものではない。最後に足された0.5%のマスが、すでに育っていた大陸同士の橋になるのだ。
貫通前・臨界点・貫通後の風景を、大きめの格子()で並べるとこうなる。

臨界点の風景だけが質的に違う。下では「小さい島ばかり」、上では「ほぼ一色」なのに対し、臨界点ではあらゆるスケールのクラスタが同時に存在している。この「あらゆるスケール」は後でべき則として定量的に確かめる。
結果1: 格子が大きいほど転移は崖になる
貫通確率をに対してプロットした曲線群が、この実験の主結果だ。

の転移はなだらかで、でも3.8%の確率で貫通してしまうし、でも0.7%は貫通しない。ところがでは:
| 占有率 p | 0.585 | 0.590 | 0.595 | 0.600 |
|---|---|---|---|---|
| 貫通確率 (L=1024) | 0.000 | 0.125 | 0.787 | 1.000 |
占有率が0.585から0.600へわずか1.5ポイント動く間に、貫通確率は0%から100%へ跳んだ。80試行の全てが0.585では貫通せず、0.600では全てが貫通する。下段の最大クラスタも同じで、ではの時点で最大クラスタは全体の2.4%に過ぎないのに、0.60では41.7%が一つのクラスタになる。
転移の「鈍さ」がどう消えていくかは、の分布幅(四分位範囲)で測れる。

| L | 転移幅(IQR) | 貫通確率50%の占有率 |
|---|---|---|
| 64 | 0.0328 | 0.5919 |
| 128 | 0.0197 | 0.5924 |
| 256 | 0.0111 | 0.5924 |
| 512 | 0.0062 | 0.5918 |
| 1024 | 0.0033 | 0.5928 |
が64から1024へ16倍になると、転移幅は0.0328から0.0033へちょうど10分の1になった。両対数プロットの傾きは。理論では転移幅は相関長の指数を使ってで縮むはずで、傾きの符号と大きさはおおむね合っているが、少しずれた(これは後述する)。この縮み方はべき則なので、どこまで大きくしても幅は0にはならないが、確実に0へ向かう。「無限の格子でだけ、転移は本当の不連続になる」という教科書の記述が、崖が立ち上がっていく実測曲線として目の前に現れる。
結果2: 臨界点の実測値は 0.5925 ± 0.0004
貫通確率が50%になる占有率は、表の通りどのサイズでもほぼ動かず0.592前後にいる。有限サイズスケーリング()で無限大格子へ外挿すると:
理論値は誤差棒の中にきれいに収まった。1σ以内、ずれは0.0003。ちなみにの中央値をそのまま読むと0.59277で、理論値との差はわずか0.00002だった——ただしこれは誤差(±0.0003)より一桁小さい一致なので、正直に言えばまぐれである。乱数を振り直せばこの桁は動く。
結果3: べき則は臨界点でだけ成立する
臨界点のスナップショットで見えた「あらゆるスケールのクラスタが共存する」状態は、クラスタサイズ分布というべき則として現れるはずだ。スケールを変えても同じ構造が出てくるという点で、シェルピンスキーの三角形の次元を測った回と同じ自己相似性の話になる。の格子20枚でクラスタサイズ分布を測った(貫通クラスタは除外)。

- 臨界点(): 分布はサイズ5桁分にわたって直線に乗った。傾きの実測は(理論値は)。フィット残差はlogスケールでRMS 0.04と、ほぼ完全な直線だ
- 臨界未満(): を超えるクラスタが指数関数的に消える。同じ範囲でフィットすると残差は0.49と一桁大きく、直線には乗らない
- 臨界超過(): 巨大クラスタを除くと残りはの破片だけで、分布はで早々に折れ曲がる(残差1.11)
「特徴的なサイズ」が存在しないのは臨界点だけだった。臨界を外れると必ず「これより大きいクラスタはほぼ存在しない」という折れ曲がりのスケールが現れる。臨界点の直線は、大きさ1のクラスタから50万サイトの怪物まで、同じ一本の法則が支配していることを意味する。
正直に書いておくべきこと
- 転移幅のスケーリング指数が理論とずれた。 実測に対し理論は。のような小さい格子では補正項(corrections to scaling)が効くことが知られており、小さいの点が傾きを急にしている。より大きな格子だけでフィットし直すべきだが、今回の計算予算では止まり
- も理論値2.055より浅い。 これも有限サイズの影響で、でもフィット範囲の取り方で±0.05は動く。シェルピンスキーの次元測定のときと同じで、「べき指数の実測」はフィット範囲との交渉から逃れられない
- 貫通の定義に恣意性がある。 今回は「上下方向」だけを見た。左右も含める・両方向要求するなどの定義で、有限サイズでの曲線は少しずつずれる(無限大への外挿値は変わらない)
- のフィット傾きは2.05と、偶然理論値そっくりの数字が出た。 だが残差を見れば分布が曲がっているのは明白だ。傾きの数字だけ見て「べき則に乗っている」と判断してはいけない、という良い教訓だった
手を動かして意外だったこと
一番意外だったのは、有限サイズ効果が「位置」ではなくほぼ「幅」にだけ現れたことだ。実験前は「小さい格子では転移点自体が大きくずれて見えるのだろう」と思っていた。実際にはでも貫通確率50%の点は0.5919と、真の臨界点から0.001も離れていない。ずれていたのは点の位置ではなく分布の幅で、の個々の試行は0.55で貫通したり0.63まで貫通しなかったりと大暴れする。「平均的にはもう答えを知っているが、個々の答えは信用できない」という状態が、格子を大きくするにつれ「どの試行も同じ答えを返す」状態へ収束していく。
もうひとつは二分探索の威力だ。を細かく振って貫通確率をなぞる代わりに、各乱数場について「貫通が始まる正確な」を12回程度のクラスタ検出で特定できる。転移点の統計が欲しいなら、S字曲線を測るよりの分布を直接測る方が圧倒的に効率が良い。単調性があるところ、二分探索あり。
そして臨界点の風景の異様さは、図で見るまで想像していなかった。転移の下でも上でもない、その一点でだけ、システムは「どのスケールで見ても同じように込み入っている」状態になる。相関長が発散するとはこういう見た目なのかと腑に落ちた。
臨界性の話はネットワークにも当てはまる骨格なので、つい社会を重ねたくなる。個々のつながりが1つ2つ増えることは、ほとんどの場面では何も変えない。だが系が臨界点の近くにいるときだけ、その1つが大陸と大陸の橋になる。SNSで何かが突然「貫通」するのも、組織の空気がある日を境に変わるのも、変化した当日に大きな何かが起きたわけではないのだろう。ずっと手前から島は育っていて、最後の一手が橋になっただけだ。だとすれば、目に見える変化がない期間は「何も起きていない」期間ではない。
まとめ
- 2次元サイトパーコレーション(格子、4近傍)の貫通確率を〜で実測した
- 格子が大きいほど転移は急峻になる: では占有率0.585→0.600の1.5ポイントで貫通確率が0%→100%に跳んだ
- 転移幅はで縮み(理論は)、を16倍にすると幅は約1/10になった
- 無限大格子への外挿で。理論値0.59275と1σ以内で一致
- クラスタサイズ分布は臨界点でだけべき則に乗り(実測、理論2.055、5桁にわたり直線)、臨界を外れると特徴的スケールで折れ曲がる
- 有限サイズ効果は転移点の位置をほとんど動かさず、転移の「幅」として現れた——小さい系は答えを間違えるのではなく、答えがばらつく
このブログでは、機械学習の仕組みを実際にコードで実装して確かめた実験をテーマ別に整理しています(拡散モデル・Transformer・強化学習・多様体学習・過学習など)。


