Transcript s - nifty

CFTP を用いたパーフェクトサンプリング
松井 知己
来嶋 秀治
東京大学大学院
情報理工学系研究科
数理情報学専攻
参考文献
O. Haeggstroem, “Finite Markov Chains and
Algorithmic Application,” London Mathematical
Society, Student Texts, 52, Cambridge University
Press, 2002.
来嶋秀治, 松井知己, “完璧にサンプリングしよう!”
オペレーションズ・リサーチ, 50 (2005),
第一話「遥かなる過去から」, 169--174 (no. 3),
第二話「天と地の狭間で」, 264--269 (no. 4),
第三話「終りある未来」, 329--334 (no. 5).
(松井のHPよりダウンロードできます)
2
-5章 マルコフ連鎖モンテカルロ法
(MCMC法:Markov chain Monte Carlo method)
4
MCMC法
1. 目的の分布を定常分布にもつマルコフ連鎖を設計する。
2.
十分な回数推移させて、定常分布からサンプリングする。
有限離散の状態空間 
マルコフ連鎖 M:
推移確率行列 P
目的の定常分布 
状態空間
x
x
x
・・・
x
x
5
1.マルコフ連鎖
• マルコフ連鎖 MC (エルゴード的)
 状態空間: s1, s2, s3 ; 有限 (3 状態)
 推移規則: 推移確率行列 P によって推移する
Pij = Pr(推移 i  j ) = P( i, j)
 定常分布: 
0.2
s1
  P = , || = 1,   0
0.2
例
P=
0.2 0.4 0.4
0.2 0.2 0.6
0.1 0.3 0.6
 = (1/7, 2/7, 4/7)
s2
0.2
0.4
0.4 0.1
0.6
0.3
s3
0.6
6
例: Isingモデル
• 磁性とスピンの関係(統計物理学)
cf) 2値画像修復
• given G = (V, E), T:温度
• 状態空間{–1,+1}V = {○,●}V
• 状態 x {–1,+1}V のもつ
エネルギー関数
HT(x) = – (1/T) {u,v}E u(x) v(x)
• Gibbs分布
1515格子モデル
x {–1,+1}V
Gibbs(x) = (1/Z(T)) exp(– HT(x))
 Z(T) = x {– 1,+1}V : 分配関数(規格化定数)
7
例: Gibbs sampler for Isingモデル
・ 状態空間: {–1,+1}V
・ 状態 X  {–1,+1}V からの推移
i ) v  V を一様ランダムに選ぶ
ii) 頂点の値を更新する
Pr(X’(v) = +1) = e2k+/T / (e2k+ /T + e2k–/T)
Pr(X’(v) = –1) = e2k–/T / (e2k+ /T + e2k–/T)
X’(w) = X(w), w  v
k+ (v, X): 状態 X の v の隣の+の個数
k– (v, X):状態 X の v の隣の–の個数
detailed balance equation
exp(– HT(x)) P(x, y) = exp(– HT(y)) P(y, x)
定常分布
(x) = (1/Z(T)) exp(– HT(x)) = Gibbs(x)
8
2. 十分な回数推移させる。
1. 目標の分布を定常分布にもつマルコフ連鎖を設計する。
2.
十分な回数推移させて、定常分布からサンプリングする。
 何回推移させれば十分か?
 近似サンプリング
•
mixing time (mixing rate)
•
total variation distance
 パーフェクトサンプリング
•
CFTP (Coupling From The Past)
理論的算定
9
パーフェクトサンプリング
利点
誤差がない。
 誤差パラメータを自分で設定する必要がない。
Propp and Wilson [1996] : Coupling From The Past (CFTP)
Wilson [2000] :
Read Onceアルゴリズム
Fill et. al. [1998, 2000] :
Interruptibleアルゴリズム
10
Table of contents
-5章
MCMC法
-4章
CFTP
-3章
単調性
-2章
Read Onceアルゴリズム
-1章
まとめ
0章
終わり
-4章 Coupling From The Past
• Propp and Wilson (1996)
• 無限の過去からのマルコフ連鎖を考える。
• 更新関数による現在の状態の推理。
更新関数 (update function)
1/3
• マルコフ連鎖 MC (エルゴード的)
s1
 状態空間: s1, s2, s3 ; 有限 (3 状態)
1/2 1/2
 推移規則: 乱数   {1,…,6} に対して決まる。
