930 likes | 1.25k Views
数理 情報科学特別講義(慶應・院・数理). July 26, 2012. 完璧にサンプリングしよう!. -- 過去からのカップリング. 来嶋秀 治 九州大学 大学院システム情報科学研究院 情報学部門. -7: マルコフ連鎖を用いたサンプリング法. 0.2. s 1. 0.2. 0.4. 0.4. 0.1. 0.6. s 2. s 3. 0.2. 0.3. 0.6. 状態遷移図. マルコフ連鎖の定常分布. マルコフ連鎖 M ( 有限状態 , 離散時間 ; エルゴード的 )
E N D
数理情報科学特別講義(慶應・院・数理) July26, 2012 完璧にサンプリングしよう! -- 過去からのカップリング 来嶋秀治 九州大学 大学院システム情報科学研究院 情報学部門
0.2 s1 0.2 0.4 0.4 0.1 0.6 s2 s3 0.2 0.3 0.6 状態遷移図 マルコフ連鎖の定常分布 • マルコフ連鎖 M (有限状態, 離散時間; エルゴード的) • 状態空間: = {s1,s2,s3} (有限) • 推移規則: 推移確率行列 P Pij := Pr(推移 i j) • 例 次の時刻の状態 s1 s2 s3 s1 s2 P = 現在の状態 s3
0.2 s1 0.2 0.4 0.4 0.1 0.6 s2 s3 0.2 0.3 0.6 状態遷移図 マルコフ連鎖の定常分布 • マルコフ連鎖 M (有限状態, 離散時間; エルゴード的) • 状態空間: = {s1,s2,s3} (有限) • 推移規則: 推移確率行列 P Pij := Pr(推移 i j) • 定常分布: • P = , || = 1, 0 • 例 P = = (1/7, 2/7, 4/7)
マルコフ連鎖の極限分布 任意の初期状態 推移を繰り返す 状態を出力 状態空間 x x x ・・・ x x 漸近的に定常分布
MCMC法のアイデア • 所望の分布を定常分布にもつマルコフ連鎖を設計する. • 十分な回数推移させて,定常分布からサンプリングする. 状態空間 x x x ・・・ x x (漸近的に)所望の分布に従うサンプリング (1回) を実現
MCMC法の特長と応用 • 特長 • “正規化定数”を知らなくてもサンプリングできる • 定常分布を“設計”する容易な方法が存在する • M-H法, Gibbsサンプラーなど • 応用/実用例 • Isingモデルの分配関数 • 画像処理 • 分割表の正確検定 • モンテカルロ積分 • 最適化算法,etc. • 素朴, • 汎用的, • 強力 実用的
MCMC法の具体例 -6: 2行分割表の一様ランダム生成 with 松井知己(中央大学 理工学部 情報工学科)
例: 2行分割表のランダム生成 • 2元分割表 • 各セルには非負整数が入る • (与えられた)周辺和を満たす • 問題 • Given: 周辺和 • 出力: 分割表の一様ランダム生成
例: 2行分割表のランダム生成 • 2元分割表 • 各セルには非負整数が入る • (与えられた)周辺和を満たす 状態A 状態B 状態C • 問題 • Given: 周辺和 • 出力: 分割表の一様ランダム生成
例: 2行分割表のランダム生成 • 2元分割表 • 各セルには非負整数が入る • (与えられた)周辺和を満たす • 与えられた周辺和を満たす2行分割表の個数を求める問題 • #P完全 (NP困難) [‘97 Dyer, Kannan, & Mount] • 問題 • Given: 周辺和 • 出力: 分割表の一様ランダム生成 マルコフ連鎖を用いた サンプリング法
j j+1 1/4 1/4 1/4 1/4 例: 2行分割表に対するマルコフ連鎖 [K & Matsui ‘06] • j 列目(とj+1列目)を • 1/(n –1)の確率で選ぶ。 • j列目と j+1列目に対して • 推移可能な状態に • 等確率で推移する。 +
提案するマルコフ連鎖の特徴 エルゴード的 • 有限 • 既約 • 非周期 • 定理 • 提案したマルコフ連鎖の定常分布は一様分布である. 略証: (X, Y), P(X, Y) > 0 P(Y, X) > 0 かつ P(X, Y) = P(Y, X) X Y (detailed balance equation(X) P(X, Y) = (Y)P(Y, X) )
「マルコフ連鎖を用いたサンプリング法」のアイデア「マルコフ連鎖を用いたサンプリング法」のアイデア • 目的の分布を定常分布にもつマルコフ連鎖を設計する。 • 十分な回数推移させて、定常分布からサンプリングする。 状態空間 x x x ・・・ x x 漸近的に定常分布
「マルコフ連鎖を用いたサンプリング法」のアイデア「マルコフ連鎖を用いたサンプリング法」のアイデア • 目的の分布を定常分布にもつマルコフ連鎖を設計する。 • 十分な回数推移させて、定常分布からサンプリングする。 状態空間 x x x ・・・ x x 漸近的に定常分布=> 有限回で停止すると誤差が生じる
研究の主題 「十分な回数推移させて,定常分布からサンプリングする.」 何回推移させれば十分か? • 近似サンプリング • total variation distance • mixing time • 完璧サンプリング(定常分布に厳密に従う) • CFTP (Coupling From The Past) • マルコフ連鎖のシミュレーション法を工夫 • 定常分布に厳密に従う
イントロダクション続く -5: マルコフ連鎖の収束
研究の主題 「十分な回数推移させて,定常分布からサンプリングする.」 何回推移させれば十分か? • 近似サンプリング • total variation distance • mixing time • 完璧サンプリング(定常分布に厳密に従う) • CFTP (Coupling From The Past) • マルコフ連鎖のシミュレーション法を工夫 • 定常分布に厳密に従う
Mixing time ,: 状態空間 上の分布 prob. Error • Total variation distance マルコフ連鎖 M (状態空間 , 推移確率 P, 定常分布 ) • Mixing time • rapidly mixing if() poly.(log , –1)
「2元分割表のランダム生成法」に関連する研究「2元分割表のランダム生成法」に関連する研究 1985, Diaconis & Effron, 2元分割表の検定法の提案, 1995, Diaconis & Saloff-Coste, m* n* 分割表の近似一様生成, (1996, Propp & Wilson, CFTPアルゴリズム,) 1997, Dyer, Kannan & Mount, 2行分割表の #P完全性, 2000, Dyer & Greenhill, 2 n分割表の近似一様生成, O(n2 log(N-1)) 2002,Cryan et al., m* n分割表の近似一様生成, O(nm2 log(N -1)) 2006, Kijima & Matsui, 2 n分割表の厳密一様生成, O(n3 log N) ⇒ mn分割表の多項式時間近似一様生成はmajor open problem
本題 「十分な回数推移させて,定常分布からサンプリングする.」 何回推移させれば十分か? • 近似サンプリング • total variation distance • mixing time • 完璧サンプリング • CFTP (Coupling From The Past) • 無限回の推移の後の状態を実現 定常分布に厳密に従う 誤差パラメータを自分で設定する必要がない。
-4: Coupling From The Past • Propp and Wilson (1996) • マルコフ連鎖のシミュレーションを工夫 • (更新関数を利用)
s1 s2 s3 1/3 更新関数 (update function) • マルコフ連鎖 MC (エルゴード的) • 状態空間: s1, s2, s3 ; 有限 (3 状態) • 推移規則: 乱数 {1,…,6} に対して決まる。 1/6 1/2 1/2 1/6 1/2 1/3 1/6 1/3
例 5 s2 s1 s1 s1 s2 s3 s3 s2 s3 時刻 t t +1 1/3 更新関数 (update function) • マルコフ連鎖 MC (エルゴード的) • 状態空間: s1, s2, s3 ; 有限 (3 状態) • 推移規則: 乱数 {1,…,6} に対して決まる。 1/6 1/2 1/2 1/6 1/2 1/3 1/6 1/3 更新関数 現在の状態 乱数
有限離散の状態空間 更新関数 st(x,) エルゴード性を満たす。 マルコフ連鎖 MC: CFTPアルゴリズムと定理 時刻 s, 状態 x から 時刻 t まで推移 (乱数列 ) • CFTPアルゴリズム • set T = –1;set : 空列; • generate [T] : 乱数; put := ( [T], [T + 1], …, [–1] ); • の全ての状態について、時刻 Tから 0 まで を用いて • マルコフ連鎖 MCを推移させる。 • if coalesce (y, x, y = T0(x,)) return y; • otherwise, set T := T – 1 ; step2.に戻る; CFTP定理 上のアルゴリズムが停止して値を返す時、 その値はマルコフ連鎖 Mの定常分布に厳密に従う確率変数を実現する。
時刻 –6 –5 –4 –3 –2 –1 0 T = – 1からのシミュレーション • set T = –1;set : 空列; s1 s2 s3
時刻 –6 –5 –4 –3 –2 –1 0 T = – 1からのシミュレーション • generate (T): 乱数; • put := ( (T), (T+1),…,(–1) ); (–1) = 5 s1 s2 s3
s1 s2 時刻 –6 –5 –4 –3 –2 –1 0 T = – 1からのシミュレーション • の全ての状態について、 • 時刻 Tから 0 まで を用いて • マルコフ連鎖 MCを推移させる。 5 s1 s2 s3
s1 s2 時刻 –6 –5 –4 –3 –2 –1 0 T = – 1からのシミュレーション • の全ての状態について、 • 時刻 Tから 0 まで を用いて • マルコフ連鎖 MCを推移させる。 5 • if coalesce (y, x, y = T0(x,)) return y; • otherwise, set T := T – 1; step2.に戻る; s1 s2 s3
時刻 –6 –5 –4 –3 –2 –1 0 T = – 2からのシミュレーション • の全ての状態について、 • 時刻 Tから 0 まで を用いて • マルコフ連鎖 MCを推移させる。 5 • if coalesce (y, x, y = T0(x,)) return y; • otherwise, set T := T – 1; step2.に戻る; s1 s2 s3
時刻 –6 –5 –4 –3 –2 –1 0 T = – 2からのシミュレーション • generate (T): 乱数; • put := ( (T), (T+1),…,(–1) ); (–2) = 2 5 s1 s2 s3
s1 s1 s1 s1 s2 s2 s2 s2 s2 s3 s3 時刻 –6 –5 –4 –3 –2 –1 0 T = – 2からのシミュレーション • の全ての状態について、 • 時刻 Tから 0 まで を用いて • マルコフ連鎖 MCを推移させる。 2 5 • if coalesce (y, x, y = T0(x,)) return y; • otherwise, set T := T – 1; step2.に戻る; s1 s2 s3
s1 s1 s2 s2 s2 s3 s3 時刻 –6 –5 –4 –3 –2 –1 0 T = – 3からのシミュレーション • if coalesce (y, x, y = T0(x,)) return y; • otherwise, set T := T – 1; step2.に戻る; 3 2 5 s1 s2 s3
s1 s2 s2 s2 s3 s3 時刻 –6 –5 –4 –3 –2 –1 0 T = – 4からのシミュレーション 6 3 2 5 s1 s2 s3
s1 s2 s2 s3 s3 時刻 –6 –5 –4 –3 –2 –1 0 T = – 4からのシミュレーション • if coalesce (y, x, y = T0(x,)) return y; 6 3 2 5 s1 出力 s2 s2 s2 s3
有限離散の状態空間 更新関数 st(x,) エルゴード性を満たす。 マルコフ連鎖 MC: CFTPアルゴリズムと定理 時刻 s, 状態 x から 時刻 t まで推移 (乱数列 ) • CFTPアルゴリズム • set T = –1;set : 空列; • generate [T] : 乱数; put := ( [T], [T + 1], …, [–1] ); • の全ての状態について、時刻 Tから 0 まで を用いて • マルコフ連鎖 MCを推移させる。 • if coalesce (y, x, y = T0(x,)) return y; • otherwise, set T := T – 1 ; step2.に戻る; CFTP定理 上のアルゴリズムが停止して値を返す時、 その値はマルコフ連鎖 Mの定常分布に厳密に従う確率変数を実現する。
CFTPのアイデア • 仮想的に無限の過去から推移を続けるマルコフ連鎖を考える。 • 現在(時刻0)の状態は定常分布に厳密に従う。 • 現在(時刻0)の状態は何か? • 最近の乱数列から推定する。 • ⇒ 現在の状態を一意に特定する証拠を見つける。 • coalescence • => 乱数列と対応する推移に依存
s1 s2 s2 s2 s3 s3 時刻 –6 –5 –4 –3 –2 –1 0 CFTPのアイデア 4 1 6 3 2 5 s1 s1 s1 s1 s1 s1 s2 s2 s2 s2 s3 s3 s3 s3 s3
unique state at 0 s1 s1 s2 s2 s2 s2 s2 s2 s2 coalesce s3 s3 s3 s3 時刻 –6 –5 –4 –3 –2 –1 0 CFTPのアイデア 初期状態を知る必要がない !! 4 1 6 3 2 5 s1 s1 s1 s1 s1 s1 s1 s2 s2 s2 s2 s2 s3 s3 s3 s3 s3 s3
unique state at 0 s1 s1 s2 s2 s2 s2 s2 s2 s2 coalesce s3 s3 s3 s3 s3 s3 時刻 –6 –5 –4 –3 –2 –1 0 CFTPのアイデア シミュレーションの開始時刻は、時刻0の状態に影響を及ぼさない 4 1 6 3 2 5 s1 s1 s1 s1 s1 s1 s1 s2 s2 s2 s2 s2 s3 s3 s3 s3 s3 s3
有限離散の状態空間 更新関数 st(x,) エルゴード性を満たす。 マルコフ連鎖 MC: CFTPアルゴリズムと定理 時刻 s, 状態 x から 時刻 t まで推移 (乱数列 ) • CFTPアルゴリズム • set T = –1;set : 空列; • generate [T] : 乱数; put := ( [T], [T + 1], …, [–1] ); • の全ての状態について、時刻 Tから 0 まで を用いて • マルコフ連鎖 MCを推移させる。 • if coalesce (y, x, y = T0(x,)) return y; • otherwise, set T := T – 1 ; step2.に戻る; CFTP定理 上のアルゴリズムが停止して値を返す時、 その値はマルコフ連鎖 Mの定常分布に厳密に従う確率変数を実現する。
Markov chain si→sj、λ∈Z, j= median{1, i+λ, 5} period –6 –5 –4 –3 –2 –1 0 The image of monotone CFTP +1 – 2 0 – 2 +1 +2 s1 s1 s1 s1 s1 s1 s1 s2 s2 s2 s2 s3 s2 s2 s3 s3 s3 s3 s3 s3 s3 s4 s4 s4 s4 s4 s4 s4 s5 s5 s5 s5 s5 s5 s5
-3: 単調CFTP • coalescenceの確認は困難 • 状態数 || に比例する計算が必要 • 単調性の導入
有限離散の状態空間 更新関数 (x,) マルコフ連鎖 MC: 単調マルコフ連鎖 • 単調マルコフ連鎖 (monotone Markov chain) • 状態空間中に半順序関係が存在する。 (, ) • 最大元と最小元が存在する。 ! xmax, xmin , x , xmaxx xmin • 推移規則が半順序関係を壊さない。 x, y , , x y (x,) (y,) CFTPアルゴリズム Read Once アルゴリズム Fillのアルゴリズム 効率的なアルゴリズム
period –6 –5 –4 –3 –2 –1 0 Markov chain si→sj, λ∈Z, The image of monotone CFTP j= median{1, i+λ, 5} +1 – 2 0 – 2 +1 +2 s1 s1 s1 s1 s1 s1 s1 s2 s2 s2 s2 s3 s2 s2 s3 s3 s3 s3 s3 s3 s3 s4 s4 s4 s4 s4 s4 s4 s5 s5 s5 s5 s5 s5 s5
period –6 –5 –4 –3 –2 –1 0 Markov chain si→sj, λ∈Z, The image of monotone CFTP j= median{1, i+λ, 5} +1 – 2 0 – 2 +1 +2 s1 s1 s1 s1 s1 s1 s1 s2 s2 s2 s2 s3 s2 s2 s3 s3 s3 s3 s3 s3 s3 s4 s4 s4 s4 s4 s4 s4 s5 s5 s5 s5 s5 s5 s5
-2: 2行分割表のPerfect Sampling with 松井知己(中央大学 理工学部 情報工学科)
j j+1 1/4 1/4 1/4 1/4 再掲: マルコフ連鎖 • j 列目(とj+1列目)を • 1/(n –1)の確率で選ぶ。 • j列目と j+1列目に対して • 推移可能な状態に • 等確率で推移する。 +
j j+1 1/4 1/4 1/4 1/4 マルコフ連鎖(更新関数) • 実数乱数 [1, n) を生成。 • j = とする。 • X (1, j) = max. – ’ • : 推移可能な状態数 • ’:= – • max.: X [1, j] の最大値 • j 列目(とj+1列目)を • 1/(n –1)の確率で選ぶ。 • j列目と j+1列目に対して • 推移可能な状態に • 等確率で推移する。 +
サンプリングアルゴリズム (単調CFTPアルゴリズム) • set T = –1; set : 空列; • generate [T] [1, n):一様実数乱数; put := ( [T], [T+1],…,[–1] ); • XU, XLについて、時刻 Tから 0 まで を用いて推移。 • if coalesce on Y return Y; • otherwise, set T := T – 1; 2.に戻る; XU : N-W表 定理: 提案したアルゴリズムにより 2 n分割表のPerfect Sampling が行える。 XL : N-E表