Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
マルコフ連鎖モンテカルロ法の気持ち / Markov Chain Monte Carlo
Search
kaityo256
PRO
March 03, 2022
Education
6
2.5k
マルコフ連鎖モンテカルロ法の気持ち / Markov Chain Monte Carlo
マルコフ連鎖モンテカルロ法はどういうものか、なぜ必要かの簡単な説明。
kaityo256
PRO
March 03, 2022
Tweet
Share
More Decks by kaityo256
See All by kaityo256
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
14
4.8k
制限ボルツマンマシンの話 / Introduction of RBM
kaityo256
PRO
3
690
論文の読み方 / How to survey
kaityo256
PRO
219
150k
リンゴゲームと貧富の差 / Origin of the disparity of wealth
kaityo256
PRO
14
14k
渡辺研Slackの使い方 / Slack Local Rule
kaityo256
PRO
9
8.2k
時間の矢について / Time's arrow
kaityo256
PRO
12
17k
t-SNEをざっくりと理解 / Overview of t-SNE
kaityo256
PRO
2
1.1k
未定義動作でFizz Buzz / Undefined Fizz Buzz
kaityo256
PRO
1
960
卒論の書き方 / Happy Writing
kaityo256
PRO
33
20k
Other Decks in Education
See All in Education
week13@tcue2024
nonxxxizm
0
540
NTTコムウェアの東海支店でもアジャイル人材育てんとかんやん!結果どえらい人材が育ったがね!
mizuki_fujita
0
510
Adobe Express
matleenalaakso
1
7.3k
大学院進学について(2024年度版)
imash
0
170
2024年度春学期 統計学 第8回 演習(1)問題に対する答案の書き方(講義前配付用) (2024. 5. 30)
akiraasano
PRO
0
120
Canva
matleenalaakso
0
290
ブームだけで終わらせない、組織内でコーチングを活用する方法/How to Use Coaching in Your Organization Without It Being Just a Fad
yuko_yokouchi
1
240
#英語力ランキング批判:EF-EPI,TOEFLスコア,英語教育実施状況調査
terasawat
0
490
week8@tcue2024
nonxxxizm
0
650
A question of time
ange
0
850
ポケモンで音象徴
jamashita
0
360
LINE ミニアプリ開発のメリットとキャッチアップ方法
junghyeonjae
0
560
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
359
18k
A Philosophy of Restraint
colly
202
16k
The Cost Of JavaScript in 2023
addyosmani
40
5.2k
Atom: Resistance is Futile
akmur
261
25k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
32k
The World Runs on Bad Software
bkeepers
PRO
64
11k
Bootstrapping a Software Product
garrettdimon
PRO
304
110k
Mobile First: as difficult as doing things right
swwweet
220
8.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Faster Mobile Websites
deanohume
304
30k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
3k
Transcript
1 25 マルコフ連鎖モンテカルロ法 の気持ち 慶應義塾大学理工学部物理情報工学科 渡辺
2 25 Markov Chain Monte Carlo (MCMC) method • 非常に効率が良い
• バイアスがない • 数値シミュレーションにおける「モンテカルロ法」と いえばこれ • 分子動力学法に比べてわかりにくい(※個人的な感想) • なぜマルコフ連鎖が必要なのか? • 詳細釣り合い条件とは何か? • そもそも何を計算しているのか? 疑問点 これらの疑問への回答を試みる
3 25 箱の中に原子を入れてしばらく放っておく 低温なら偏る (エネルギー重視) 高温ならばらける (エントロピー重視) この相転移の様子を調べたい
4 25 ひとつのセルに 2つの原子は入れない 近距離で斥力 中距離で引力 遠距離で 相互作用無し -ε 隣り合うとエネルギーが
εだけ下がる 隣接していないと 相互作用なし
5 25 ある状態のエネルギーをE、温度をTとすると、 その状態の出現確率は以下に比例する 𝑘𝐵 exp(−𝛽𝐸) ボルツマン定数 -ε exp(𝛽𝜖) 𝛽
= 1/𝑘𝐵 𝑇 逆温度 液相(左)が出現する確率は気相(右)が出現する確率の 倍 液相の出現確率の方が大きい
6 25 気相 液相 一つ一つの出現確率は高いが、 総数が少ない →エネルギー重視 →低温で支配的であろう 一つ一つの出現確率は低いが、 総数が多い
→エントロピー重視 →高温で支配的であろう エネルギーの温度依存性𝑈(𝑇)を知りたい まずは2原子系で考える
7 25 温度 エネルギー -ε 0 低温ではエネルギーの期待値は-εであろう 高温ではエネルギーの期待値は0であろう 中間の温度ではどうなっているのか? ?
8 25 状態𝑖におけるエネルギー 𝑈 𝑇 = 𝑖 𝐸𝑖 𝑝𝑖
温度𝑇におけるエネルギーの期待値 𝐸𝑖 𝑤𝑖 = exp(− 𝐸𝑖 𝑘𝑇 ) 状態𝑖が出現する重み 𝑝𝑖 = 𝑤𝑖 σ 𝑖 𝑤𝑖 状態𝑖をとる確率 これを様々な温度で計算したい
9 25 𝑈 𝑇 = 𝑖 𝐸𝑖 𝑝𝑖 「状態の和」になっていると扱いが難しい
𝑈 𝑇 = 𝐸 𝐸𝑔 𝐸 𝑝(𝐸) 「エネルギーに関する和」に取り直した • 同じエネルギーを持つ状態が多数ある • 出現確率はエネルギーにのみ依存する → 同じエネルギーを持つ状態について和をまとめる
10 25 𝑈 𝑇 = 𝐸 𝐸𝑔 𝐸 𝑝(𝐸)
エネルギーに関する和 𝑔 𝐸 エネルギー𝐸をとる状態の数(Density of State, DoE) 𝑝 𝐸 = 𝑊 𝐸 𝑍 エネルギーが𝐸である(ひとつの)状態が出現する確率 𝑊 𝐸 = exp − 𝐸 𝑘𝑇 ボルツマン重み 𝑍 = 𝑖 𝑤𝑖 = 𝐸 𝑔 𝐸 𝑊 𝐸 全ての重みの和(分配関数)
11 25 気相 液相 通り 通り 周期境界条件 V=L x Lの格子を考える
2𝑉 𝑉 𝑉 − 1 2 − 2𝑉 𝑔 −𝜖 = 2𝑉 𝑔 0 = 𝑉 𝑉 − 1 2 − 2𝑉
12 25 𝑈 𝑇 = 𝐸 𝐸𝑔 𝐸 𝑝(𝐸)
= −𝜖𝑔 −𝜖 𝑤 −𝜖 + 0𝑔 0 𝑤(0) 𝑔 −𝜖 𝑤 −𝜖 + 𝑔 0 𝑤(0) 𝑔 −𝜖 = 2𝑉 𝑔 0 = 𝑉 𝑉 − 1 2 − 2𝑉 𝑤 −𝜖 = exp 𝜖 𝑘𝑇 𝑤 0 = 1 必要なものがそろっているので厳密に計算できる
13 25 20x20マスに2原子の場合 液相 気相 サイズが大きくなるほど、原子が増えるほど、 「確率の入れ替わり」が急峻に→相転移 温度が低い 温度が高い 𝐾
液相の出現確率 𝐾 = 𝜖 𝑘𝑇
14 25 3原子の場合、取り得るエネルギーは3種類になる -2ε -ε 0 𝑔 𝐸 3原子ならまだがんばれなくもないが、一般のN原子では絶望的 は一般には計算できない
15 25 𝑈 𝑇 = 𝑖 𝐸𝑖 𝑝𝑖 状態が与えられたらエネルギーは計算できる
逆にエネルギーが与えられた時、そのエネルギーを持つ状態数はわからない 状態数がわからないので、状態𝑖が出現する確率𝑝𝑖 もわからない 𝑝𝑖 = 𝑤𝑖 σ 𝑖 𝑤𝑖 確率を知るには、重みの総和が必要 𝑖 𝑤𝑖 = 𝐸 𝑔 𝐸 𝑊 𝐸 ≡ 𝑍 重みの総和(分配関数)を求めるには 状態数𝑔(𝐸)が必要 状態の出現確率𝑝𝑖 がわからない状態で、以下の量を推定したい ※ gとZは等価(ラプラス変換の関係)
16 25 𝑈 𝑇 = 𝑖 𝐸𝑖 𝑝𝑖 ランダムな状態𝑗を選ぶ
状態𝑗の重み𝑤𝑗 を計算する エネルギーの期待値を以下で近似する = σ𝑖 𝐸𝑖 𝑤𝑖 σ 𝑖 𝑤𝑖 ∼ σ𝑗 𝐸𝑗 𝑤𝑗 σ 𝑗 𝑤𝑗 全ての状態についての和 (厳密) ランダムに生成した状態についての和 (サンプリング)
17 25 問題点 • 温度が低い場合、ほとんどの寄与はエネルギーが低い状態からくる • 状態をランダムに生成すると、エネルギーが低い状態が選ばれる確率 が極めて低くなる • 極めて低確率で出現する状態が、極めて大きな重みを持つ
→ 収束に非常に多数の試行数が必要となる 𝑈 𝑇 ∼ σ𝑗 𝐸𝑗 𝑤𝑗 σ 𝑗 𝑤𝑗 𝑤𝑗 が大きい𝑗を引き当てないといけない 𝑤𝑗 が大きい𝑗の数は相対的に非常に少ない 運よくそんな𝑗を引き当てるまで待つ必要がある
18 25 単純サンプリングは、重みを無視して状態を生成していたのが問題 →重みに比例して状態を生成したい もし状態𝑗を、重み𝑤𝑗 に比例して生成できたら? 𝑝𝑗 = 𝑤𝑗 σ
𝑗 𝑤𝑗 状態𝑗の出現確率 𝑈 𝑇 = 𝑖 𝐸𝑖 𝑝𝑖 ∼ 1 𝑀 𝑗 𝑀 𝐸𝑗 M回状態を生成して エネルギーを平均するだけ しかし、重みの総和は計算できない 重みの総和を計算しないまま、重みに比例して状態を生成したい マルコフ連鎖モンテカルロ法
19 25 B 二つの状態A,Bを考える それぞれ重み𝑤𝐴 , 𝑤𝐵 を持っている 平衡状態における分布𝜋(𝐴)と𝜋(𝐵)が重みに比例するように遷移確率を決めたい A
𝑃(𝐴 → 𝐵) 𝑃(𝐵 → 𝐴) 平衡状態では 𝜋 𝐴 𝑃 𝐴 → 𝐵 = 𝜋(𝐵)𝑃 𝐵 → 𝐴 Aの人口 AからBに行く割合 AからBに行く人口 BからAに行く人口 𝑤𝐴 𝑤𝐵
20 25 B A 𝑃(𝐴 → 𝐵) 𝑃(𝐵 → 𝐴)
目的 𝜋 𝐴 ∝ 𝑤𝐴 , 𝜋 𝐵 ∝ 𝑤𝐵 となるように 𝑃 𝐴 → 𝐵 , 𝑃(𝐵 → 𝐴)を決める 𝜋 𝐴 𝑃 𝐴 → 𝐵 = 𝜋(𝐵)𝑃 𝐵 → 𝐴 より 𝑃 𝐴 → 𝐵 𝑃 𝐵 → 𝐴 = 𝜋 𝐵 𝜋(𝐴) = 𝑤𝐵 𝑤𝐴 を満たすように決めればよい → 詳細釣り合い条件 (Detailed balance condition) ※ 正確には、遷移可能なすべての状態間でこの式が成り立つことを詳細釣り合い条件と呼ぶ 𝑤𝐴 𝑤𝐵
21 25 𝑃 𝐴 → 𝐵 𝑃 𝐵 → 𝐴
= 𝜋 𝐵 𝜋(𝐴) = 𝑤𝐵 𝑤𝐴 を満たす遷移確率の決め方は一意に決まらない →適当に決める 熱浴法(heat-bath method) 𝑃 𝐴 → 𝐵 = 𝑤𝐵 𝑤𝐴 + 𝑤𝐵 , 𝑃 𝐵 → 𝐴 = 𝑤𝐴 𝑤𝐴 + 𝑤𝐵 素直に遷移確率も重みに比例させる メトロポリス法(Metropolis method) 重みが大きい場合は必ず遷移、そうでない場合は確率的に遷移させる 𝑃 𝐴 → 𝐵 = 1, 𝑃 𝐵 → 𝐴 = 𝑤𝐴 𝑤𝐵 𝑤𝐴 < 𝑤𝐵
22 25 • 適当な状態𝑥0 を決める • そこから遷移可能な状態𝑥′を適当に決める • 重み𝑤(𝑥0 )と𝑤(𝑥′)から、遷移確率を決める
• 遷移した場合は状態を更新、遷移しなかった場合は • 現在の状態のままとし、それを𝑥1 とする • 同様に𝑥𝑡 から𝑥𝑡+1 を生成する(連鎖) 十分に緩和した場合、状態𝑥の出現確率は重み𝑤 𝑥 に比例する(※) 状態𝑥から遷移可能な状態𝑦の間には、詳細釣り合いが満たされている → 状態𝑦の出現確率も𝑤 𝑦 に比例する 𝑥0 𝑥1 𝑥2 𝑥𝑡 … ※厳密に証明可能だが、今回は詳細に触れない
23 25 現在の状態𝑥𝑡 適当な原子を一つ選ぶ 適当に動かす 提案状態𝑥′ エネルギーを計算し、エネルギーから重み𝑤(𝑥′)を計算する 現在の重み𝑤 𝑥𝑡 と、提案状態の重み𝑤(𝑥′)から、遷移させるかどうか決める
遷移してもしなくても、それを次の状態𝑥𝑡+1 とする 温度が低い場合は、エネルギーの高い場合に遷移しづらくなる →エネルギーの低い状態にとどまり続ける →エネルギーの低い状態が提案される確率が高くなる →重みに比例して状態をサンプリングできる
24 25 遷移確率が現在の状態にのみ依存し、履歴に依存しないこと t-1 t t-2 過去にどのような 履歴をたどっていても 現在の状態が 同じなら
現在の状態𝑥𝑡 提案状態𝑥′ 𝑃 𝑥 → 𝑥′ 同じ提案状態への 遷移確率は等しい
25 25 マルコフ連鎖モンテカルロ法とは何か? 重みに比例するように提案状態を生成することで 効率よくサンプリングする手法 なぜマルコフ連鎖モンテカルロ法が必要か? 状態が与えられたらエネルギーの計算は容易だが、 逆にエネルギーが与えられた時の状態数の計算が 困難だから -ε
状態からエネルギーを 求めるのは簡単 -ε ・・・ エネルギーから状態数を 求めるのは困難