1/6
s2 1/3
更新関数
s1 s2 s3
1 s3 s1 s2
2 s2 s3 s2
3 s2 s1 s3
4 s1 s1 s3
例
12
1/6
1/6
1/3

5
s1
s1
s2
s2
s3
s3
5 s1 s2 s1
6 s2 s3 s3
t
t +1 時刻
s3
1/2
13
CFTPアルゴリズムと定理
有限離散の状態空間 
マルコフ連鎖 MC:
更新関数 st(x, )
エルゴード性を満たす。
CFTPアルゴリズム
1. set T = –1; set : 空列;
2.
generate [T] : 乱数; put  := ( [T], [T + 1], …, [–1] );
3.
 の全ての状態について、時刻 T から 0 まで  を用いてマルコ
フ連鎖 MC を推移させる。
a.
if coalesce (y, x, y = T0(x, ))  return y;
b.
otherwise, set T := T – 1 ; step 2.に戻る;
CFTP定理
上のアルゴリズムが停止して値を返す時、 その値はマルコフ連鎖
M の定常分布に厳密に従う確率変数を実現する。
14
CFTPのアイデア
無限の過去から推移を続ける仮想的なマルコフ連鎖を考える。
 現在(時刻0)の状態は厳密に定常分布に従う。

現在(時刻0)の状態は何か?
 最近の乱数列から推理する。
⇒ 現在の状態を一意に特定する証拠を見つける。
coalescence
15
T = – 1からのシミュレーション
1.
set T = –1; set : 空列;

s1
s2
s3
–6
–5
–4
–3
–2
–1
0
時刻
16
T = – 1からのシミュレーション
2.
generate (T): 乱数;
(–1) = 5
put  := ( (T), (T+1),…,(–1) );

s1
s2
s3
–6
–5
–4
–3
–2
–1
0
時刻
17
T = – 1からのシミュレーション
3.
 の全ての状態について、
時刻 T から 0 まで  を用いて

5
マルコフ連鎖 MC を推移させる。
s1
s1
s2
s2
s3
–6
–5
–4
–3
–2
–1
0
時刻
18
T = – 1からのシミュレーション
3.
 の全ての状態について、
時刻 T から 0 まで  を用いて

5
マルコフ連鎖 MC を推移させる。
a.
if coalesce
(y, x, y = T0(x, ))
 return y;
b.
otherwise, set T := T – 1;
s1
s1
s2
s2
step 2.に戻る;
s3
–6
–5
–4
–3
–2
–1
0
時刻
19
T = – 2からのシミュレーション
3.
 の全ての状態について、
時刻 T から 0 まで  を用いて

5
マルコフ連鎖 MC を推移させる。
a.
if coalesce
(y, x, y = T0(x, ))
 return y;
b.
s1
s2
otherwise, set T := T – 1;
step 2.に戻る;
s3
–6
–5
–4
–3
–2
–1
0
時刻
20
T = – 2からのシミュレーション
2.
generate (T): 乱数;
put  := ( (T), (T+1),…,(–1) );
(–2) = 2 5

s1
s2
s3
–6
–5
–4
–3
–2
–1
0
時刻
21
T = – 2からのシミュレーション
3.
 の全ての状態について、
時刻 T から 0 まで  を用いて
2

5
マルコフ連鎖 MC を推移させる。
a.
if coalesce
(y, x, y = T0(x, ))
 return y;
b.
otherwise, set T := T – 1;
s1
s1
s1
s2
s2
s2
s3
s3
–2
–1
step 2.に戻る;
–6
–5
–4
–3
0
時刻
22
T = – 3からのシミュレーション
a.
if coalesce
(y, x, y = T0(x, ))
3
2

5
 return y;
b.
otherwise, set T := T – 1;
step 2.に戻る;
–6
–5
–4
s1
s1
s1
s2
s2
s2
s3
s3
s3
–3
–2
–1
s2
0
時刻
23
T = – 4からのシミュレーション
6
3
s1
–6
–5
2

5
s1
s2
s2
s3
s3
s3
–4
–3
–2
s2
s2
–1
0
時刻
24
T = – 4からのシミュレーション
a. if coalesce
60
3
2
(y, x, y = T (x, ))
 return y;
–6
–5
s1

