KDOG Notebook

どうも、古くからの友人です。

ELBOの計算とモデル選択

はじめに

ベイズ推論におけるモデル選択はどのように行えばいいのか実験しました。 一例にすぎませんが...

モデル

2次元の混合ガウス分布を変分推論によって学習します。観測データx_nがクラスターkの2次元ガウス分布から生成されているとします。 x_nがどのクラスターに属するかを表す潜在変数s_nを用いると生成モデルは次のように表すことができます。

f:id:kdog08:20190726180326p:plain

ガウス分布の平均および精度パラメータに対しては、ガウス・ウィシャート分布を事前分布として与えます。

f:id:kdog08:20190726181108p:plain

潜在変数は、カテゴリ分布で表します。

f:id:kdog08:20190726181124p:plain

カテゴリ分布のパラメータに対しては、ディリクレ分布を事前分布として与えます。

f:id:kdog08:20190726181139p:plain

ELBO

変分推論による学習は、周辺尤度の下限を最大化することと同じです。具体的には、周辺尤度の対数に対してイェンセンの不等式を用いることで 得られる下限、ELBO; evidence lower boundを最大化します。 したがって、モデルが観測データをどれくらい説明できているかはこのELBOが一つの評価基準になると言えるでしょう。

f:id:kdog08:20190726171326p:plain

上式の期待値およびKLダイバージェンスの計算は参考文献を参照するといいと思います。

実験

サンプルデータを下に示しました。一見して分かる通り、クラスター数はK=6です。

f:id:kdog08:20190726181923p:plain:w300

今回の実験の目的は、モデルのクラスター数に対してELBOの値がどのように変化するのかを知ることです。 まず、K=1~10まで変えたときの分布の変化を以下にまとめました。

f:id:kdog08:20190726182138p:plainf:id:kdog08:20190726182204p:plainf:id:kdog08:20190726182316p:plainf:id:kdog08:20190726182354p:plainf:id:kdog08:20190726182424p:plain
f:id:kdog08:20190726182449p:plainf:id:kdog08:20190726182452p:plainf:id:kdog08:20190726182455p:plainf:id:kdog08:20190726182457p:plainf:id:kdog08:20190726182500p:plain

各学習結果のELBOをプロットすると下図の通りです。K=6以上になると、ELBOがほとんど変わらないことが分かりました。サンプルデータを説明する上では、K=6として十分であると解釈できそうです。 あるいは、K>6としてもデータに対してパラメータが過剰であるという説明の仕方もできそうです。

f:id:kdog08:20190726183201p:plain:w300

参考文献

機械学習スタートアップシリーズ ベイズ推論による機械学習入門 (KS情報科学専門書)