モンテカルロ法の数学的定式化 ∗
杉 田 洋
大阪大学大学院理学研究科数学専攻
1 はじめに
モンテカルロ法が様々な分野で実際的成果を上げていることは認めても,多くの 真摯な研究者はモンテカルロ法に対して次のような根本的な疑念を持っている.
モンテカルロ法には乱数が必要である.しかしコンピュータプログラム では乱数を生成することはできない.そこで乱数の代わりに(コンピュー タプログラムによって生成される)疑似乱数を用いてモンテカルロ法を実 行するが,こうした便宜的方法は,当然,数学的正当性を持ち得ない.
じつは,この疑念はモンテカルロ法の直感的な解釈による素朴な思い込みから生じ た誤解に過ぎない.小論では,モンテカルロ法を数学的に適切に定式化することに よって,この疑念の解消を目指す.
乱数と疑似乱数という概念についてはすでに明確な定義が知られている.まず,
乱数という概念は1960年代にコルモゴロフ(Kolmogorov)らが“計算の複雑さ”とい う考えを用いて定義した([3, 6, 8]).そして疑似乱数という概念は1980年代に計算 機科学とくに暗号理論の文脈でブラム(Blum)らが定義した([1, 2, 18]).しかし残念 ながら,それらの定義は今までモンテカルロ法の理論と実践に活かされることはな かった.それはそれらの定義が不適切だったからではなく,むしろモンテカルロ法 それ自体に対する従来の捉え方が不適切だったからである.ここでは,それら乱数 や疑似乱数の定義を拠り所として,それらと理論的整合性を持つようなモンテカル ロ法の数学的定式化を提案する.
我々の定式化の下で結論として次のことが見えてくる.
モンテカルロ法には必ずしも乱数は必要でなく疑似乱数で十分かもしれ ない.実際,モンテカルロ積分の場合には,乱数と同じ働きをする疑似 乱数が存在し,大きすぎない規模のモンテカルロ積分においてすでに実 用化されている.
∗ver.20121122.小論は[14]の翻訳抜粋.
モンテカルロ積分とは,大数の法則を利用した数理統計的手法による数値積分法の ことである.モンテカルロ法の重要な応用の大部分はモンテカルロ積分であるから,
我々の結論にはとても大きな意味がある.
なお,小論は手短に説明することを念頭において書いたので,随所に数学的に厳 密でない記述がある.詳細は[14]を参照せよ.
2 概要
最初に概要を述べる.後の節でそれぞれの事項を掘り下げて説明する.
モンテカルロ法(Monte-Carlo method)とは,確率変数のサンプリングをコンピュー タを用いて行うことによって数学的問題を(主として数理統計学における意味で)数 値的に解く手法をいう.モンテカルロ法では,それぞれの具体的な問題に応じて確 率空間(Ω,F,P) —ここでは有限回の硬貨投げの確率空間
({0,1}L, 2{0,1}L, PL), L≥ 1,
とする—と,その上で定義された確率変数S:{0,1}L →Rを設定する.そして,一 つのω ∈ {0,1}Lを選んで Sの ωにおける値S(ω)を算出する.以下,これをサンプ
リング(sampling,標本抽出)と呼ぶ.
図1:Sの分布と一般的な値(概念図)
モンテカルロ法は,その名の由来のとおり,賭けの一種である.プレーヤー(以 下,アリスと呼ぶ)の目的はSの一般的な値—Sのとる値としてごくありふれた値,
例外的でない値—をサンプリングすることである(§3.1).アリスはSの例外的な 値をサンプリングしてしまうリスクを承知の上で自分の意思でωを選ぶ.彼女のリ スクは
A := {
ω ∈ {0,1}L S(ω)はSの例外的な値} の確率PL(A)でもって評価される.
Sが例外値をとることは滅多にないからPL(A) 1である.†1当然,アリスは自分 がSの一般的な値を手に入れることはほとんど確実だと思うだろう.Lが小さいと きは確かにそのとおりである.しかし,L 1 (§3.2の例題ではL= 108)の場合は 事情が異なる.その場合,アリスが一つのω ∈ {0,1}Lを選ぶときの具体的な方法が 問題となる.実際,ω ∈ {0,1}Lを指定するには,L= 108ともなればそれは約12MB のデータにもなるので,†2情報量の大きさからいってコンピュータを用いるよりない.
しかしこれだけの情報量のデータをキーボードから直接打ち込むのはあまりに膨大 な時間と労力がかかるので事実上不可能である.何らかの工夫が必要である.とこ ろが,じつはどのような工夫をしようとも,アリスが(膨大な時間と労力をかけずに) 自分の意志で選ぶことのできるω∈ {0,1}Lは非常に少数であり,従って特殊なもの に限られてしまう(§4).そのため,PL(A)1であったとしても,アリスがSの一 般的な値をほとんど確実に手に入れることができる,とはとてもいい切れないので ある.このことから,リスク評価PL(A)に実質的な意味を持たせるためには,{0,1}L の大部分を占める「アリスの意志では選ぶことのできないようなω」—そのような ωを乱数と呼ぶ—によるサンプリングが必要であると考えるのは自然である.†3
しかし一方,現実の問題で扱う S は何らかの意味のある量を表す確率変数であ り,任意の確率変数ではない.すなわち,アリスが自分の意志で選ぶことのできる ω ∈ {0,1}L は確かに特殊だが,Sも確率変数({0,1}L上の関数)全体の中ではきわめ て特殊なのである.もしかしたら,特殊なSなら特殊なωによって—つまり乱数 でなくても— 一般的な値をサンプリングすることができるかもしれない.それを 実現しようと企てるのが疑似乱数生成器である.
疑似乱数生成器とは短い{0,1}-列を長い{0,1}-列に引き伸ばす写像のことである.
たとえば疑似乱数生成器 g : {0,1}n → {0,1}L,n < L,を用いたモンテカルロ法で は,アリスは種と呼ばれる{0,1}-列ω0 ∈ {0,1}nを自分の意志で選ぶ.(ここで任意の ω0 ∈ {0,1}nをコンピュータのキーボードから人が容易に打ち込める程度にnは小さ い必要がある.)コンピュータはω0をもとに疑似乱数g(ω0) ∈ {0,1}Lを算出し,さ らにこれをSに代入してS(g(ω0))を出力する.
疑似乱数生成器 g を用いることによって,アリスは「S(g(ω0)) が S の一般的な 値であるかどうか」という別の新しい賭けを行うことになる.そのリスクは確率 Pn(g(ω0)∈A) によって評価される.もちろん,この確率はg に依存するが,もし Pn(g(ω0)∈A) 1であるようなgを見つけることができたなら,膨大な時間と労力 をかけずに実際に高い確率でアリスは Sの一般的な値を手に入れることができる.
この場合,長大な乱数は必要でない.このようなgをAに対して安全な疑似乱数生 成器という(§5.2).モンテカルロ法におけるサンプリングの問題はこのような安全 な疑似乱数生成器を見出すことで解決される.
一般の確率変数Sについては,その例外値を与えるωの集合Aに対して安全な疑 似乱数生成器をどのように構成したらよいかは,その候補はいくらか挙がっている
†1abは「aはbよりずっと小さい」の意,またabは「aはbよりずっと大きい」の意.
†2400字詰原稿用紙で約15,000枚分の情報量.
†3そのため,物理乱数を用いる立場もあるが,この小論では以下に述べるように疑似乱数生成器に よる解決について論じる.
ものの,知られていない(§5.3).しかし,疑似乱数生成器の用途をモンテカルロ積 分に限った場合,すなわちSがあるi.i.d.確率変数列†4の標本平均であるような場合,
Sの例外値を与えるωの集合Aに対して安全な疑似乱数生成器が具体的に構成でき る.そして大きすぎない規模のモンテカルロ積分の場合はすでに実用化されている (§6.2).
3 賭けとしてのモンテカルロ法
数学の問題はもちろん確実な方法で解けるに越したことはない.しかし,非常に 複雑な問題あるいは詳しい情報が不足しているような問題では確率的ゲーム,つま り賭け,として定式化し,正しい解が求まらないリスクを承知の上で解を推定する ことが実際的である.モンテカルロ法はまさにそのような場合の一つである.
3.1 プレーヤーの目的
数学的にはモンテカルロ法を賭けとして定式化するのが適切である.この賭けの プレーヤー,アリスの目的は与えられた確率変数の一般的な値—典型的な,ごくあ りふれた,特殊でない,例外的でない値—をサンプリングすることである.(それ が問題解決に結び付くようにあらかじめ問題を設定しておく.詳しくは後のいくつ かの例を参照せよ.)もちろん,不運にも一般的でない値,すなわち例外的な値をサ ンプリングしてしまうこともある.数学的には,そのような場合の起こる確率をで きるだけ正しく見積もること—リスクの評価—が要請される.
次に非常に小規模な(コンピュータを必要としない)モンテカルロ法の例を示す.
例1 rを未知の整数とする.100枚のカードがあり,そのうち99枚にはrが,残 りの1枚にはr+1が,書いてある.アリスがその中から1枚だけを選び,そのカー ドに書かれた数でもってrの値を推定する.アリスが不運にもrの値を正しく推定 し損ねる確率は1/100である.
この例を賭けの形式で述べるならば以下のようになる:「アリスの目的はrの書かれ
たカード(今の場合の“一般的な値”)を選ぶことである.選んだカードの数がrなら
ばアリスの勝ち,r+1ならばアリスの負け,である.このとき,アリスの負ける確 率は1/100である(リスクの評価).」
なお,一般にモンテカルロ法ではプレーヤーの目的が達成されたかどうかはサン プリングの後でも分からないのが普通である.たとえば例1では,リスクは正確に 評価されるものの,アリスの推定したr の値が正しいかどうか—つまり賭けとし ての勝ち負け—は,カードを選んだ後も知ることはできない.†5
†4i.i.d.は独立同分布(independentlyidenticallydistributed)の意.
†5人生における様々な選択も多くの場合,賭けであろう.果たして自分の選んだ手が良い手だった かどうか,結局分からないということはよくあるではないか. . ..
例外的な値を求めたい場合もないわけではない.たとえば,複雑な確率変数Xの 最小値をモンテカルロ法で探索するという場合がある.これはXの滅多に実現しな い値を求めることになる.このような場合,別の確率変数 Sをうまく定義して,S の一般的な値がXのその滅多に起きない値になるようにする.次の例を見よ.
例2 Pr(X < c) = 1/10000 であると仮定しよう.すなわち,X は c 未満の値を 取り得るがその確率はきわめて小さい.ここで{Xk}40000k=1 をX の独立なコピーとし,
S:= min1≤k≤40000Xk とする.このとき Pr(S <c) = 1−
(
1− 1 10000
)40000
≈ 1−e−4 = 0.981. . . となる.†6だから,Sは高い確率0.98でc未満の値を取る.
3.2 一つの例題
例1を実行するのには,100枚のカード以外に何も特別な道具は必要ない.しか し,現実のモンテカルロ法で扱う賭けは大規模であり,高い情報処理能力を持つコ ンピュータが必要である.ここでは次の例題をモンテカルロ法で解くことを中心に 考えて行く.
例題 硬貨投げを100回行うとき表が続けて6回以上出る確率pを求めよ.
モンテカルロ法では数理統計学における推定の方法を適用する.「硬貨投げを100回 行う」という試行を独立に N回繰り返して,そのうち「表が続けて6回以上出る」
という事象が起った回数をSN とする.このとき Nが十分大きければ大数の法則に よりSN/N の値が高い確率で求めたい pのよい推定値となる.より具体的には 例3 N := 106 = 1,000,000とする.S106/106の平均と分散は
E [S106
106
] = p, V [S106
106
] = p(1− p)
106 ≤ 1 4·106 なのでチェビシェフの不等式(Chebyshev’s inequality)により
Pr( S106
106 − p≥ 1 200
)
≤ 1
4·106 ·2002 = 1
100, (1)
が成り立つ.いい換えれば,S106/106 の一般的な値をサンプリングできれば,それ は pの近似値になっている.
†6x≈yはxとyの値がほぼ等しいの意.
例3では(1)によってリスクが評価されている,と考えてよいだろう.
もちろん,本物の硬貨を100×106 =108 =1億回投げてS106 の値を計算するので はない.コンピュータを用いる.数学的形式に則って考えるために,例3のS106 を 硬貨投げの確率空間(Ω:= {0,1}108,2Ω,P108)上で次のように実現しよう:まず,関数 X:{0,1}100→ {0,1}を
X(ξ1, . . . , ξ100) := max
1≤n≤100−5 n+5
∏
k=n
ξk, (ξ1, . . . , ξ100)∈ {0,1}100,
と定義する.これは(ξ1, . . . , ξ100)の中で1が6個以上続いた箇所があるときX = 1 そうでないとき X = 0 であることを意味する.次に Xk : {0,1}108 → {0,1},k = 1,2, . . . ,106,を
Xk(ω) := X(ω100(k−1)+1, . . . , ω100k), ω= (ω1, . . . , ω108)∈ {0,1}108,
と定義し,さらにS106 :{0,1}108 →Zを
S106(ω) :=
106
∑
k=1
Xk(ω), ω∈ {0,1}108,
と定義する.S106 の例外値を与えるωの集合A0を A0 :=
{
ω∈ {0,1}108 S106(ω)
106 −p ≥ 1 200
}
(2)
とすれば,(1)よりP108(A0)≤ 1/100となる.そこで例3は次のような賭けとして捉 えることができる.
例4 一つのω∈ {0,1}108 をアリスが選んだとき,ω< A0ならば勝ち,ω ∈A0なら ば負け,という賭けを考える.この賭けでアリスが負ける確率は1/100以下である.
4 乱数の問題
例1と例4は規模の違いを除けば,数学上の違いはない.しかし,この規模の違 いこそが実際に後者の賭けを行うときに本質的な問題を引き起こす.
今,アリスが例4の賭けを実行するために一つのω ∈ {0,1}108 を選ぼうとしてい るとしよう.しかし,じつは{0,1}108 の元のうちアリスが自分の意志で選ぶことが できる元はきわめて少数であり,従って特殊な元なのである.だから,たとえリス ク評価がP108(A0)1であっても,アリスが実際にこの賭けに勝つことは必ずしも 容易ではない.
事情を説明しよう.各々のω ∈ {0,1}108 は108 =1億ビット,すなわち約12MBの データであり,アリスがこれを選ぶにはコンピュータを用いるよりないが,それと て直接キーボードからコンピュータに入力することなどとてもできない.たとえば
アリスはせいぜい1,000ビットのデータ(アルファベット125字分)までならキーボー ドから直接コンピュータへ入力できると仮定しよう.コンピュータは彼女の入力を もとに{0,1}108の一つの元をあるアルゴリズムによって生成するとする.†7 このとき,
アリスが自分の意志で選ぶことのできるω∈ {0,1}108 の個数はせいぜい21001に過ぎ ない.(なぜならl-ビットのデータ全体の個数が2lで従ってl-ビット以下のデータ全 体の個数が20+21+22+· · ·+2l =2l+1−1だから.){0,1}108 の元の個数は2108 もある のだから,アリスの選ぶことのできるω∈ {0,1}108 がいかに僅かであるかが分かるだ ろう.たとえ,アリスが108−10ビットのデータまで入力できると仮定しても,ア リスの選ぶことのできるωの個数はせいぜい2108−9 であり,これでも{0,1}108 全体 の個数2108 の1/512に過ぎない.いい換えると{0,1}108 全体の少なくとも511/512 は108−9ビット以上の入力がどうしても必要な{0,1}-列なのである.一方で言うま でもなく,任意の{0,1}108 の元は「それ自身を入力する」という方法で108ビットの 入力で指定することができる.
短い入力で指定できる{0,1}-列は,その列に何らかの規則性があるからそうでき る,と考えられる.逆に規則性がないと指定するために長い入力が必要になるはずで ある.そこで,それ自身の長さと同程度の長さの入力がなければ指定できない{0,1}- 列を乱数と呼ぶ.†8乱数を指定するには,結局,それ自身を入力するより簡潔な方法 は存在しない.L1のとき{0,1}Lの元のうち圧倒的多数は乱数である.
例4の賭けのリスク評価P108(A0) ≤ 1/100 は,どのω ∈ {0,1}108 も同様に確から しく選ぶことができる,ということを前提にしている.だから,P108(A0)≤ 1/100に 実質的な意味を持たせるためには,ωは主として圧倒的多数を占める乱数たちから 選ばれるべきであろう.これがモンテカルロ法に乱数が必要だといわれる理由であ る.しかし,乱数は,それほど多いにもかかわらず,指定することがあまりに大変 なために,事実上,アリスはそのうち一つさえ選ぶことができない.この不条理こ そ,大規模なモンテカルロ法におけるサンプリングの本質的な困難なのである.
5 疑似乱数生成器
疑似乱数生成器は乱数を用いずに確率変数Sの一般的な値を高い確率でサンプリ ングするための道具である.その持つべき性質,すなわち安全性,について述べる.
5.1 定義と役割
例 4の賭けを実行するとき,S106(ω) を計算するためにアリスはとにかく一つの ω ∈ {0,1}108 を選ばなければならない.それには何か道具が必要である.ここでは最 もよく用いられる道具,すなわち疑似乱数生成器を用いる場合を考えよう.
†7じつは,そうしたアルゴリズムこそが後に述べる疑似乱数生成器と呼ばれるものである.
†8長い{0,1}-列を短い入力で指定できるとすると,その短い入力は元の長いデータを“圧縮したも
の”ということができる.この意味で乱数とは“圧縮不可能なデータ”である.
定義5 n < L のとき,関数g : {0,1}n → {0,1}L を疑似乱数生成器(pseudo-random generator)という.ここでgの入力ω0 ∈ {0,1}n を種(seed)†9,出力g(ω0)∈ {0,1}Lを 疑似乱数(pseudo-random number)という.
疑似乱数というのは数列であるが,数学的対象としては,それを生み出す関数の方 が重要である.それが疑似乱数生成器である.疑似乱数生成器は初期化†10という手 続きを経て疑似乱数を生成する.初期化というのは種ω0 ∈ {0,1}nを一つ選ぶことで ある.プログラムはそれをもとに疑似乱数g(ω0)∈ {0,1}Lを生成する.実用のために は,当然,n≥1は種ω0がキーボードから入力可能な程度に小さいことが必要であ る.また,関数gを実現するプログラムが許容できる程度に短く,早く動作するこ とが必要である.
例6 例4において,アリスがたとえばある疑似乱数生成器g : {0,1}238 → {0,1}108 を使うとしよう.†11 アリスはgの種ω0 ∈ {0,1}238 を一つ選んでキーボードからコン ピュータに入力する.ω0は238ビット(アルファベット40文字分)のデータだから,
キーボードから入力するのは困難ではない.そこでコンピュータはS106(g(ω0))を計 算する.
疑似乱数生成器を用いる理由は,アリスの入力すべきデータω ∈ {0,1}108 がキー ボードから入力するにはあまりにも長大だからである.入力データが短くて済む場 合は疑似乱数生成器は必要ない.たとえば例1で100枚のカードの中から1枚選ぶ とき,誰が疑似乱数生成器の利用を考えるだろうか.
5.2 安全性
例6の場合を引き続き考える.アリスは疑似乱数生成器gの種ω0 ∈ {0,1}238 を自 由に選ぶことができる.今の場合,リスクは確率
P238
( S106(g(ω0))
106 − p≥ 1 200
)
(3)
であり,次にこれを計算する必要がある.もちろん,確率(3)は gに依存する.も し,この確率—すなわちアリスの選んだω0 から計算されたS106(g(ω0))がSの例外 的な値である確率 —が大きいとすると,アリスは目的を達成することが困難にな る.それでは困る.
そこで,次の(少し曖昧な)定義を設けよう;疑似乱数生成器g : {0,1}n → {0,1}L, n< L,が集合A⊂ {0,1}Lに対して安全(secure)であるとは
PL(ω∈A) ≈ Pn(g(ω0)∈A)
†9初期値ともいう.
†10ランダマイズ(randomize)ともいう.
†11238という半端な数の由来は例9で明らかになる.
が成り立つことをいう.
例6において,もしg:{0,1}238→ {0,1}108 が(2)で定義された集合A0に対して安 全であれば,アリスが自分の意志で選ぶことのできるω0 ∈ {0,1}238の大多数に対し てS(g(ω0))はSの一般的な値を与えることが分かる.この場合,長大な乱数は必要 でない.いい換えると,Sの一般的な値をサンプリングしたい際に gを用いてもリ スクが大きくならないという意味で,このようなgを安全な疑似乱数生成器と呼ぶ わけである.モンテカルロ法におけるサンプリングの問題 —すなわち乱数の問題
—はこのような安全な疑似乱数生成器を見出すことで解決される.
一般に,できるだけ多くの集合Aに対して安全であるようなgが望ましい疑似乱 数生成器といえる.しかしすべてのAに対して安全であるような疑似乱数生成器は 存在しない.実際,疑似乱数生成器g:{0,1}n → {0,1}Lが与えられたとき
Ag := g({0,1}n)⊂ {0,1}L
とすれば,PL(ω∈ Ag)≤2n−Lであるが,Pn(g(ω0)∈ Ag)=1となるのでgはAg に対 して安全ではない.従って,疑似乱数生成器の安全性を論じるときは集合Aのクラ スを制限して考えなければならない.
5.3 計算量的に安全な疑似乱数生成器
疑似乱数生成器の安全性を論じる上で,対象となる集合の最も大きなクラスは,以 下に述べる「計算量的に判定可能であるような集合」のクラスであると考えられる.
疑似乱数生成器g: {0,1}n → {0,1}L,n< L,が集合A⊂ {0,1}Lに対して安全であ るかどうかを判定する具体的手続きについて考えよう.そのためには,何はさてお き,与えられたω ∈ {0,1}Lがω ∈Aを満たすかどうかを判定するプログラムを書か なければならない.そもそも部分集合A ⊂ {0,1}Lの総数は22L だから,そのような プログラムも同じ数だけ必要である.このときプログラムの長さは長いものでは2L ビットに達することが§4で述べた議論と同様にして分かる.さらに,大部分のA のプログラムがほぼ2L ビットの長さに達することも分かる.L = 108 の場合だと,
大部分のA⊂ {0,1}108 のプログラムの長さはほぼ2108ビットである.
明らかに,そのように長いプログラムが必要となるAに対してはω∈Aであるか どうか実際には判定できない.そこで,ω ∈Aが計算量的に判定可能であるような Aに対してのみ安全であるような疑似乱数生成器があればそれで十分である.その ような疑似乱数生成器は計算量的に安全(computationally secure,または暗号理論的 に安全(cryptographically secure))である,といわれる.ただし,暗号理論において,
疑似乱数生成器の計算量的安全性は,ここに述べた空間計算量(プログラムの長さ) ではなく,時間計算量(プログラムの実行時間)をもとに定式化されている.†12
例6の場合にgがもし計算量的に安全であれば,S106(ω)とS106(g(ω0))の分布は十 分近い.実際,S106 という関数が実˙際˙ に˙ 計˙算˙で˙ き˙ る以上,たとえば各˙ c1,c2 ∈Zに対
†12短いプログラムでも反復計算が多ければ実行時間が実行不可能なほど莫大になり得るから,時間 計算量を基準にすることはより実際的な意味がある.
してA(c1,c2) := {ω|c1 ≤ S106(ω) ≤ c2}とすれば,ω ∈ A(c1,c2)は計算量的に判定可 能である.従って p0の値が何であっても
P108(
S106(ω)
106 −p0≥ 1 200
)
≈ P238(
S106(g(ω0))
106 − p0≥ 1 200
)
が成り立つ.
計算量的に安全な疑似乱数生成器は,理論上,最も汎用的で最も完全な疑似乱数 生成器といえよう.ただし,その存在は計算量理論の難しい問題の一つであり現時 点では不明である.また,この概念は正確に述べればある種の漸近的性質であって,
個々の具体的な問題に対して,計算量的に安全な疑似乱数生成器が確実に有用であ ることを保証するものではない.
6 モンテカルロ積分
Xをm回の硬貨投げの関数,すなわち{0,1}m上の関数とし,Xの平均 E[X] = 1
2m
∑
ξ∈{0,1}m
X(ξ)
を求める問題を考える.ここでmが小さいときは上式の右辺を直接計算すればよい が,mが大きいとき(たとえばm = 100),計算量が莫大になりそれは事実上不可能 になる.モンテカルロ積分(Monte-Carlo integration)とは,そのような場合に,大数 の法則を用いて確率変数の平均を推定する手法をいう(例 3).およそ科学的なモン テカルロ法では,確率変数の分布に関する何らかの特性量を計算することを目的と していて,それらはほとんどの場合,モンテカルロ積分である.
6.1 i.i.d.- サンプリング
例3を一般的な設定の下で述べると以下のようになる.Xの独立なN個のコピー {Xk}Nk=1の和をSN とする.SN はNm回の硬貨投げの関数であるが,具体的に書けば Xk(ω) := X(ωk), ωk ∈ {0,1}m, ω=(ω1, . . . , ωN)∈ {0,1}Nm, (4) SN(ω) :=
∑N k=1
Xk(ω). (5)
このとき SN/N と X の平均(それぞれPNmとPmによる積分)は等しく(E[SN/N] = E[X]),分散はV[SN/N]=V[X]/Nを満たす.SN/Nをサンプリングすることにによっ て X の平均を推定する方法をi.i.d.-サンプリング†13 と呼ぶ.このときのリスクを チェビシェフの不等式
PNm( SN(ω)
N −E[X]≥δ )
≤ V[X]
Nδ2 (6)
†13{Xk}Nk=1がi.i.d.確率変数列なのでそう呼ぶ.
で評価しよう.†14このことは A1 :=
{
ω∈ {0,1}Nm SN(ω)
N −E[X]≥ δ }
(7) としたとき,ω∈ {0,1}Nmを選んでω< A1ならば勝ち,ω∈A1 ならば負け,という 賭けを考えていることになる.
6.2 ランダム - ワイル - サンプリング
モンテカルロ積分の場合,サンプリングの対象となる確率変数はSNであり,確率 変数の中でも非常に特殊な形をしている.その事実を利用すればA1に対し安全な疑 似乱数生成器を具体的に構成することができる.
それを述べるために記号を導入する; 各m≥1に対して
Dm := {i2−m|i= 0, . . . ,2m−1} ⊂T1, (8) とする.集合族Im := {[a,b)|a,b∈Dm}を含むような最小の(完全)加法族をBmと 書く.すなわち,Bmの元はImの有限個の元の和集合である.Dm上の一様確率測 度をP(m)で表す.最後に各 x∈T1に対して
bxcm := b2mxc/2m ∈ Dm
とおく.
定義7 (cf. [10, 16]) j∈N+とし
Zk(ω0) := bx+kαcm ∈ Dm, ω0 =(x, α)∈Dm+j×Dm+j, k =1,2,3, . . . ,2j+1, を定義する.これを用いて疑似乱数生成器g:{0,1}2m+2j → {0,1}Nm,ただしN ≤2j+1, を
g(ω0) := (Z1(ω0),Z2(ω0), . . . ,ZN(ω0))∈DNm {0,1}Nm, (9) ω0 = (x, α)∈Dm+j×Dm+j {0,1}2m+2j
と定義する.この疑似乱数生成器を用いる数値積分法をランダム-ワイル-サンプリ ング(random Weyl sampling,以下RWSと略す)と呼ぶ.†15
定理8 (9)の疑似乱数生成器g:{0,1}2m+2j → {0,1}Nm は(5)のSNに対して E[SN(g(ω0))] = E[SN(ω)] (= NE[X]),
V[SN(g(ω0))] = V[SN(ω)] (= NV[X]),
†14E[X]が未知であるのと同様にV[X]も未知であるのが普通だろう.その意味でこのリスク評価は 完全ではない.しかし状況によってはV[X]の上からの評価が得られれば(たとえば 例3のように,
Xが有界の場合など),このリスク評価は完全になる.
†15[10, 16]で紹介されているランダム-ワイル-サンプリングより,わずかばかり改良されている.
を満たす.ただしω0,ωはそれぞれP2m+2j,PNmに従うものとする.これより(6)と 同様のチェビシェフの不等式
P2m+2j(g(ω0)∈A1) = P2m+2j
( SN(g(ω0))
N −E[X]≥δ )
≤ V[X]
Nδ2
が成り立つ.この意味でgは(7)の A1に対して安全な疑似乱数生成器である.
証明. Step 1. (cf. [10, 16]) Dm+j×Dm+j 上の一様(直積)確率測度P(m+j)⊗P(m+j) の下 で{Zk}2k=j+11 はペアごとに独立であり,各Zk は Dmで一様分布することを示そう.そ のためにはF, G:T1 →RがBm-可測のとき,1≤k< k0 ≤2j+1に対して
E[F(Zk0)G(Zk)]=
∫ 1
0
F(t)dt
∫ 1
0
G(s)ds (10)
となることを示せばよい.ここにEはP(m+j)⊗P(m+j) による平均値を表す.
平均の定義とF,GがBm-可測であることより
E[F(Zk0)G(Zk)] = 1 22m+2j
2m+j
∑
q=1 2m+j
∑
p=1
F ( p
2m+j + k0q 2m+j
) G
( p
2m+j + kq 2m+j
)
= 1 22m+2j
2m+j
∑
q=1 2m∑+j+kq
p=1+kq
F ( p
2m+j + (k0−k)q 2m+j
) G
( p 2m+j
)
= 1 22m+2j
2m+j
∑
q=1 2m+j
∑
p=1
F ( p
2m+j + (k0−k)q 2m+j
) G
( p 2m+j
). (11)
ここで,0 < k0−k = 2il ≤ 2j+1−1,ただし 0 ≤ i ≤ jかつl は奇数,としよう.す ると
1 2m+j
2m+j
∑
q=1
F ( p
2m+j + (k0−k)q 2m+j
)
= 1 2m+j
2m+j
∑
q=1
F ( p
2m+j + lq 2m+j−i
)
. (12)
各r= 1,2,3, . . . ,2m+j−iに対してlqr≡ r( mod 2m+j−i)なるqrを一つ定めればlは奇数 だから
#{1≤q≤ 2m+j|lq≡ r(mod 2m+j−i)}
= #{1≤q≤ 2m+j|lq≡ lqr(mod 2m+j−i)}
= #{1≤q≤ 2m+j|l(q−qr)≡ 0(mod 2m+j−i)}
= #{1≤q≤ 2m+j|q≡ qr(mod 2m+j−i)}
= 2i.
このことから 1 2m+j
2m+j
∑
q=1
F ( p
2m+j + lq 2m+j−i
)
= 1 2m+j−i
2∑m+j−i
r=1
F ( p
2m+j + r 2m+j−i
)
= 1 2m+j−i
2∑m+j−i
r=1
F ( r
2m+j−i )
=
∫ 1
0
F(t)dt. (13)
従って(11)(12)(13)から
E[F(Zk0)G(Zk)] = 1 2m+j
2m+j
∑
p=1
1 2m+j
2m+j
∑
q=1
F ( p
2m+j + (k0−k)q 2m+j
)G ( p
2m+j )
= 1 2m+j
2m+j
∑
p=1
1 2m+j
2m+j
∑
q=1
F ( p
2m+j + lq 2m+j−i
)G ( p
2m+j )
=
∫ 1 0
F(t)dt· 1 2m+j
2m+j
∑
p=1
G ( p
2m+j ) =
∫ 1 0
F(t)dt
∫ 1 0
G(s)ds.
以上で(10)が示された.
Step 2. まず,各Zk(ω0)は{0,1}m上で一様分布するから E[SN(g(ω0))] = NE[X]
であることが分かる.次にペアごとの独立性によって
V[SN(g(ω0))] = E
∑N k=1
(X(Zk(ω0))−E[X])
2
=
∑N k=1
∑N k0=1
E[(
X(Zk(ω0))−E[X]) (
X(Zk0(ω0))−E[X])]
=
∑N k=1
E[(
X(Zk(ω0))−E[X])2]
+2 ∑
1≤k<k0≤N
E[(
X(Zk(ω0))−E[X]) (
X(Zk0(ω0))−E[X])]
= NV[X].
以上から,gは要請された性質を持つことが分かる.
例9 RWSを用いて§3.2の例題を解くことができる.例6 (§5.1)において,m= 100,
N =106,j= 19,とした定義7の疑似乱数生成器g:{0,1}238→ {0,1}108 を用いると き,†16リスク評価は
P238(
S106(g(ω0))
106 − p≥ 1 200
)
≤ 1
100 (14)
†16ここでは2j+1=220 >106 =Nであり2m+2j=238.現実のモンテカルロ法ではサンプルサイ ズNがあらかじめ定まっていることは少なく,数値実験を行いながら適切なNを見つけていく場合 が多い.そのような場合に備えて実際には jを少々大きめに与えておくとよい.
のように得られる(cf. (3)).アリスは自分の意思でどの種ω0 ∈ {0,1}238でも容易に選 ぶことができるから,この場合は長大な乱数は必要ない.
具体的にS106(g(ω0))を求めた例を挙げよう.(アリスの代わりに)筆者が選んだ種 ω0 =(x, α)∈D119×D119 {0,1}238は次の通りである(2進数表示) ;
x = 0.1110110101 1011101101 0100000011 0110101001 0101000100 0101111101 1010000000 1010100011 0100011001 1101111101 1101010011 111100100
α = 0.1100000111 0111000100 0001101011 1001000001 0010001000 1010101101 1110101110 0010010011 1000000011 0101000110 0101110010 010111111
このときコンピュータよってS106(g(ω0))=546,177と計算された.従って,この場合,
S106(g(ω0))
106 = 0.546177
が求める確率 pの推定値である.
注意10 RWSの場合,アリスがどんな種ω0 =(x, α)∈ {0,1}2m+2jを選ぶべきでない か,について少しだけ助言をすることができる.それは,とくにαを簡単な数にし ないことである.極端な場合α=(0,0, . . . ,0)∈ {0,1}m+jと選ぶとRWSはほぼ間違い なく失敗することがすぐ分かる.
注意11 もっと大規模なモンテカルロ積分で2m+2j1の場合だと,再び乱数の 問題によって,アリスはRWSの種ω0 ∈ {0,1}2m+2jさえ自分の意思で選ぶことができ なくなる.その場合は,さらに別の補助的な疑似乱数生成器g0 :{0,1}n→ {0,1}2m+2j, n 2m+2j,を用いてω0 ∈ {0,1}2m+2jを選ぶ破目になる.この場合,合成された疑 似乱数生成器g◦g0 :{0,1}n → {0,1}2m+2j → {0,1}NmがA1に対して安全になるかどう かは分からない.
例12 例2で扱った確率変数Xの最小値を探索する場合にペアごとに独立な確率変数 によるサンプリングを利用してみよう.Pr(X< c)=1/10000とし,X10,X20, . . . ,X400000 をX のペアごとに独立なコピーとする.このときS0 := ∑40000
k=1 1{Xk0<c}とすれば E[S0]=4, V[S0]= 40000V[1{Xk0<c}]= 40000
(
1− 1 10000
) 1
10000 < 4.
だからチェビシェフの不等式より
Pr(S0 ≥1) ≥ Pr(|S0−4|< 4) ≥ 1− 4 42 = 3
4.
これよりmin1≤k≤40000Xk0は少なくとも確率3/4以上でc以下の値をとることが分かる.
7 数理統計学の視点から
7.1 無作為なサンプリング
我々はモンテカルロ法を賭けと考え,プレーヤーのアリスが自分の意志で疑似乱数 の種ω0 ∈ {0,1}nを選ぶ,という観点で論じてきた.しかし数理統計学の視点から見る と,ω0がアリスの意志で選ばれるというのは困ったことである.なぜなら,結果に客 観性を持たせるために数理統計学では無作為なサンプリング(random sampling)†17を 行うことを重要と考えるからである.実際,RWSの場合は,注意10で述べたこと を逆手にとって,悪い種(α= (0,0, . . . ,0)∈ {0,1}m+j )を選んで賭けにわざと負ける ことができる.すなわち,プレーヤーの意思で結果が左右されることが起こり得る のである.
サンプリングの客観性を厳密に論ずることはもちろん数学の守備範囲を超えてい る.ここでは,たとえば,本物の硬貨の表裏の出方が誰の意思にも影響されないこと を仮定した上で議論することにしよう.このとき,たとえば例9のω0を選ぶときは,
硬貨を238回投げて,順に,表だったら1,裏だったら0,を記録していく.そうし て長さ238の{0,1}-列ができたら,それを疑似乱数生成器gの種ω0としてS(g(ω0)) を計算する.これで,無作為なサンプリングが実行される.じつは,例9のω0は,
実際,そのようにして得られた種である.
この方法で非常に長いω ∈ {0,1}Lを無作為に選ぶことはあまりに膨大な時間と労 力がかかるので事実上不可能である.重要なのは,疑似乱数生成器の利用によって 無作為に選ばなければならない{0,1}-列の長さがきわめて短くなるため,この方法 が実際に実行可能になる,ということである.†18
7.2 疑似乱数の検定
[5]をはじめ,夥しい数の疑似乱数の検定の多くは次の手順で行われている.
(1) 検定項目(連の検定,ポーカー検定など)を決める.
(2) 無作為に選ばれた複数の種 ω0 をもとに疑似乱数生成器 g によって疑似乱数 g(ω0)を生成し,その結果,棄却されるものの割合を計算する.
(3) 棄却されるものの割り合いがその検定の危険率程度であれば,gを採択し,そ れを大きく超えるようであれば棄却する.
†17ここでいうrandom samplingはプレーヤの意思に依らないサンプリングを意味する.i.i.d.-サンプ リングやRWSのように,確率変数のサンプリングを行うという意味でrandom samplingという用語 を使う場合があるので注意されたい.(ここでは,モンテカルロ法を賭けだと規定しているので,確 率変数のサンプリングはプレーヤの意思で行うことを基本としている.)
†18この解決方法はじつは古くからある乱数表の使い方—乱数表のページや数を拾い始める箇所の 決め方は無作為に,あとはルールに従って決定論的に数を拾っていくというやり方([5] p.7) —によ く似ている.