5
s1
s2
s2
s3
s3
s3
–4
–3
–2
s2
ss22
–1
0
時刻
25
CFTPアルゴリズムと定理
有限離散の状態空間 
マルコフ連鎖 MC:
update function st(x, )
エルゴード性を満たす。
CFTPアルゴリズム
1. set T = –1; set : 空列;
2.
generate [T] : 乱数; put  := ( [T], [T + 1], …, [–1] );
3.
 の全ての状態について、時刻 T から 0 まで  を用いてマルコ
フ連鎖 MC を推移させる。
a.
if coalesce (y, x, y = T0(x, ))  return y;
b.
otherwise, set T := T – 1 ; step 2.に戻る;
CFTP定理
上のアルゴリズムが停止して値を返す時、 その値はマルコフ連鎖
M の定常分布に厳密に従う確率変数を実現する。
26
CFTPのアイデア
無限の過去から推移を続ける仮想的なマルコフ連鎖を考える。
 現在(時刻0)の状態は厳密に定常分布に従う。

現在(時刻0)の状態は何か?
 最近の乱数列から推理する。
⇒ 現在の状態を一意に特定する証拠を見つける。
乱数列と対応する推移に依存!!
coalescence
27
CFTPのアイデア
4

1
6
3
2

5
s1
s1
s1
s1
s1
s1
s1
s2
s2
s2
s2
s2
s2
s2
s3
s3
s3
s3
s3
s3
s3
–6
–5
–4
–3
–2
–1
0
時刻
28
CFTPのアイデア
初期状態を知る必要がない !!
4

1
6
3
2

5
s1
s1
s1
s1
s1
s1
s1
unique
state at 0
s2
s2
s2
s2
s2
s2
ss22
s3
s3
s3
s3
s3
s3
s3 coalesce
–6
–5
–4
–3
–2
–1
0
時刻
29
CFTPのアイデア
シミュレーションの開始時刻は、時刻0の状態に影響を及ぼさない
4

1
6
3
2

5
s1
s1
s1
s1
s1
s1
s1
unique
state at 0
s2
s2
s2
s2
s2
s2
ss22
s3
s3
s3
s3
s3
s3
s3 coalesce
–6
–5
–4
–3
–2
–1
0
時刻
標準的なCFTPアルゴリズム -- 効率化
有限離散の状態空間 
マルコフ連鎖 MC:
update function st(x, )
エルゴード性を満たす。
CFTPアルゴリズム
1. set T = –1; set : 空列;
2.
generate [T] ,... , [T/2 – 1] : 乱数; put  := ( [T],... , [T/2 – 1],
[T/2],…,[–1] );
3.
 の全ての状態について、時刻 T から 0 まで  を用いてマルコ
フ連鎖 MC を推移させる。
a.
if coalesce (y, x, y = T0(x, ))  return y;
b.
otherwise, set T := 2 T ; step 2.に戻る;
CFTP定理
上のアルゴリズムが停止して値を返す時、 その値はマルコフ連鎖
M の定常分布に厳密に従う確率変数を実現する。
30
Intermediate: ○×クイズ
Coffee Break
Coffee break (○×クイズ)
1. CFTPアルゴリズムにおいて、coalescence しなかったとき、
T := T – k ( k : 自然数) としても良い。

○
2. update function の決め方によっては coalesce しない。

○
3. Coupling To The Future (CTTF)アルゴリズムは、全ての状態
について時刻0から推移を開始し、coalesceしたらその状態を
返す。CTTFも定常分布を実現する。

×
32
33
マヌケな更新関数
1/2
確率: (A) 1/2
(B) 1/2
定常分布
s1
1/2
1/2
s1
s1
s1
s1
s1 1/2
s2
s2
s2
s2
s2 1/2
s2
1/2
更新関数
(B)
(B)
(A)
(B)
(B)
s1
s1
s1
s1
s1
s1
s2
s2
s2
s2
s2
s2
0
1
2
3
4
5
・・・・
6
period
34
すごい更新関数
1/2
確率: (A) 1/2
(B) 1/2
定常分布
s1
1/2
1/2
s1
s1
s1
s1
s1 1/2
s2
s2
s2
s2
s2 1/2
s2
1/2
更新関数
(B)
s1
s1
s2
s2
0
1
2
3
4
5
6
period
Coffee break (○×クイズ)
1. CFTPアルゴリズムにおいて、coalescence しなかったとき、
T := T – k ( k : 自然数) としても良い。

○
2. update function の決め方によっては coalesce しない。

