Stochastic Gradient MCMC
株式会社 Preferred Networks
⼤野健太 oono@preferred.jp
2016/01/21
Preferred セミナー
⾃⼰紹介
• ⼤野健太(@delta2323_)
• 経歴:数理科学研究科・修⼠課程(共形幾何)
• → 2012.3 PFI → 2014.10 PFN
• 所属:研究班(理論解析・ライフサイエンス・Chainer開発メンバー)
• ブログ:http://delta2323.github.io
• 最近の活動
• NIPS2014勉強会・ICML2015勉強会主催
• ⽇経ビッグデータ短期連載・雑誌寄稿など
2
NIPS2015 Workshopにて
3
今⽇のテーマ
• 事後確率からのサンプリングをMCMCで⾏う問題設定
• 特に、訓練データからサブサンプリングして、勾配の近似値を推定することでスケーラブルにす
る、Stochastic Gradient MCMC (SG-MCMC)を紹介します
• 紹介する⼿法
• (HMC : Hamiltonian Monte Carlo) ← “Stochastic”ではない
• SGHMC : Stochastic Gradient Hamiltonian Monte Carlo
• SGLD : Stochastic Gradient Langevin Dynamics
• (m) SGNHT : (multivariate) Stochastic Gradient Nose-Hoover Thermostat
• (Santa : Stochastic AnNealing Thermostats with Adaptive momentum) ← サンプリン
グではなくMAP推定
4
まとめ
5
HMC
SGHMC
SGLD SGNHT
mSGNHT Santa
RMSprop
SGRLD
勾配を推定値
に置き換える
フィッシャー
計量の導⼊
摩擦→∞ サーモスタット
パラメータの導⼊
各次元に
サーモスタット
幾何情報の
推定⽅法の輸⼊
⾮ユークリッド化
+ 焼きなまし
SGRHMC
gSGRHMC
フィッシャー
計量の⼀般化
フィッシャー
計量導⼊
MCMCとは
• Markov Chain Monte Carlo / マルコフ連鎖モンテカルロ法
• Markov Chain
• 状態遷移モデルで次の状態が今の状態だけから決まるもの
• Monte Carlo
• 乱数を⽤いて数値計算・シミュレーション・サンプリングなどを⾏う⼿法
• パラメータ空間中を遷移するマルコフ連鎖を作り、その軌道をたどることで、パラメータ空間上
の確率分布からサンプリングを⾏う⼿法
6
MCMC法の例:天気
状態:{晴れ、⾬}
次の⽇の天気は今⽇の天気だけから確率的に決まるとする
(マルコフ性の仮定)
7
1/2
1/2
1/3
2/3
• 初⽇が晴れだと、t⽇⽬が
• 晴れの確率
• 4/7 + 3/7 * (-1/6)t
• ⾬の確率
• 3/7 - 3/7 * (-1/6)t
• ⼗分⽇数が経った時、晴れの確率
は4/7, ⾬の確率は3/7
• 初⽇が⾬でもこの確率は同じ
• t⽇⽬の天気の確率が(晴れ,
⾬)=(4/7, 3/7)ならば、t+1⽇⽬
の確率も(晴れ, ⾬)=(4/7, 3/7)
• この確率分布が不変分布と
なっている
「マルコフ連鎖モンテカルロ法⼊⾨-1」の例を引⽤
http://www.slideshare.net/teramonagi/ss-5190440
画像
http://free-illustrations.gatag.net/2013/11/08/170000.html
http://sozaikoujou.com/19639
MCMC法の基本戦略
• ⽬標:状態空間上の確率分布からサンプリングを⾏う
• サンプリングしたい確率分布が不変分布となるような、マルコフ性を満たす状態遷移関数を作る
• 適当な初期状態からスタートして、状態遷移関数に従って状態を次々と遷移させる
• (⼗分時間が経つと、任意の時刻でスナップショットを取った時、ある状態にいる確率は不変分
布に従うようになる)
• ⼗分時間が経った後に状態遷移から⼀定間隔で状態をサンプリングする
• 本当はここでエルゴード性という性質を⽤いている
• MCMC法のバリエーションは状態遷移関数をどのように作るかによって決まる。
8
今回の問題設定
• 事後分布からのサンプリングを考える。
• θ : ⽣成モデルのパラメータ
• X = {x1, x2, …, xN} : 訓練データ、xn 〜 p(x | θ) i.i.d.
• 事後分布:p(θ | X) からサンプリングを⾏いたい
• 状態空間について
• 幾つかの⼿法は θ の他に補助的なパラメータ (p, ξ…) を⽤いる。
• φ = θ, (θ, p), (θ, p, ξ) などを考え、その上の同時分布 p(φ| X) を考える
• θ, p, ξいずれも連続変数
9
なぜサンプリングが必要か?
• 尤度 p(X | θ) は計算できるが、事後分布 p(θ | X)は計算できないから
10
• θが⾼次元になると、分⺟の積分が解析的計算も数値計算も困難
紹介する⼿法の特徴
• 状態空間上の質点が、ある運動⽅程式に従って運動している状況を考える。
• 今回の⼿法で⽤いる状態遷移関数は、その運動⽅程式を離散化することで得られる。
• それぞれの⼿法のバリエーションは⽤いる運動⽅程式の種類によって⽣じる。
11
カノニカル分布
• パラメータ空間上の運動とあるパラメータを
とる確率を紐づける関係式
• エネルギー H(φ) が⾼いほど、パラメータφを
とる確率は低くなる
12
統計⼒学では、この関係式は等重率の仮定から導かれるものだ
が、今回はこの関係式を⽤いて、⼀⽅から他⽅を定義している
と考える。
• 今回は、H(φ) が、各パラメータの関数の和で
書かれている場合を考える(Santaを除く)
• これは、各パラメータがXに条件づけられた時、
独⽴である事を意味する
• この事から、各パラメータの周辺分布もカノ
ニカル分布に従うこともわかる
HMC [Neal11]
古典的な運動⽅程式を考える
13
これを変形すると、
これを離散化すれば、
アルゴリズム
Leapfrog法
ナイーブな更新⽅法では、θ の t → t + h の更
新に時刻 t での p の値を⽤いている
14
これを時刻 t + h / 2での推定値を利⽤すること
で、近似の精度を⾼める
p と θ の役割を交換して同じ事ができるので
θ
p
スケーラブルにする⽅法のアイデア
⽬標:HMCで⼒に対応する項 -∇θU(θ) を推定値で置き換える
15
左辺はベイズの定理でさらに計算できて、
カノニカル分布 第2項を |X~| << |X| となる X~で近似する
SGHMC[Chen+14]
じゃあHMCで-∇θU(θ)を単純に推定値に置
き換えれば良いか? → NO
16
左下の更新則は次の確率微分⽅程式を離散
化したもの
p(θ, p | X) ∝ exp(-U(φ) – K(p)) はこの運
動⽅程式の不変分布にならない
これは次の更新則と同等(になってしまっ
ている)
推定値を⽤いたHMCの更新則
V(θ) : サブサンプリングに伴う分散
ζのサンプリングは実際には⾏っていない
SGHMC[Chen+14]
そこで、同時分布が不変分布になるように、運
動⽅程式⾃体を変えてしまう
17
B(θ) = hV(θ)/2と置き直した
この⽅程式は2次のLangevin Dynamicと呼ばれ
ている。これを離散化すると、
実際には、サブサンプリングによる分散B(θ)が
求まらない。論⽂ではこれを推定値B^に置き換
え、C>Bとなる係数を⽤いて系をコントロール
するなどの⼯夫をしている
さらにもう⼀段⼯夫すると、アルゴリズムは、
次のようになる
SGLD[Welling+11], SGRLD[Patterson+13]
SGLDの運動⽅程式は1次のLangevin Dynamics
18
SGHMCの2次のLangevin Dynamicsで
B→∞とした極限として得られる
SGLDのアルゴリズム
SGRLDは1次のLangevin DynamicsにFisher計量から
くるパラメータ空間の幾何的な情報を加える
G(θ)はフィッシャー⾏列の逆⾏列
SGNHT[Ding+14]
系の温度をコントロールするサーモスタット
のパラメータ ξ を⽤意し、摩擦をコント
ロールする
19
アルゴリズム
背景となるのは以下の計算
K(p) = pTp/2
Zkは p(p) ∝ exp(-K(p))の分配関数
mSGNHT[Gan+15]
サーモスタットに対応するパラメータ ξ を運動
量の各次元に⽤意する
20
アルゴリズム
Santa
⼀⾔で⾔うと、mSGNHT + ⾮ユークリッド化
+ RMSprop + 焼きなまし
21
• ベースとなる運動⽅程式はmSGNHT
• G1, G2にパラメータ空間の曲がり⽅の情報
を⼊れる (⾮ユークリッド化)
• G1, G2の推定をオンラインで⾏う
(RMSprop)
• 逆温度 β = 1とすれば事後分布からのサン
プリング、β を更新ごとに徐々に上げてい
き∞とすればMAP推定 (焼きなまし)
これは次の不変分布を持つ
Leapfrog法再考
Leapfrog法は元の運動⽅程式を2つに分解し
て、交互に解析的に解いていると思える
22
ナイーブな⽅法 離散化
離散化
分解
Leapfrog法
Symmetric Splitting [Chen+15a] [Chen+15b] [Chen+15c]
Leapfrog法と同様に、運動⽅程式を⽅程式の和
に分解し各々を順番に解析的に解く
SGHMCの場合 [Chen+15a]
23
これを3つに分解して
A(h/2) → B(h/2) → O(h) → B(h/2) → A (h/2)
の順に解析的に解く
[Chen+15b]でmSGNHTに、[Chen+15c]でSantaにSSを
適⽤している
Baker-Campbell-Hausdorffの公式を使って離散化による
近似誤差がO(h2)→O(h3)になることが証明できる
統⼀的な理解 [Shi+12][Ma+15]
これまでに出したHMC, SGHMC, SGLD, SGRLD, (m)SGNHT, Santaはすべて同⼀の表式でかける
24
この運動⽅程式は逆温度 β のカノニカル分布を定常分布に持つ
[Ma+15]では、パラメータD, Qとして特別の値を⼊れて、新しいサンプリングアルゴリズム
SGRHMC, gSGRHMCを提案している
25
実験
モデル
• パラメータ:θ = (θ1, θ2)
• 事前分布:p(θ) = (N(0, 10), N(0, 1))
• ⽣成:p(x | θ) = N(θ1, 2)/2 + N(θ1+θ2, 2)/2
問題設定
• θ = (0, 1)として100サンプルをiidで⽣成
• 事前分布と⽣成⽅法はわかっているとしてパラ
メータの事後分布 p(θ | X) を推定
• 事後分布は (0, 1)と(1, -1)にモードがある⼆峰
性の⼭になる
26
⼿法
• HMC, SGHMC, SGLD, mSGNHT
• HMCは勾配の計算に100サンプル使⽤、それ
以外は10サンプルずつミニバッチで使⽤
対数尤度の勾配 -∇log p(θ | x) はChainerで⽣成
モデルを作ってback propで計算
⼀昨⽇1.6.0が出ました
結果
27
HMC SGHMC-1(摩擦⼩) SGHMC-2(摩擦⼤)
SGLD mSGHMC-1(拡散⼩) mSGHMC-2(拡散⼤)
SGHMCは摩擦に対応する項を変え
mSGNHTは拡散に対応する項を変えた
まとめ
28
HMC
SGHMC
SGLD SGNHT
mSGNHT Santa
RMSprop
SGRLD
勾配を推定値
に置き換える
フィッシャー
計量の導⼊
摩擦→∞ サーモスタット
パラメータの導⼊
各次元に
サーモスタット
幾何情報の
推定⽅法の輸⼊
⾮ユークリッド化
+ 焼きなまし
SGRHMC
gSGRHMC
フィッシャー
計量の⼀般化
フィッシャー
計量導⼊
Copyright © 2014-
Preferred Networks All Right Reserved.

Stochastic Gradient MCMC