モンテカルロ法
Monte Carlo Method ・ もんてかるろほう
乱数で大量に試して答えを近似する手法。解けない計算を実験に変える
概要
モンテカルロ法は、乱数を使って大量の「試行」を計算機上で繰り返し、その結果の平均や割合から答えを近似する手法の総称です。数式を解析的に解く代わりに、偶然にまかせた実験を何万回も行って答えを「測る」— 計算を実験に置き換える発想の転換がこの手法の核心です。名前は、考案者の一人ウラムの叔父が通ったモナコのカジノ街モンテカルロに由来します。
威力を発揮するのは、厳密に解く方法が存在しない、あるいは計算量的に手に負えない問題です。複雑な形の領域の面積や高次元の積分、多数の偶然が絡むシステムの挙動、将来のシナリオが無数に分岐する金融商品の価格 — こうした「式では解けないが、1回の試行をシミュレートすることはできる」問題なら、試行を積み重ねるだけで答えに迫れます。
答えを保証しているのは大数の法則です。試行結果の平均は、試行回数を増やすほど求めたい真の値(期待値)に収束します。つまりモンテカルロ法とは、大数の法則を「収束を待つ側」から「収束を利用する側」へひっくり返した、確率論の実用化そのものです。
なぜ生まれたか
直接のきっかけは、1940年代の核兵器開発(マンハッタン計画とその後継)でした。原子炉や爆弾の設計には「中性子が物質の中をどう飛び、どれだけ連鎖反応を起こすか」の計算が必要ですが、中性子は衝突のたびに確率的に散乱・吸収・分裂し、その積み重ねを記述する方程式は解析的に解けませんでした。ロスアラモス研究所のスタニスワフ・ウラムは、病床でソリティアの成功確率を考えていたときに「式で解けないなら、何百回も配って数えればよい」と着想し、これをフォン・ノイマンが当時完成しつつあった電子計算機ENIACでの中性子計算に結びつけます。個々の中性子の運命を乱数でサイコロを振るように決め、何千個も追跡して集計する — 機密プロジェクトのコードネームとして付けられた「モンテカルロ」の名とともに、1949年に手法として公表されました。
つまりモンテカルロ法は、「決定論的に解けない問題」と「大量の反復計算をこなせる計算機」の出会いから生まれました。計算機の性能向上とともに適用範囲は物理から金融、統計、機械学習へと広がり続けており、「20世紀の科学計算に最も影響を与えたアルゴリズム」の一つに数えられています。
詳細
定番の例 — 乱数で円周率を測る
仕組みを体感できる定番の例が円周率の推定です。1辺1の正方形の中に4分の1円を描き、正方形内に一様な乱数で点を打ちまくります。各点が円の内側に入るかは距離の計算だけで判定でき、内側に入る確率は面積比 π/4 に等しい。したがって「内側に入った点の割合 × 4」が円周率の近似になります。
下の部品で実際に点を打ってみると、推定値が円周率へゆっくり収束していく様子と、その揺れ方を体感できます。
「点を打つ」を押すと、正方形に一様乱数で点が打たれます。円の内側に入った割合 × 4 が円周率の推定値です。
この例には手法の骨格がすべて詰まっています。求めたい量(面積)を「ランダムな試行の期待値」として言い換え、乱数で試行を大量に生成し、平均(割合)で期待値を推定する。この3段の枠組みは、対象が中性子でも株価でも同じです。
精度の理屈 — 収束は遅いが次元に負けない
推定の誤差はどれくらいか。中心極限定理により、試行回数nの推定値の誤差はおおむねnの平方根に反比例して縮みます。つまり精度を1桁上げるには試行を100倍にする必要があり、収束としてはかなり遅い部類です。それでもモンテカルロ法が使われ続ける最大の理由は、この誤差の縮み方が問題の次元に依存しないことです。格子状に区切って積分を数値計算する方法は、次元が増えると必要な格子点数が爆発します(次元の呪い)が、モンテカルロ法の誤差はいつでも「平方根の速さ」のまま。変数が数十・数百ある高次元の積分では、事実上の唯一の選択肢になります。
もう1つの実務的な利点は、誤差を推定値自身から見積もれることです。試行結果の標準偏差から標準誤差を計算すれば、「推定値 ±これくらい」という信頼区間を答えに添えられます。答えだけでなく答えの信頼度まで同じ実験から出てくるのは、統計的手法ならではの強みです。
応用の広がり
応用は分野を横断しています。金融では、将来の資産価格のシナリオを何万通りも生成してデリバティブの価格やリスク指標(VaR)を見積もります。統計学では、複雑な事後分布から標本を得るマルコフ連鎖モンテカルロ法(MCMC)がベイズの定理に基づく推論の実用化を支えました。仮説検定の文脈でも、帰無仮説のもとでのデータをシミュレートして分布を作る並べ替え検定やブートストラップ法(標本からの再抽出で推定量のばらつきを測る手法)が広く使われます。ほかにも、囲碁AIのモンテカルロ木探索、レンダリング(光の経路の確率的追跡)、プロジェクトの工期・コストのリスク分析など、「不確実さの絡む計算」のあるところには大抵この手法がいます。
実務の勘所と落とし穴
第一の勘所は乱数の品質と再現性です。質の悪い擬似乱数の規則性は推定を静かに歪めるため、実績ある生成器を使い、シードを記録して結果を再現可能にしておくのが基本です。第二に、収束の遅さへの対処として、問題の構造を利用して分散を減らす「分散低減法」(重要な領域を重点的にサンプリングする重点サンプリングなど)が実務では大きな差を生みます。落とし穴として最大のものはモデル化の誤りです。モンテカルロ法は「仮定した確率分布のもとでの答え」を精密に出すだけで、仮定そのものは検証してくれません。裾の重さを過小評価した分布で何億回シミュレートしても、現実の暴落の確率は出てこない — 乱数の試行回数は仮定の正しさを1ミリも補強しない、という点を忘れないことが、この強力な手法と付き合う最重要の心得です。
