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
PRML Sec11.3-11.6 (Japanese)
Search
ymnk
July 21, 2020
Technology
0
160
PRML Sec11.3-11.6 (Japanese)
ymnk
July 21, 2020
Tweet
Share
More Decks by ymnk
See All by ymnk
PRML Sec3.4-3.6 (Japanese)
yamnaku
0
1.4k
PRML Sec1.6-2.2 (Japanese)
yamnaku
0
160
Other Decks in Technology
See All in Technology
Rustから学ぶ 非同期処理の仕組み
skanehira
1
130
Codeful Serverless / 一人運用でもやり抜く力
_kensh
7
360
MCPで変わる Amebaデザインシステム「Spindle」の開発
spindle
PRO
3
3.2k
エラーとアクセシビリティ
schktjm
1
1.2k
Django's GeneratedField by example - DjangoCon US 2025
pauloxnet
0
110
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
320
react-callを使ってダイヤログをいろんなとこで再利用しよう!
shinaps
1
220
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
1
460
Language Update: Java
skrb
2
290
今!ソフトウェアエンジニアがハードウェアに手を出すには
mackee
11
4.5k
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
2
150
フィンテック養成勉強会#56
finengine
0
140
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.5k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Git: the NoSQL Database
bkeepers
PRO
431
66k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Fireside Chat
paigeccino
39
3.6k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Transcript
PRML 輪読 11.3-11.6
11.3 Gibbs Sampling
概要 • 複数の非観測変数(潜在変数,パラメータ) zについて,p(z)を推論する比較的単純な近似アルゴリズム • ある変数についてサンプリングを行うとき,他の変数を固定して考える • Metropolis-Hastingsの特別な場合と見なすことができる(つまり, MCMCの枠組み) •
当然,釣り合い条件とエルゴード性を満たす
アルゴリズムの説明 • 三変数z_1,z_2,z_3の場合,各ステップでは,一つの変数だけを更新 する.この時,値は以下のような確率式に基づいてサンプリングす る.
棄却なしのMetropolis-Hastings • ある1変数z_kを扱い,他の変数z\kは固定していると考える.このとき, zからz*への遷移確率qは, • このとき, であることに注意して, Metropilis-Hastingsの受理確率(11.44)は, よって,Metropolis-Hastingsステップは常に受理される(棄却されないので効率的).
ランダムウォーク的振る舞い • ギブスサンプリングは,変数間に 強い相関関係がある場合,全ての 空間を満遍なく探索するのに非常 に時間がかかる • 要するに,ランダムウォークの振る 舞いを示してしまう •
ギブスサンプリングでは,真の分 布をどれくらい近似できているかは 分からない ランダムウォークを避けるために 過剰緩和が試みられる
過剰緩和 Over-relaxation • y移動を方向付けすることで,ランダムウォークを避ける試み • 条件付き分布がガウス分布である問題に対して適用可能 • 特定の変数z_iの条件付き分布はある平均 μと分散σを持つ.z_i’を以下の式に置き換える. •
α=0なら通常のギブスサンプリング, α<0なら,平均と反対方向へバイアスがかかるため,そのような方 向へサンプリングを誘導していく • 非ガウス分布への拡張→順序付き過剰緩和
ギブスサンプリングの適用可能性 • 条件付き分布p(z_k|z\k)からサンプルが容易に抽 出可能かどうか,がギブスサンプリングが使える かどうかの判断基準になる. • ある変数と依存関係にある変数群(マルコフブラ ンケット)で条件付けされた条件付き確率分布が 求まるか否か •
Co-parentの変数も依存関係があることに注意 する • 複数の変数を同時に動かさないといけない場合 (強い相関がある)には,あまり効果的なアルゴリ ズムではない • 変分ベイズが使えるモデルには有効
ギブスサンプリングの改良 • ブロック化ギブスサンプリング ◦ 完全に全ての非観測変数をバラバラに更新していくのではなく,複数のグループに分けて,グループ内の変数 は同時に更新する方法 ◦ 同時にサンプリングされるため,より真の分布に近いサンプルが得られることが期待できる • 崩壊型ギブスサンプリング(周辺化ギブスサンプリング)
◦ いくつかの変数について,周辺化によりモデルから除去してからギブスサンプリングを行う方法 ◦ サンプルすべき変数の数が減るためより高速化が見込まれる
11.4 Slice Sampling
Metropolis-Hastingsの問題点 • Metropolis-Hastingsは,常に同じステップサイズを採用する.ステップサイズが実際の分布に対して小 さすぎると,ランダムウォーク的な振る舞いが強くなり,空間の探索に時間がかかる.一方,大きすぎると 棄却率が高くなり効率が悪くなる. ステップサイズを分布に対して適応的なサンプリングアルゴリズムを考えたい
アルゴリズムの説明 1. zの値に対応するp(z)を求め ,0<u<p(z)から一様にuをサンプリン グする 2. uを固定し,{z:p(z)>u}で定義される スライスからzを一様にサンプリング する
定式化 • 上記のアルゴリズムは,以下の分布から一様にサンプリングしたことに相当する • zの周辺分布は以下の式で与えられるので, uの値を無視することでp(z)からサンプリングできる
スライスを妥協する • 実際には,スライスから直接サンプリングすることは困難なことが多い • よって,以下の右図のように, z近傍の幅を適応的にすることで妥協する 1. z(r)を含む幅wの領域を設定し,各端点がス ライスの中に入るかどうかテストする 2.
両方の端点がスライス外まで出るまで拡張し ,一様サンプリングする 3. サンプルがスライスからはみ出た場合,そこ を新たな端点とし,再度サンプリングする 4. スライス内に入っていたらそれを新たな z(r)と する
ここから難易度がかなり上がります 🌶🌶🌶🌶
11.5 Hybrid Monte Carlo
Metropolis-Hastingsの問題点 • Metropolis-Hastingsは,常に同じステップサイズを採用する.ステップサイズが実際の分布に対して小 さすぎると,ランダムウォーク的な振る舞いが強くなり,空間の探索に時間がかかる.一方,大きすぎると 棄却率が高くなり効率が悪くなる. 棄却率を低く保ったまま,システムの状態に大きな変化を起こす(遠く離れた場所 からのサンプリング)方法を考えたい
Metropolis-Hastingsにおける理想的遷移 • MH法では,以下の式にそって,受理するかを決定していた. • 仮に提案分布が対称だと仮定すると, q関数は消去でき,p(z)のみの式になる.究極的には, p(z*)=p(z)と なるようなz*を見つけることが出来れば棄却率を 0に出来る. •
そこで,物理学的な保存則を用いて, p(z*)=p(z)となるようなz*を見つけていくことを考える. • 利用される保存則がハミルトニアン(エネルギー保存の一般化式) • (ハミルトニアン)=(運動/力学エネルギー)+(位置 /ポテンシャルエネルギー)
確定的な遷移 • MHは提案分布に基づく確率的遷移を行っていたが, HMCはハミルトニアンに基づく確定的な遷移を行 う • 変数zに対して,関数g_iを確率p_iで選び,z*=g(z)として遷移するマルコフ連鎖を考える • 各関数gについて逆関数が存在しヤコピアンが非ゼロと仮定する •
この時,遷移確率p(z*|z)は,以下のように表現できる( Jはヤコピアン) • さらに,受理関数Aが組み込まれる場合,
確定的な遷移 • 詳細つりあい式における遷移確率 Tにp(z*|z)を代入する • この式を受理関数Aについて整理すると, 棄却率0にするためには, ①p(z*)とp(z)が等しい ②分子が等しい(zとz*が対称) ③分母(ヤコピアン)が1
が十分条件
ハミルトニアンモンテカルロ • PRMLではハイブリッドモンテカルロと紹介されているが,一般にはハミルトニアンモンテカルロとして知ら れている • ハミルトン力学と,Metropolisアルゴリズムを組み合わせた手法で,それにより,ハミルトン力学のサンプ リング(離散化)に伴って生じるバイアスを取り除くことができる • アルゴリズムとしては,運動量変数 rの確率的な更新(モンテカルロ)と,リープフロッグアルゴリズムによ
るハミルトン力学系の更新を交互に行うマルコフ連鎖 • 計算誤差を考えない場合,全てのサンプルは受理される ハミルトン力学系の説明,運動量変数の導入,リープフロッグの説明をしてい きます
ハミルトン力学系の性質① エネルギー保存 • 物体の運動は,物体の位置変数(状態変数) zと,運動量変数rの時間的な遷移として記述できる.このと き,zとrには以下の関係が成り立つ. • また,p(z)は,ポテンシャルエネルギー E(z)を用いると,以下のような式として表現出来る.
ハミルトン力学系の性質① エネルギー保存 • 運動エネルギーを以下のように定義すると,系の全エネルギーはポテンシャルエネルギーと運動エネル ギーの和となる. • Hをハミルトン関数とよぶ.時間発展し, zやrが変化しても,ハミルトン関数の値は一定 である
ハミルトン力学系の性質② 位相空間の体積保存 • 位置変数zと運動量変数rの結合空間を位相空間と呼ぶ • 変数(z,r)の空間内の領域をハミルトン力学の方程式にしたがって 時間発展させたとき,その形は変化するが,体積は変化しない • 途中の議論を省略すると,ハミルトン力学に従うある遷移関数 gの ヤコピアンは1になるということ
• 闇が深い
確定的遷移はエルゴード性を満たさない • ハミルトニアンが成り立つ位相空間上での同時分布を以下のように示すことが出来る • ハミルトン力学においては, Hの値が不変であるから,p(z,r)は不変となる • p(z,r)は不変だが,zとrは変化するので,ランダムウォークを避け, zに大きな変化をつけることができる •
しかし,Hの値がずっと一定であると,エルゴード性を満たさないため,サンプリング手法としては不適切. • そこで,運動量変数rについて確率的に更新する
HMCのサンプリングイメージ • ハミルトニアンを満たすようにサンプリングを行うこ とと,運動量変数を更新して,別のハミルトニアン に移動していくことを繰り返す • ハミルトニアンを使うことで詳細釣り合い条件を満 たす • 運動量変数を更新することでエルゴード性を満た
す
リープフロッグ法 • 計算機では,ハミルトン力学に基づいた厳密な遷移(シミュレーション)ができないため,近似を行う必要 がある • 近似手法としてオイラー法が考えられるが,オイラー法は誤差が大きい.より誤差の小さいリープフロッグ 法を用いる. リープフロッグ法(交互更新) オイラー法(同時更新)
受理確率 • リープフロッグ法によって求められた z*,r*について,以下の確率で受理される • 第二項は,計算誤差がない場合には, 1になるため,ほとんどの場合で受理される
11.6 Estimating the Partition Function
モデル比較 • サンプリングを考える上では,確率分布の関数形(カーネル)だけを考えるので十分であったが,正規化 定数Zはモデルエビデンス(モデルが与えられたときの観測データの確率)を表す. • 正規化定数Zは分配関数とも呼ばれ,ベイズモデル比較に使えるが,直接計算することは困難な場合が ある. →分配関数の比率を計算することを考える
アプローチ① 重点サンプリングの利用 • 重点サンプリングで得られたサンプルデータ zを用いる • 重点サンプリングの分布p_Gが分布p_Eに近い場合に有効で,複雑なモデルには有効でない
アプローチ② • 重点サンプリングの分布に,マルコフ連鎖から得たサンプルを利用する • この式を(11.72)に代入する
まとめ
まとめ • ギブスサンプリング ◦ 複数の非観測変数の確率分布について推論する手法の一つ ◦ 各変数を順番に更新していくアルゴリズム ◦ 変数間の相関が強く,同時に動かす必要がある場合にはダメかも •
スライスサンプリング ◦ ステップサイズを適応的にした MH法という感じ ◦ シンプルで良いのではないでしょうか • ハミルトニアンモンテカルロ ◦ スライスサンプリングで満足できなかった人が作った,ステップサイズをめちゃ大きくできる手法 ◦ ハミルトニアンに基づく確定的な遷移と,確率的な遷移を組み合わせた ◦ バケモノみたいなアルゴリズム,すごい,適用範囲広い • 正規化項はモデル選択に使える
参考 - ベイズ推論による機械学習入門 - データ解析のための統計モデリング入門 - 基礎からのベイズ統計学:ハミルトニアンモンテカルロ法による実践的入門 - 【統計学】ハミルトニアンモンテカルロ法をアニメーションで可視化して理解する。 -
ハミルトニアンモンテカルロ法 - https://takun-physics.net/2702/ - http://watanabe-www.math.dis.titech.ac.jp/~kohashi/document/bayes_51.pdf - https://www.slideshare.net/tsubosaka/prml11-4
おわり!