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
3k
マルコフ連鎖モンテカルロ法の気持ち / Markov Chain Monte Carlo
マルコフ連鎖モンテカルロ法はどういうものか、なぜ必要かの簡単な説明。
kaityo256
PRO
March 03, 2022
Tweet
Share
More Decks by kaityo256
See All by kaityo256
モンテカルロ法(3) 発展的アルゴリズム / Simulation 04
kaityo256
PRO
5
1.3k
UMAPをざっくりと理解 / Overview of UMAP
kaityo256
PRO
5
2k
SSH公開鍵認証による接続 / Connecting with SSH Public Key Authentication
kaityo256
PRO
3
470
論文紹介のやり方 / How to review
kaityo256
PRO
15
83k
デバッグの話 / Debugging for Beginners
kaityo256
PRO
10
1.6k
ビット演算の話 / Let's play with bit operations
kaityo256
PRO
7
540
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
15
5.3k
制限ボルツマンマシンの話 / Introduction of RBM
kaityo256
PRO
3
1.3k
論文の読み方 / How to survey
kaityo256
PRO
223
170k
Other Decks in Education
See All in Education
SARA Annual Report 2024-25
sara2023
1
180
社外コミュニティと「学び」を考える
alchemy1115
2
160
諸外国の理科カリキュラムにおけるビッグアイデアの構造比較
arumakan
0
300
Sponsor the Conference | VizChitra 2025
vizchitra
0
540
Education-JAWS #3 ~教育現場に、AWSのチカラを~
masakiokuda
0
160
미국 교환학생 가서 무료 홈스테이 살면서 인턴 취업하기
maryang
0
110
郷土教育モデル事業(香川県小豆島町).pdf
bandg
0
190
Human-AI Interaction - Lecture 11 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
450
2025.05.10 技術書とVoicyとわたし #RPALT
kaitou
1
210
Data Processing and Visualisation Frameworks - Lecture 6 - Information Visualisation (4019538FNR)
signer
PRO
1
2.4k
データ分析
takenawa
0
4.1k
AIC 103 - Applications of Property Valuation: Essential Slides
rmccaic
0
190
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
BBQ
matthewcrist
89
9.7k
Faster Mobile Websites
deanohume
307
31k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
Building a Modern Day E-commerce SEO Strategy
aleyda
41
7.3k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Building Adaptive Systems
keathley
43
2.6k
A Modern Web Designer's Workflow
chriscoyier
693
190k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
Designing for Performance
lara
609
69k
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 マルコフ連鎖モンテカルロ法とは何か? 重みに比例するように提案状態を生成することで 効率よくサンプリングする手法 なぜマルコフ連鎖モンテカルロ法が必要か? 状態が与えられたらエネルギーの計算は容易だが、 逆にエネルギーが与えられた時の状態数の計算が 困難だから -ε
状態からエネルギーを 求めるのは簡単 -ε ・・・ エネルギーから状態数を 求めるのは困難