○
3. Coupling To The Future (CTTF)アルゴリズムは、全ての状態
について時刻0から推移を開始し、coalesceしたらその状態を
返す。CTTFも定常分布を実現する。

×
35
36
CTTFアルゴリズムのイメージ
4
s1
1
Coupling To The Future
(CTTF)アルゴリズムは、全
ての状態について時刻0か
ら推移を開始し、coalesce
したらその状態を返す。

6
s1
s2
CTTFも定常分布を実現す
る?×
s2
s3
s3
s3
ss33
0
1
2
3
4
5
6
period
37
CTTP アルゴリズム
確率: (A) 1/2
(B) 1/2
定常分布
s1
1
1/2
s1
s1
s1
s1
s1 1/3
s2
s2
s2
s2
s2 2/3
s2
1/2
更新関数
(A)
s1
s1
s2
s2
0
1
2
3
4
5
6
period
38
CTTP アルゴリズム
確率: (A) 1/2
s1
1
1/2
(B) 1/2
定常分布
s1
s1
s1
s1
s1 1/3
s2
s2
s2
s2
s2 2/3
s2
1/2
更新関数
(B)
(A)
s1
s1
s1
s2
s2
s2
0
1
2
3
4
5
6
period
39
CTTP アルゴリズム
確率: (A) 1/2
(B) 1/2
定常分布
s1
1
1/2
s1
s1
s1
s1
s1 1/3
s2
s2
s2
s2
s2 2/3
s2
1/2
更新関数
(B)
(B)
(B)
(A)
s1
s1
s1
s1
s1
s2
s2
s2
s2
s2
0
1
2
3
4
5
6
period
Coffee break (○×クイズ)
1. CFTPアルゴリズムにおいて、coalescence しなかったとき、
T := T – k ( k : 自然数) としても良い。

○
2. update function の決め方によっては coalesce しない。

○
3. Coupling To The Future (CTTF)アルゴリズムは、全ての状態
について時刻0から推移を開始し、coalesceしたらその状態を
返す。CTTFも定常分布を実現する。

×
40
-3章 単調CFTP
• coalescenceの確認は困難
 状態数 || に比例する計算が必要
• 単調性の導入
定義:単調マルコフ連鎖(monotone Markov chain)
定義:単調 (monotone)マルコフ連鎖
 状態空間中に半順序関係が存在する。
 最大元と最小元が存在する。
 更新関数が半順序関係を壊さない。
効率的にcoalescenceを確認
42
The image of monotone CFTP
–2
+1
Markov chain si →sj 、λ∈Z,
j = median{1, i +λ, 5}
–2
0
+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
–6
–5
–4
–3
–2
–1
0
period
43
The image of monotone CFTP
–2
+1
Markov chain si →sj 、λ∈Z,
j = median{1, i +λ, 5}
–2
0
+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
–6
–5
–4
–3
–2
–1
0
period
44
45
monotone CFTPアルゴリズムと定理
有限離散の状態空間 
マルコフ連鎖 MC:
update function st(x, )
エルゴード性を満たす。
CFTPアルゴリズム
1. set T = –1; set : 空列;
2.
generate [T] ,... , [T/2 – 1] : 乱数; put  := ( [T],... , [T/2 – 1],
[T/2],…,[–1] );
3.
xU と xL について、時刻 T から 0 まで  を用いてマルコフ連鎖
MC を推移させる。
a.
if coalesce (y, y = T0(xU, ) = T0(xL, ))  return y;
b.
otherwise, set T := 2 T ; step 2.に戻る;
CFTP定理
上のアルゴリズムが停止して値を返す時、 その値はマルコフ連鎖
M の定常分布に厳密に従う確率変数を実現する。
46
例: Isingモデルの単調性
更新関数:
  [0,1),
v(X’) = +1, if  < e2k+/T / (e2k+ /T + e2k–/T)
x
v(X’) = –1, otherwise.
半順序関係:
x  y, x, y  {–1,+1}V
 v(x)  v(y), v  V
y
47
例: Isingモデルの単調性
最大限xmaxと最小元xmin
xmax
xmax
xmin
半順序関係:
x  y, x, y  {–1,+1}V
 v(x)  v(y), v  V
xmin
48
例: Isingモデルの単調性
最大限xmaxと最小元xmin
xmax
x
xmin
半順序関係:
x  y, x, y  {–1,+1}V
 v(x)  v(y), v  V
