多峰性の事前分布ってどうやって作るの?
ベイズ学習では、複雑なモデルにおけるパラメータの学習を効率的に行うために、しばしば観測モデルに対する共役な事前分布を仮定します。例えばベルヌーイ分布のパラメータの事後分布を推定するために、事前分布をベータ分布にしたりします。ウェブを検索すると様々な確率分布のパラメータに対応する共役事前分布のリストを見つけることができますが、そもそも、データを表現する観測モデルが決まってしまうと自動的にそのパラメータの事前分布が決まってしまうのは何だか窮屈な感じがしてしまいます。
今回はグラフィカルモデルを工夫することによって、もっと自由な、例えば多峰性の事前分布などを簡単に作れることをお話ししたいと思います。
[必要な知識]
下記をさらっとだけ確認しておくといいです。
- ベイズの定理(確率の加法定理、乗法定理)
- グラフィカルモデルの基礎
- 多次元ガウス分布
- 基礎的な行列計算
さて、改めてベイズ学習におけるパラメータの学習を書いてみると次のようになります。
ここでは観測データ、はモデルのパラメータです。さらにはパラメータの事後分布、は尤度関数、はパラメータの事前分布と呼ばれています。ベイズ学習を言葉に翻訳すると、
「パラメータに関する我々の事前知識は、観測データに対するモデルの尤もらしさを通して、事後の知識に変換される」
というプロセスになります。
で、今回は尤度関数を計算するモデルとして次のようにガウス分布を仮定します。
ここで今回推定したいパラメータは平均値であり、分散に関しては既知で固定であるものとします。
・単峰性事前分布によるガウス分布の推定
まず始めに、ガウス分布の平均値パラメータに対する一番シンプルな事前分布の選び方は、共役事前分布であるガウス分布を使うことです。*1
ここでとはそれぞれ平均値と分散パラメータであり、と同様固定値であるものとします。
このモデルに対して個のデータを観測した後の事後分布は、グラフィカルモデルで表現すると次のようになります。
さて、さっそく事後分布を計算してみましょう。事後分布はベイズの定理から次のように計算できます。
両辺対数を取って計算を進めることにします。に関する分布を求めたいので、無関係な項はすべて定数項に吸収させてしまいます。
結果はやはりガウス分布になり、新たに文字とを導入すれば次のように書けます。
・多峰性事前分布によるガウス分布の推定
さて、今度は先ほどの単純な共役事前分布と違い、に対して個の異なる平均値の分布からなる、多峰性の事前分布を構築してみましょう。感覚的な例をいうと、推理小説で「犯人が一人なのはわかっているけど、容疑者が複数いる」というような状況設定です。
これは次のグラフィカルモデルで示すように、新たな潜在変数を導入することによって実現できます。
まず始めに新しく登場したに対する確率分布を定義してみましょう。ここではもっとも単純な離散変数の分布であるカテゴリカル分布を使います。
ただしです。さらに、の分布は次のようにの条件付き分布になります。
このようなに対する記法は1 of K表記というように呼ばれたりします。例えばのように、の個ある要素のうち一つだけが1を取ることによって、どの分布が使われるのかを指示(indicate)することができます。
それでは事後分布を計算してみることにしましょう。
今回はとの2つの事後分布を求めなければなりませんが、これはそれぞれ別々に解析的に計算できます。まず上の数式からに関わる項のみを取り出してみましょう。例によって対数計算を行うと、
となります。先ほどの単峰性の例と同じようにのみに注目して計算を行うと、結果としての事後分布はに依存する形となり、次のような(条件付き)ガウス分布になります。
さて、今度はの事後分布も求めてみましょう。これはを考慮すれば簡単に計算できます。
に掛け算されている部分が事後分布のパラメータになります。書き直すと次のようになります。
は次のように計算されます。
実装上はが足して1になるように正規化してください。
以上、事後分布を見てみると、事前分布と同じ形状を持っていることになります。ガウス分布の平均値だからといって単純にガウス事前分布を使う必要はなく、今回のような多峰性のガウス分布を事前分布にしても、最適化のような計算をせずに解析的に事前分布と同じ関数形の事後分布が求まるんですね。*2
さて、ちょっと思った以上に計算式ばかりの記事になってしまったので今日は一旦ここで切ります。今回はガウス分布の平均値パラメータの事後分布を推定する例を使って、多峰性の事前分布をどのように構築したらよいのかを説明しました。次回は今回紹介した事前分布を使った簡単な実験を行い、ベイズ学習における興味深い特性に関してお話したいと思います。
=>続きの記事はこちらです。
アニメでわかるベイズ推論によるパラメータ学習 - 作って遊ぶ機械学習。