HELLO CYBERNETICS

深層学習、機械学習、強化学習、信号処理、制御工学、量子計算などをテーマに扱っていきます

変分ベイズ法の心2

 

 

follow us in feedly

はじめに

下記記事の続きで、お気持ちは理解している前提で進みます。

www.hellocybernetics.tech

変分ベイズ法の戦略

基本の復習

データ $D = {x_1, \cdots, x_N}$ が手元にあるときに確率モデル $p(x|\theta)$ と事前分布 $p(\theta)$ を設計するのがモデリングの第一歩でした。するとベイズの定理(あるいは乗法定理)から、下記の事後分布を獲得することがベイズ推論の目標になります。

$$ p(\theta | D) = \frac{p(D|\theta)p(\theta)}{p(D)} $$

さて、この分布を推論したときに最も嬉しい結果は $\theta$ を表す真の分布 $\hat p(\theta) $ にピッタリ一致することでしょう。しかし、私達は真の分布を知らないので、どのようにこれに近づけて行くかというのが問題になります。

一つの解決法として、真の分布に収束するような確率遷移核を上手に設計し、その確率遷移核を持つマルコフ連鎖でサンプリングを繰り返し、ヒストグラムを描かせることで分布を得るMCMCがあります。

もう1つが今回紹介する変分ベイズ法です。変分ベイズ法では推論したい分布をパラメトリックな関数として仮定し、適切な評価指標のもと仮定した近似分布の出来栄えを評価しながら、パラメータを少しずつ変えていく手法です(推論が最適化問題に帰着されている)。

すなわち、事後分布が

$$ p(\theta | D) = \frac{p(D|\theta)p(\theta)}{p(D)} $$

と表されており、こいつの分布の形状を表す関数を $q(\eta)$ と書き表すことにします。$\eta$ を上手く調整して事後分布を近似してやりたいという話です。実際にはこいつは $\theta$ を発生させる分布であるので、 $q(\theta ;\eta)$ と書いたり、 $q(\theta | \eta)$ と書いたり $q(\theta)_{\eta}$ と書いたりする場合もあります。この $q$ は兎にも角にも $\theta$ を発生させる分布であり、私達がこれから調整するのは $\eta$ であるということを明確に意識しておきましょう。

分布の評価指標

近似分布の出来栄えを評価するのに使われるのが、KLダイバージェンスです。天下り的ですが、KLダイバージェンスは確率分布 $q$ と 確率分布 $p$ の離れ具合を評価することが出来ます。そこで下記を最小化することで、 $q(\theta; \eta)$ の $\eta$ をいろいろ調整してみて $p(\theta | D)$ に最も近い分布を見つけてやろうと試みます。

$$ KL [q(\theta; \eta) : p(\theta | D)] = \int q(\theta; \eta) \log \frac{q(\theta; \eta)}{p(\theta | D)} d\theta $$

今、どういう状況になったのかを振り返ります。確率分布 $p(\theta |D )$ を求めたいというのがベイズ推論でした。そこで、こいつを一先ずでたらめな $q (\theta)$ で表して少しずつ分布の形を変えながら良さげなものを探そうと考えます。ところがこれでは抽象的すぎるし、分布の変え方をどうするのかもよくわからんので $q(\theta ; \eta)$ とパラメトリックな関数にして、 $\eta$ の調整に問題をすり替えました。そして、どんな分布の形が良いのか(どんな $\eta$ が良いのかを)をKLダイバージェンスで図ろうと決めたのです。

KLダイバージェンスは見た目が複雑に見えますが、もはや $\eta$ の関数に過ぎません。

ただし、ここで注意が必要です。私達は今 $q(\theta ; \eta)$ と事後分布の形状を制限してしまいました。パラメトリックに表された関数で表現できる形状以外のものは $\eta$ をどれだけ調整したところで獲得できないことになります。しかし、それでも、表しうる形状の中ではKLダイバージェンスの意味で最も近い分布を得ることが出来ますので一先ず良いとしましょう。

もう1つ注意すべきは、パラメトリックに関数を置いたことで最適化の進み方も決めてしまっている点です。何度も申してきたとおり、分布の形状を知りたいというのが問題であってその形状を調整するために $\eta$ というパラメータを導入したのでした。言わばこれは分布のイジりやすさを向上するために導入したものであって、それ以外の意味は基本的にはありません(仮定した分布によほどの意図がない限り、こいつはただの調整役に過ぎない)。