y
49
例: Isingモデルの単調性
「x > y, x, y  {–1,+1}V,
   [0,1), (x, )  (y, )」
x
∵)
k+(v,x)  k+(v,y), k–(v,y)  k–(v,x) より
e2k+(v,x)/T / (e2k+ (v,x) /T + e2k–(v,x)/T)
 e2k+ (v,y) /T / (e2k+ (v,y) /T + e2k–(v,y)/T)
v(Y’) = +1  v(X’) = +1
同様にv(Y’) = – 1  v(X’) = – 1もいえる。
 (x, )  (x, )
y
50
例: Isingモデルの単調性
最大限xmaxと最小元xmin
xmax
x
xmin
半順序関係:
x  y, x, y  {–1,+1}V
 v(x)  v(y), v  V
y
単調マルコフ連鎖と mixing time
単調なマルコフ連鎖
•  =(1/e): mixing rate (cf. burn-in-time)
• T*: coalescence time
•D: マルコフ連鎖の直径
 /e  E(T*)  2 (1 + ln (2D))
Total variation distance
, :  上の確率分布
dTV (, ) := maxQ { xQ ( (x) – (x) ) }
 1/2 x | (x) – (x) |
Mixing time
() := maxx{min{t | s  t, dTV(Pxs , )   }}
エルゴードマルコフ連鎖M (状態空間, 推移行列P, 定常分布)
51
-2章 Read Onceアルゴリズム
• Wilson (2000)
• 乱数を記憶しなくて良いCFTPアルゴリズム。
• Twin runによる探索時間の決定。
53
Couplingの模式図
時刻 t から t + s (s > 0)までのcouplingの様子
[t–1]
...

[t]
[t+1]
[t+s–1]
...
s1
s1
s1
s1
s1
s1
s1
s2
s2
s2
s2
s2
s2
ss22
s3
s3
s3
s3
s3
s3
s3
...
t–1
t
t+1
...
t +s–1
t +s

時刻
54
Couplingの模式図
時刻 t から t + s (s > 0)までのcouplingの様子
[t]
[t+1]
...
[t+s–1]


...
t–1
t
t+1
...
t+s–1
t+s
時刻
55
Read Onceアルゴリズムのアイデア -- Remember CFTP
 時間の遡り方は自由自在
時刻0の状態は変わらない!
 どこまで遡っても良い (coalescenceを確認した後さらに遡れる)
 ステップバックする時間は何でも良い
y
–a–b–c–d
–a–b–c
–a–b
–a
0
時刻
56
Read Onceアルゴリズムのアイデア -- Remember CFTP
 時間の遡り方は自由自在
時刻0の状態は変わらない!
 どこまで遡っても良い (coalescenceを確認した後さらに遡れる)
 ステップバックする時間は何でも良い
