29
Stochastic Gradient MCMC 株式会社 Preferred Networks ⼤野健太 [email protected] 2016/01/21 Preferred セミナー

Stochastic Gradient MCMC

Embed Size (px)

Citation preview

Stochastic Gradient MCMC

株式会社 Preferred Networks

⼤野健太 [email protected]

2016/01/21Preferred セミナー

⾃⼰紹介

• ⼤野健太(@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/21/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.htmlhttp://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/2Zkは 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.