もしもパラメータの置き方をもっと工夫してみたり、あるいはパラメータを置かずとも近似分布 $q$ を調整する手段があるならばそれでも構わないのです。よほど良い $q$ の選び方をすれば、上手に調整する方法が何かしら見つかるかもしれませんね。

ELBO

引き続いて、KLダイバージェンスを最小化することをもう少し詳しく見ます。

$$ \begin{align} KL [q(\theta; \eta) : p(\theta | D)] & = \int q(\theta; \eta) \log \frac{q(\theta; \eta)}{p(\theta | D)} d\theta \\ & = \int q(\theta; \eta) \log \frac{q(\theta; \eta) p(D)}{p(\theta, D)} d\theta \\ & = \int q(\theta; \eta) \log p(D)d\theta + \int q(\theta; \eta) \log \frac{q(\theta; \eta)}{p(\theta, D)} d\theta \\ & = \int q(\theta; \eta) \log p(D)d\theta - \int q(\theta; \eta) \log \frac{p(\theta, D)}{q(\theta; \eta)} d\theta \\ \end{align} $$

ひたすら式変形を実施しました。ここで第一項に関しては $q(\theta; \eta)$ は確率分布であるので $\log p(D)$ と表すことができます。これは対数周辺尤度、あるいはエビデンスと呼ばれる値です。引数がすでに手元にある確率変数の実現値 $D$ であるので、$p(D)$ は具体的に値を計算できる定数にすぎません(ただし $p$ の形を私達は知らないので今は保留…)。

第二項の方がEvidence Lower Bound、略してELBOと呼ばれるものになります。ELBOは名前の通り、エビデンス(対数周辺尤度)の下界を示しており必ず、

$$ \log p(D) \geq \log \frac{p(\theta, D)}{q(\theta; \eta)} d\theta $$

となることが知られています(話は逆で、そうなることがわかったのでELBOと呼ばれている)。このエビデンスとELBOが答式で結ばれる条件が、

$$ KL [q(\theta; \eta) : p(\theta | D)] = 0 $$

となること、すなわちベイズ推論の結果、$q$ が 事後分布 $p$ をピタリと当てられた時になります。なので変分推論を行う際には「ELBOを最大化する」という表現が使われることも多々あります。エビデンスの方は直接は計算できない保留中の定数でしたので、 ${\rm KL} = {\rm evidence} - {\rm ELBO}$ となっており、KLを最小化することと ELBOを最大化することは同じことをしていることになります。

変分ベイズ法の具体的手段

関数 $q$ をどのように置くのか

さて、上記までの話で兎にも角にも

$$ KL [q(\theta; \eta) : p(\theta | D)] = \int q(\theta; \eta) \log \frac{q(\theta; \eta)}{p(\theta | D)} d\theta $$

を最小化しましょうという話になりました。 さて $q(\theta ; \eta)$ はどのように置くと良いのでしょうか。一つは正規分布のような分かりやすい分布を置いて、 $\eta = (\mu, \sigma)$ みたいにしてしまうことです。そうすると、実際の $\theta$ の事後分布が正規分布でなかったとしても、正規分布の中で最も実際のサンプルに近いものを探すことになります。

もう1つは

$$ q(\theta, \eta) = q(\theta_1, \eta_1)\cdots q(\theta_K, \eta_K) $$

と置いてみることです(ここで求めたい $\theta$ が$K$次元ベクトル、あるいは $K$個のパラメータを持っていたとしています)。これは各々のパラメータが(データの条件付き)独立であることを仮定していることになります。独立性を仮定しているので、各パラメータ間の相関はつかめなくなることに注意してください。仮に $\theta$ が行列ならば、 各成分それぞれを独立とみなしても良いですし、それがやりすぎだと思ったら、各列が独立とみなして各列が多次元正規分布であると仮定するような方法もあるでしょう。

このように複数のパラメータを有する分布を、個々のパラメータの単純な分布の積に分解してしまう方法を平均場近似と言います。

平均場近似は、事後分布を推論する際に「うまい分布の変え方」を上手くひねり出すときに使えます。例えば、$\eta$ を変分パラメータとして分布の調整役を担ってもらう方法を集中的に取りざたしてきましたが、単純な分布の集まりに変えてしまえば、うまい分布の調整の仕方をパラメータに頼らず考案できる可能性もあるのです(分布をイジる主たる手法が $\eta$ の導入であるというだけで、実は必ずしも使わなくていい…)。

個々らへんをゴリゴリに手計算しながら学びたい場合は

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

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

をおすすめします。