Upload
wk77
View
1.165
Download
8
Embed Size (px)
Citation preview
PRML § 11.5 - § 11.6 p. 1
「パターン認識と機械学習」 読書会「パターン認識と機械学習」 読書会
第第1111章 サンプリング法章 サンプリング法
§ 11.5 § 11.5 ハイブリッドモンテカルロアルゴリズムハイブリッドモンテカルロアルゴリズム
§ 11.6 § 11.6 分配関数の推定分配関数の推定
Twitter ID: wk77Twitter ID: wk77
PRML § 11.5 - § 11.6 p. 2
§ 11.5 ハイブリッドモンテカルロアルゴリズム• Metropolis アルゴリズムの大きな制限
- 状態空間の探索が非効率的な、ランダムウォークの振る舞いを示す可能性がある
- 単純に大きなステップにしても、棄却率が高くなるだけで問題解決にならない
• ハイブリッドモンテカルロアルゴリズム- 棄却確率を小さく保ったまま
システムの状態に大きな変化を起こすことができる- 状態変数の対数確率の勾配が容易に求められる、
連続変数の分布に対して適用可能• 本節は自己完結的で、物理学の背景知識は必要でない
PRML § 11.5 - § 11.6 p. 3
§ 11.5.1 力学系• 確率的サンプリングへの力学的アプローチ
- ハミルトン力学の下で時間発展する物理システムの振る舞いのシミュレーションに起源がある
• 目的は、与えられた確率分布からのサンプリング• ハミルトン力学の枠組みは、
確率的シミュレーションをハミルトン系の形にあてはめることにより活用される
PRML § 11.5 - § 11.6 p. 4
位置変数、運動量変数、位相空間• τ で表される連続時間の下で、
状態変数 z = {zi} の時間発展を考える• z を位置変数とし、z の τ に関する 2 次の微分方程式
により、古典力学の第ニ法則を表現できる ex) (質量 m = 1 として考える)
• 位置変数 z の時間変化率に対応する、運動量変数 を導入することで、前述の 2 次の微分方程式を、対になる 2 つの 1 次の微分方程式にできる
ex) • 位置変数と運動量変数の結合空間を、位相空間と呼ぶ
PRML § 11.5 - § 11.6 p. 5
確率分布のポテンシャルエネルギーによる表現• 一般性を失うことなしに、確率分布 p(z) を
の形に書くことができる
• E(z) は状態 z における、系のポテンシャルエネルギーと解釈される- 全エネルギーではない。定義より E(z) = - ln p(z) - ln Zp
• 系の加速度は運動量の変化率であり、
作用する力で与えられ、ポテンシャルエネルギーの勾配の符号を逆にしたものとなる
PRML § 11.5 - § 11.6 p. 6
例:ガウス分布
• 平均 0 分散 σ2 の一次元ガウス分布(図は σ=2.0)
E(z) p(z)
PRML § 11.5 - § 11.6 p. 7
ハミルトン力学の枠組みを用いて定式化し直す• 前述の力学系を定式化し直す• 運動エネルギー K(r) を次式で定義する
• 系の全エネルギーは、ポテンシャルエネルギーと運動エネルギーの和であり、ハミルトン関数と言う
• 前述の式から、力学系をハミルトン方程式で表せる
PRML § 11.5 - § 11.6 p. 8
ハミルトン関数の性質(1)• この力学系の時間発展において、
ハミルトン関数 H の値は一定である
• ハミルトン力学系の時間発展において、
位相空間の体積が保存される=リューヴィルの定理
PRML § 11.5 - § 11.6 p. 9
ハミルトン関数の性質(2)• 変数 (z, r) の空間内の領域を、
ハミルトン方程式に従って時間発展させたとき、その形は変化するが体積は変化しない
• 流れ場(位相空間における位置の変化率)が
で与えられ、この場の div が 0 になることでわかる
PRML § 11.5 - § 11.6 p. 10
参考)z のみから p(z) を求めてみる• 前述の p(z) は位置エネルギー E(z) だけに依存する
- 後述のハミルトニアン MC は p(z, r) であることに注意- p(z) を生成する更新則により z を更新する訳ではない- 一次元ガウス分布を例に σ を与えた上で z を更新する- z のとりえた範囲内(初期値依存)で p(z) は正規分布の形
sigma <- 2.0;z <- 5.0;r <- 0.0;epsilon <- 0.1;trial <- 100;E <- function(z) (z^2)/(2*sigma^2);Zp <- sqrt(2*pi)*sigma;p <- function(z) 1/Zp * exp(-E(z));force <- function(z) -1/(sigma^2)*z;zList <- z;for (i in 1:trial) { r <- r + epsilon * force(z); z <- z + epsilon * r; zList <- append(zList, z);}hist(zList);plot(zList, p(zList));
PRML § 11.5 - § 11.6 p. 11
位相空間の上での同時分布• ここで、全エネルギーがハミルトン関数である
位相空間の上での同時分布、すなわち で与えられる分布を考える(p(z)でないことに注意)- 体積の保存と H の保存という 2 つの結果から、
ハミルトン力学が p(z, r) を不変にすることが導かれる- H が近似的に一定である位相空間の小さな領域は、有限時間の時間発展をしても、体積も H の値も不変でH のみの関数である確率密度も変化しない
• H は不変だが、z と r は変化するので、この力学を有限の時間区間で積分すれば、ランダムウォークを避け、系統的な方法で z に大きな変化を起こせる
PRML § 11.5 - § 11.6 p. 12
参考)p(z, r) を計算してみる• p(z, r) を E(z) + K(r) から計算する
- 一次元ガウス分布(ZH = 2πσ)- …検討中
sigma <- 2.0;z <- 10.0;r <- 0.0;epsilon <- 0.01;trial <- 10000;H <- function(z_, r_) 1/(2*sigma^2)*(z_^2) + 1/2*(r_^2);Zh <- 2*pi*sigma;p <- function(z_, r_) (1/Zh) * exp(-H(z_, r_));force <- function(z) -1/(sigma^2)*z;zList <- z;rList <- r;for (i in 1:trial) { r <- r + epsilon * force(z); z <- z + epsilon * r; zList <- append(zList, z); rList <- append(rList, r);}plot(zList, rList);plot(zList, p(zList, rList) );
PRML § 11.5 - § 11.6 p. 13
エルゴード的なサンプリングスキーム• H の値が一定なので、ハミルトン力学系の時間発展は
p(z, r) からエルゴード的にサンプリングしない• エルゴード的にサンプリングするために、
分布 p(z, r) を不変に保ちつつ H の値を変える、位相空間での追加的な移動を導入する
• 最も簡単な方法が、r の値を z を条件とする分布から抽出したもので置き換えることである- これはギブスサンプリングの1ステップと見なせる- 求めたい分布も不変にすることができる- z と r は分布 p(z, r) で独立なことに注意すると、条件付き分布 p(z|r) はガウス分布であり、容易にサンプリングできることがわかる
PRML § 11.5 - § 11.6 p. 14
ハミルトン方程式の数値積分 (1)• このアプローチを実際に応用するには、
リューヴィルの定理が厳密に成立するように、ハミルトン方程式の数値積分を行う必要がある
• リープフロッグ法はその実現方法の一つである
- 現在の位置から現在の加速度を求める- 現在の加速度により、半ステップ後の運動量を求める
- 半ステップ後の運動量により、1ステップ後の位置を求める
- 1ステップ後の位置から1ステップ後の加速度を求める- 1ステップ後の加速度により、1ステップ後の運動量を求める
PRML § 11.5 - § 11.6 p. 15
ハミルトン方程式の数値積分 (2)• 上図の計算の繰り返しは、下図のように省略できる
• 位置変数と運動量変数の一連の更新は、互いを飛び越えて進んでいくことがわかる
• 離散近似に由来する、連続時間の力学系との誤差の影響を、ハイブリッドMCで取り除く方法を後述する
経過時間 (単位は ε) 0 0.5 1 1.5 2位置変数 z ① ④ ⑧
運動量変数 r ③ ⑥ ⑦ ⑩加速度 ② ⑤ ⑨
経過時間 (単位は ε) 0 0.5 1 1.5 2位置変数 z ① ④ ⑦
運動量変数 r ③ ⑥加速度 ② ⑤ ⑧
PRML § 11.5 - § 11.6 p. 16
ハミルトン力学系における勾配情報の利用• ハミルトン力学系による方式は基本的な Metropolis アルゴリズムと異なり、分布自身のみならず、確率分布の対数の勾配に関する情報も使える
• 勾配の情報が得られるほとんどの場合、それを利用することが大きな利点となる- D 次元の空間で勾配を求める追加の計算コストは、
ハミルトン関数の値を求めることと比較して、普通は D に依存しない定数倍である
- ハミルトン関数から得られるスカラー値 1 個に比べて、D 次元の勾配ベクトルは D 個の情報を持っている
PRML § 11.5 - § 11.6 p. 17
§ 11.5.2 ハイブリッドモンテカルロアルゴリズム• 非ゼロのステップサイズ ε に対して、
リープフロッグ法は、積分結果に誤差をもたらす• ハイブリッドモンテカルロアルゴリズム (以下 HMA)
- ハミルトン力学と Metropolis アルゴリズムを組み合わせ、離散化に伴うあらゆるバイアスを取り除く
- 運動量変数 r の確率的な更新と、リープフロッグ法によるハミルトン力学系の更新を交互に行う
• リープフロッグ法を適用して得られる状態候補が、ハミルトン関数 H の値に基づくMetropolis 規準に従って、受理または棄却される
PRML § 11.5 - § 11.6 p. 18
候補ステップの受理• (z,r) が初期状態で、(z*,r*) が積分後の状態とする• 積分後の候補状態は、確率
で受理される
• もしリープフロッグ積分がハミルトン力学を完全に
シミュレーションするとしたら、H が不変なので、このような全ての候補ステップは常に受理されるが、実際には数値積分誤差で H が減少することがある
PRML § 11.5 - § 11.6 p. 19
Metropolis 規準でバイアスを取り除く(1)• 実際には数値積分誤差により H が減少することが
あるので、Metropolis 規準でバイアスを取り除く- 得られるサンプルが元の分布から抽出されることを保証
• 積分の更新式が詳細釣り合い条件を満たすよう、リープフロッグスキームを以下のように修正して実現
• 積分の各 1 ステップを開始する前に時間が進む方向(+ε)に積分するか、時間が戻る方向(ーε)に積分するかを、同一確率でランダムに選択する- リープフロッグ積分法は時間に対して可逆なため、+ε で積分した効果と、ーε で積分した効果とが正確に打ち消しあう
PRML § 11.5 - § 11.6 p. 20
Metropolis 規準でバイアスを取り除く(2)• リープフロッグ積分の +ε ステップ(再掲)
- zi か ri のどちらかを、他の変数の関数となる量だけ更新- 位相空間の領域を歪めるが、体積は変化させない
PRML § 11.5 - § 11.6 p. 21
Metropolis 規準でバイアスを取り除く(3)• 前述の性質から、詳細釣り合い条件の成立を示す
- 位相空間の小さな領域 R を考える- +ε の L 回のリープフロッグ更新で、R が R' に写像される
• R と R' は同じ体積 δV を持つ- 初期点を分布 (11.63)
から選び、L 回の更新を行うと、領域 R から始めて R' へと至る確率 p(R)δV ½ A(R', R) は
• 係数 ½ は +ε で積分することを選択した確率
- 同様に、領域 R' から始めて R へと至る確率は
PRML § 11.5 - § 11.6 p. 22
Metropolis 規準でバイアスを取り除く(4)• R から R' へ至る確率
と、R' から R へ至る確率
とが等しい- H(R) = H(R') のときは自明- H(R) > H(R') のとき
• R から R' へ至る確率内の min 関数は exp(H(R)-H(R'))• R' から R へ至る確率内の min 関数は 1
- H(R) < H(R') のときも同様に解ける
• したがって、詳細釣り合い条件が成り立つ
PRML § 11.5 - § 11.6 p. 23
リープフロッグ法のステップサイズを可変化する• 「リープフロッグ法で数値積分を行うとき、有限回の繰り返しの後で開始点に戻ってくる例を作ることは難しくない」- (11.70) 式で円周上を1周してきたときのこと?- +ε ステップの後に -ε ステップを行った場合?
• ランダムウォーク的になり探索範囲が狭まらないか?• 各リープフロッグ積分の前で、
ステップサイズの大きさを、ある小さな範囲からランダムに選択することで、容易に避けることができる
PRML § 11.5 - § 11.6 p. 24
多変量ガウス分布への適用(1)• 独立な要素を持つガウス分布 p(z) を考える• ハミルトン関数は
- ハイブリッドMCは回転等方性を持つので、
相関がある要素を持つガウス分布にも適用できる• 候補点の受理と棄却は、H の値に基づいて行われる
- リープフロッグ積分の間、zi と ri は独立に時間発展する- どれか 1 つの変数にでも大きな積分誤差があれば、
高い棄却率を招く
PRML § 11.5 - § 11.6 p. 25
多変量ガウス分布への適用(2)• HMC におけるリープフロッグ積分の目的は、
位相空間内を初期状態から比較的独立な新しい状態へ大きく移動させつつ、高い受理確率を実現させること- 離散積分が連続時間力学の良い近似であるためには、
積分のスケール ε は、ポテンシャルが有意に変化する最も短い長さスケールより小さい必要がある
- これは σi のうち最も小さな値 σmin に支配される- σmax / σmin のオーダーの繰り返し回数だけ積分を続ける
• 分散 s2 の等方ガウス分布への Metropolis 法の適用- 高い棄却率を避けるため、ステップ値のオーダーは σmin- 状態空間の探索はランダムウォークで進み、おおよそ独立
な状態に達するまでにオーダー (σmax / σmin)2 のステップ
PRML § 11.5 - § 11.6 p. 26
§ 11.6 分配関数の推定• サンプリングアルゴリズムのほとんどは、
定数倍の係数を除いた確率分布の関数形だけに注目
• 分配関数とも呼ばれる正規化定数 ZE は、p(z) からサンプリングを行うためには必要ない
• しかし、ZE の値はモデルエビデンスを表すため、ベイズモデルを比較するときに便利であり、この値を知る方法が関心の対象となる
• z の状態空間上で exp(-E(z)) の和を取ったり積分したりして直接 ZE を計算することは困難と仮定
PRML § 11.5 - § 11.6 p. 27
モデルの比較に使うのは分配関数の比率• モデルの比較のために実際に必要になるのは、
2つのモデルの分配関数の比率である• この比率に事前分布の比率を掛けることで、事後分布の比率を得て、モデル選択やモデル平均に用いる
PRML § 11.5 - § 11.6 p. 28
分配関数の比率を重点サンプリングで推定(1)• 分配関数の比率を推定する方法の一つとして、
エネルギー関数 G(z) を持つ分布からの重点サンプリングを用いる方法がある- z(l) は、pG(z) で定義される分布から抽出されたサンプル- 分布 pG が解析的に計算できるなら、ZE そのものが求まる
PRML § 11.5 - § 11.6 p. 29
分配関数の比率を重点サンプリングで推定(2)• 重点サンプリングの分布 pG が、分布 pE に近く、比率が大きく変動しない場合は精度が良いが、実際には、複雑な種類のモデルに対しては、重点サンプリングに適した、解析的に指定された分布はすぐには見つからない
• 代わりに、マルコフ連鎖から得たサンプルを利用する- マルコフ連鎖の遷移確率 T(z,z')- サンプル集合 z(1), ... , z(L)
- サンプリング分布は
のように表され、直接 (11.72) で用いることができる
PRML § 11.5 - § 11.6 p. 30
単純な分布と複雑な分布とを補完する連鎖(1)• 複雑な分布の分配関数の値を求めたい
- 比較的単純な分布でしか分配関数の値を直接計算できない- 2つの分配関数の比率を推定する方法は、
2つの対応する分布が十分に近くなければならない• 分配関数の比率を直接求める試みは困難
• 連鎖 (chaining) と呼ばれる方法で扱うことができる• 単純な分布 p1(z) と複雑な分布 pM(z) の間を補完する、一連の中間の分布 p2, ... , pM-1 を導入する
• 中間の比率は前述のモンテカルロ法を用いて決定する
PRML § 11.5 - § 11.6 p. 31
単純な分布と複雑な分布とを補完する連鎖(2)• 中間の系列を構築する方法の一つは、
連続パラメータ 0 α 1≦ ≦ を含み、2つの分布の間を補完するエネルギー関数 を用いることである
• 連鎖における中間の比率をMCにより見つける- 各比率に対してマルコフ連鎖を再スタートするより、
単一のマルコフ連鎖を実行するほうが効率的である- 最初に系 p1 に対してマルコフ連鎖を実行し、
適切なステップ数の後で系列内の次の分布に移る- しかし、各中間分布でのサンプリングで、
系は平衡分布に近く保たれる必要がある