ハイパーパラメータの決め方
Collapsed Gibbs samplingなどではパラメータは積分消去されることからハイパーパラメータが通常のパラメータの役割を果たすことが少なくありません。そういうわけで通常だと割と適当に「えいやっ!!」と決めてしまうようなハイパーパラメータをベイジアンな人たちは頑張って決める。LDAのときとかは経験ベイズっぽく最適化したり、DPMのハイパーパラメータのようなものはハイパーパラメータに事前分布(つまり、ハイパーハイパーパラメータが導入されるということである...)をかけて、ハイパーパラメータもサンプリングしてしまうのが普通らしい。どこまで事前分布を置くのが適切なのかは色々あるんだろうけど、とりあえずやり方だけは把握しておくことにする。"Hyperparameter estimation in Dirichlet process mixture models"を参考にしながらメモる。Antoniak(1974)によると、DPMにおけるクラスタ数kに対して
と書けるらしい。これを使うと、DPMのハイパーパラメータの事後分布は
とできるので、2つの項についてそれぞれ考えていくことにする。どうでもいいですけどってちょっとすごって思ってしまいました。でも、PRMLのSection 3でもみたいなものが出てきたことあったなぁというのを思い出すとそんなに特別でもないのかもしれない(ようするによく分かっていない)。
まず、のpriorについて考えていこう。は0以上の値を取る確率変数として考えられるので、Gamma分布を事前分布として置くのが都合がよさそう(ということ)。ところで、ののところは
と書ける。これはベータ関数とガンマ関数のよく知られた関係式との関係式を使うと*1
とできるからである。
data augmentation(データ拡大)
最初見たときはこれの何がうれしいのかよく分からないが、ベータ関数を定義にしたがって積分の形で書いてみるととできて、これは確率変数xってものがあったらそれを周辺化したものだと見なすことができる。xを周辺化しないで書くと
とできる。また、とおいて、両辺の対数を取るとで、もっかい指数に戻すととできる*2ので
とできる。
さて、なんでこんなことをやっていたかの種明かしをすると
- からサンプリングしたい => しかし、ちょっと見た感じだとこの事後分布からのサンプリングは直接は厳しそう...
- Gamma関数をばらして、ベータ関数に持っていき積分の形にすると、追加の変数xが周辺化されたものっぽいということが分かる
- xとの同時分布からは(後で見るように)容易にサンプリングできる
- こやつを使えば元の欲しかったが手に入りそうだ!!!
ということである。こういうテクニックをデータ拡大アルゴリズム(data augmentation algorithm)と呼ぶらしく「そんなん知るかいな」と思ったが、実はPRMLの251ページにIPアルゴリズム(モンテカルロEMとも呼ばれる?)として紹介されていたorz(そして、この部分昔自分でゼミの時に紹介したことがあったところであったorz)。
- 作者: 石井健一郎,上田修功
- 出版社/メーカー: オーム社
- 発売日: 2014/08/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る