y
–a–b–c–d
–a–b–c
–a–b
–a
0
時刻
時刻を過去から未来に進ませたとき、
いつ終わればいいのか?
定数時間遡る Read Once アルゴリズム
1.
時刻0からTまでcouplingを行う。
(a) もし、coalesceしていたら時刻 T の状態を変数 x に代入する。
(b) そうでなければStep 1へ戻る。
2.
時刻0からTまでcouplingを行う。特に y = 0T(x,)とする。
(a) もしcoalesceしていたら x を出力してアルゴリズムを終了する。
(b) そうでなければ変数 x に y を代入しStep 2へ戻る。
定理
上のアルゴリズムが停止して値を返す時、 その値は定常分布に厳密に従う。
57
58
定数時間遡る Read Onceアルゴリズム
1. 時刻0からTまでcouplingを行う。
a) coalesceしていたら時刻 T の状態を変数 x に代入する
×
0
T
時刻
59
定数時間遡る Read Onceアルゴリズム
1. 時刻0からTまでcouplingを行う。
a) coalesceしていたら時刻 T の状態を変数 x に代入する
×
0
T
時刻
60
定数時間遡る Read Onceアルゴリズム
1. 時刻0からTまでcouplingを行う。
a) coalesceしていたら時刻 T の状態を変数 x に代入する
○
0
T
時刻
61
定数時間遡る Read Onceアルゴリズム
2. 時刻0からTまでcouplingを行う。とくに y = 0T(x,)とする。
b) coalesceしていなければ状態 y を変数 x に代入しStep 2へ戻る。
1反復目
0
T
0
T
時刻
62
定数時間遡る Read Onceアルゴリズム
2. 時刻0からTまでcouplingを行う。とくに y = 0T(x,)とする。
b) coalesceしていなければ状態 y を変数 x に代入しStep 2へ戻る。
1反復目
0
T
0
2反復目
T0
T
時刻
63
定数時間遡る Read Onceアルゴリズム
2. 時刻0からTまでcouplingを行う。とくに y = 0T(x,)とする。
a) coalesceしていれば状態 x を出力しアルゴリズムを終了する。
1反復目
2反復目
3反復目
x
0
T
0
T0
T
0
T
時刻
64
定数時間遡る Read Onceアルゴリズム
2. 時刻0からTまでcouplingを行う。とくに y = 0T(x,)とする。
a) coalesceしていれば状態 x を出力しアルゴリズムを終了する。
1反復目
0
0T
2反復目
T0
3反復目
T
0
T
時刻
65
定数時間遡る Read Onceアルゴリズム
1. 時刻0からTまでcouplingを行う。とくに
時刻0からTまでcouplingを行う。
2.
y = 0T(x,)とする。
coalesceしていたら時刻 Tx の状態を変数
x に代入する
a) coalesceしていれば状態
を出力しアルゴリズムを終了する。
○
0
T
時刻
66
定数時間遡る Read Onceアルゴリズム
2. 時刻0からTまでcouplingを行う。とくに y = 0T(x,)とする。
a) coalesceしていれば状態 x を出力しアルゴリズムを終了する。
1反復目
2反復目
x
0
T0
T
0
T
時刻
67
定数時間遡る Read Onceアルゴリズム
2. 時刻0からTまでcouplingを行う。とくに y = 0T(x,)とする。
a) coalesceしていれば状態 x を出力しアルゴリズムを終了する。
1反復目
0
T0
2反復目
T
0
T
時刻
68
定数時間遡る Read Onceアルゴリズム
1. 時刻0からTまでcouplingを行う。とくに
時刻0からTまでcouplingを行う。
2.
y = 0T(x,)とする。
coalesceしていたら時刻 Tx の状態を変数
x に代入する
a) coalesceしていれば状態
を出力しアルゴリズムを終了する。
○
0
T
時刻
69
定数時間遡る Read Onceアルゴリズム
2. 時刻0からTまでcouplingを行う。とくに y = 0T(x,)とする。
a) coalesceしていれば状態 x を出力しアルゴリズムを終了する。
1反復目
2反復目
3反復目
x
0
0T
T0
T
0
T
時刻
70
定数時間遡る Read Onceアルゴリズム
2. 時刻0からTまでcouplingを行う。とくに y = 0T(x,)とする。
a) coalesceしていれば状態 x を出力しアルゴリズムを終了する。
1反復目
0
0T
2反復目
T0
3反復目
T
0
T
時刻
71
定数時間遡る Read Onceアルゴリズム
1. 時刻0からTまでcouplingを行う。とくに
時刻0からTまでcouplingを行う。
2.
y = 0T(x,)とする。
coalesceしていたら時刻 Tx の状態を変数
x に代入する
a) coalesceしていれば状態
を出力しアルゴリズムを終了する。
○
・・・ 以下ずっと続く
0
T
時刻
遡る時間の設定

定数時間遡る Read Onceアルゴリズム



遡る時間設定をどうすればいいか?
Coalescence 時間程度にすれば良い。
Coalescence 時間が分からない場合は?



