スライスサンプリングは、分布の特徴に合わせて自動的に調整される適応的になステップサイズを利用する手法です。
MH法の難点の一つはステップサイズに対して敏感であることです。
ステップサイズが小さすぎれば、サンプル点の移動が遅くなり、それに伴って定常分布への収束も遅くなり、
逆にステップサイズが大きすぎると、提案されたサンプル点が棄却される可能性が高まり、こちらも定常分布への収束が遅れます。
一方でスライスサンプリングは上記のようなパラメータ設定が不要であり、
また提案分布も必要もないことから、実装は非常に単純であり、適用範囲も広いです。
スライスサンプリングでは、目標分布に関して、補助変数を導入し、同時分布からサンプリングを行います。
目標分布はカーネルが容易に計算できるものとします。
この同時分布は
であり、です。
のに関する周辺分布は、
となります。
つまり、同時分布からサンプリングを行い、の値を無視することで、
からのサンプリングを行うことができます。
アルゴリズム
1. 一様分布から補助変数をサンプリングし、スライスを定義します。
2. を含む領域を見つけます。
3. 領域から一様に候補点をサンプリングします。
スライスサンプリングにおいて、を含む領域を決定する方法として、
stepping-out法とdoubling法を紹介します。
stepping-out法
stepping-out法は幅を設定し、現在の点を含む区間を拡張して領域を決定する方法です。
まず、現在の点の周りで幅で区間を設定します。
その際、区間の一様乱数を発生させ、区間の下限をとし、区間の上限をとします。
次に、幅で下限と上限を拡張します。両端がスライスの外側に出るまで、幅の拡張を繰り返します。
下図は、下限は1回の拡張でがスライスの外に出ており、上限は2回の拡張でスライスの外に出ています。
doubling法
doubling法は、幅を設定し、現在の点を含む区間を倍に増やすことで領域を決定する方法です。
まず、現在の点の周りで幅で区間を設定します。
その際、区間の一様乱数を発生させ、区間の下限をとし、区間の上限をとします。
次に、拡張する方向をランダムに決めます。そして、拡張する方向に、領域の幅が現在の幅の2倍になるように区間を拡張します。
doubling法では、領域の幅がのように倍で増えていきます。
下図は、1回目に下限方向に拡張し、2回目に上限方向に拡張を行っています。
偉人の名言
一生懸命やっている人を小馬鹿にするのは、
自分が敵わないから笑うことで逃げているのだ。
アントニオ猪木
参考リンク
動画
なし