Twin run アルゴリズム [Wilson 2000]
遡る時間を、coalescence 時間に設定
coalescence 時間を計る時計として、もう一つマ
ルコフ連鎖を動かす。
72
73
Read Onceのアイデア – CFTPの改訂(1反復の例)
確率 ½ で、1反復で終了
遡る時間を、
coalescence 時間に設定
y
0
時刻
74
Read Onceのアイデア – CFTPの改訂(2反復の例)
確率1/2
確率1/2
遡る時間を、
coalescence
時間に設定
y
0
時刻
Read Onceのアイデア –CFTPの改訂(4反復の例)
確率1/2
確率1/2
確率1/2
確率1/2
75
遡る回数の
期待値=2
y
0
時刻
76
Read Onceのアイデア – 時刻は過去から未来へ
確率1/2
1反復目
確率1/2
2反復目
確率1/2
3反復目
y2
確率1/2
4反復目
y3
yy4
y1
–t1–t2–t3–t4
–t2–t3–t4
–t3–t4
–t4
→ 過去から未来へ →
0
時刻
77
Twin run
2つの互いに独立なcoupling
1[0] 1[1]
1
……
1[t–1]
X
0
t
Y
2
2[0] 2[1]
……
2[t–1]
時刻
78
Read Onceアルゴリズム
1.
*-successful を実行し、その出力を変数 x に代入する。
1/2の確率で次の(a), (b)のいずれかを実行する。
(a) x を出力してアルゴリズムを終了する。
(b) Step 2に進む。
2.
状態 x を入力して *-failing を実行し、その出力を変数 x に代入する。
1/2の確率で次の(a), (b)のいずれかを実行する。
(a) x を出力してアルゴリズムを終了する。
(b) Step 2に戻る。
プロセス *-successful
プロセス *-failing
入力: 状態空間  ;
入力: 状態空間 , 状態 x   ;
twin run を行い状態 y を返す;
twin run を行い状態 y を返す;
定理
上のアルゴリズムが停止して値を返す時、 その値は定常分布に厳密に従う。
79
プロセス*-successfulの絵
2本ともcoalesceしたら終了
先にcoalesceしたcouplingの時刻tの状態を返す
1[0] 1[1]
……
1[t–1]
X
0
t
時刻
Y
y
2[0] 2[1]
……
2[t–1]
80
プロセス*-failingの絵
1本でもcoalesceしたら終了
coalesceしていない方の時刻 t の状態 0t (x, ) を返す
1[0] 1[1]
……
1[t–1]
X
y
x
0
t
Y
x
2[0] 2[1]
……
2[t–1]
時刻
81
Read Once アルゴリズム (*-successful,*-failing)
1反復目
*-successful
2反復目
*-failing
3反復目
*-failing
y2
4反復目
*-failing
y3
yy4
y1
–t1–t2–t3–t4
–t2–t3–t4
–t3–t4
–t4
0
時刻
82
Read Once アルゴリズム (詳細)
1.
*-successful を実行し、その出力を変数 x に代入する。
1/2の確率で次の(a), (b)のいずれかを実行する。
(a) x を出力してアルゴリズムを終了する。
(b) Step 2に進む。
2.
状態 x を入力して *-failing を実行し、その出力を変数 x に代入する。
1/2の確率で次の(a), (b)のいずれかを実行する。
(a) x を出力してアルゴリズムを終了する。
(b) Step 2に戻る。
プロセス *-successful
プロセス *-failing
入力: 状態空間  ;
入力: 状態空間 , 状態 x   ;
twin run を行い状態 y を返す;
twin run を行い状態 y を返す;
定理
上のアルゴリズムが停止して値を返す時、 その値は定常分布に厳密に従う。
83
Read Once アルゴリズム
確率1/2
1反復目
確率1/2
2反復目
確率1/2
3反復目
y2
確率1/2
4反復目
y3
y4
y1
–t1–t2–t3–t4
–t2–t3–t4
*-successful
–t3–t4
*-failing
–t4
*-failing
0
*-failing
時刻
Read Once アルゴリズムの計算時間
*-successful:
推移回数 (期待値は)
coalescence時間の
高々2倍
回数: 1回
*-failing:
推移回数 (期待値は)
高々coalescence 時間
回数: (期待値は)1回
総推移回数の期待値 ≦( *-successful+*-failing)×(twin run)
84
-1章 まとめ
応用
単調なマルコフ連鎖
 Isingモデル
• 2値画像修復
• 統計物理モデル: Pottsモデル Hard-coreモデル
 tiling
 2行分割表
離散化Dirichlet分布
待ち行列ネットワーク (Jackson Network)
それ以外のCFTP
 (Rooted) spanning tree
拡張
 Murdoch et. al. の連続状態への拡張
86
まとめ (CFTPの布教活動?)
• パーフェクトサンプリング
 burn-in 時間の議論からの開放
従来は計算実験による推定。
近似サンプリングの近似精度の議論からの開放
MCMC法の近似精度等。
 mixing time の(詳細な)算定からの開放
近似サンプリングではmixing time 通りの回数
推移を行う必要がある。近似サンプリングの必
要推移回数はラージオーダーの算定では無い。
•安心して使えるサンプリングアルゴリズムの必要性
87
第0章 The end
— all of your views coalesce.
Thank you for the attention.
89