機械学習とかコンピュータビジョンとか

CVやMLに関する勉強のメモ書き。

Fixing a Broken ELBOを読んだのでメモ

はじめに

Fixing a Broken ELBOを読んだのでメモ.

気持ち

教師なし表現学習の一般的なアプローチとしてデータをp(x,z|\theta)=p(z|\theta)p(x|z,\theta)で表現される様な潜在変数モデルにフィットさせる方法があげられる.通常はこのモデルを真の分布とのKLダイバージェンスL(\theta)=\mathrm{KL}[\hat{p}(x)||p(x|\theta)]を最小化する様に学習することでデータの潜在表現を獲得する.ただ,このKLダイバージェンスはほとんどの場合扱いにくく,代わりとしてevidence lower bound (ELBO)を最大化することでモデルの学習を行う.ただ,根本的な問題として,目的関数L(\theta)=\mathrm{KL}[\hat{p}(x)||p(x|\theta)]p(x|\theta)に関する式であってp(x,z|\theta)に関する式にはなってないため,不自然な目的関数になっていることがあげられる.実際先行研究の結果からも,ELBOが良い表現学習をするためには十分でないことがわかっている.そこでここでは観測Xと潜在表現Z相互情報量Iの側面から良い表現を導出するというのが話の流れ.以前に読んだモントリオール大の論文でも相互情報量を使った表現学習手法を提案していたが論文の時期的にはこちらが先.

相互情報量による表現学習

ここでの目標は確率的なエンコーダーe(z|x)を使って観測データxを意味のある潜在表現zに変換すること.ただしエンコーダーは同時分布p_e(x,z)=p^\ast(x)e(z|x),周辺分布p_e(z)=\int dxp^\ast(x)e(z|x),条件付き分布p_e(x|z)=p_e(x,z)/p_e(z)で表現される.この表現の良し悪しを測る指標として次の相互情報量を用いる.

相互情報量はある確率変数がもう一方の確率変数の情報をどれほど持つかを測る指標で次の様に計算される.

\displaystyle
I_e(X;Z)=\int\int dxdzp_e(x,z)\log\frac{p_e(x,z)}{p^\ast(x)p_e(z)}

相互情報量X,Zが独立の場合0(エンコーダーはデータの情報を一切持たない状態)になり,またZ=Xの場合はXエントロピーH(X)エンコーダーはデータの情報の全てを持つ状態)になる.

課題となるところは相互情報量の計算式に真の分布p^\ast(x)が含まれていて計算が困難なことと,周辺分布を求めるための周辺化の演算p_e(z)=\int dxp_e(x,z)の計算が困難なこと.前者は経験分布\hat{p}(x)に置き換えることで,後者は相互情報量のvariational boundsを使うことで回避できる.相互情報量の下界と上界は次の様に定められる.

\displaystyle
H-D\leq I_e(X;Z)\leq R\\ \displaystyle
H\equiv-\int dzp^\ast(x)\log p^\ast(x) \\ \displaystyle
D\equiv-\int dxp^\ast(x)\int dze(z|x)\log d(x|z) \\ \displaystyle
R\equiv\int dxp^\ast(x)\int dze(z|x)\log\frac{e(z|x)}{m(z)}

d(x|z)はいわゆるデコーダーでp_e(x|z)を近似する役割をし,m(z)はmarginalと呼ばれp_e(z)を近似する役割をする.Hはデータのエントロピーでデータセットの分布具合を測る役割をするが,データセットの操作はできないので定数.Ddistortionと呼ばれ,いわゆる再構成の良し悪しを測る項.Rは比率(rate)と呼ばれ,エンコーダーとmarginalのKLダイバージェンスの平均を表している.データが離散の場合にはH,D,Rは全て非負の値をとる.

D=0はデータを完璧にエンコードしてデコードすることができる(再構成できる)という状態で,これをauto-encoding limitと呼ぶ.そのauto-encoding limitでもっとも小さいRHによって与えられる.つまりR=H,D=0の状態であり,この状態はd(x|z)=p_e(x|z)であることから下界がタイトであることを表す.逆にm(z)p_e(z)をうまく近似できていない場合,Rは大きな値をとり,m(z)Rにしか関係がないため単純にコストが大きくなっている状態を表す.

R=0RがKLダイバージェンスであることからe(z|x)=m(z)であることを表し,e(z|x)xに独立であることを意味する.したがってエンコーダーはデータの情報を全く表現できておらず,表現学習が失敗していることを表す.このとき,十分強力なデコーダーを用意すればzxが独立でも無理やり再構成を行うことができるため,Dは下界であるデータのエントロピーHまで下げることができる.これはR=0,D=Hの状態を表していて,これをauto-decoding limitと呼ぶ.Rが固定値でDが大きな値をとる場合にはd(x|z)Dとしか関係ないため単純にコストが大きくなっている状態を表す.

最後にD=H-Rの状態をとる場合にはm(z)=p_e(z),d(x|z)=p_e(x|z)の両方が成り立つため相互情報量の下界・上界共にタイトとなる.

仮に,d(x|z),m(z),e(z|x)に関して有限のパラメータしか持たない場合,一般的に相互情報量の下界・上界はタイトになることはない.ただし,不等式を最もタイトに抑えるDまたはRは存在することは保証されているため,H=R+Dを使って最適解を求めることができる.さらに,意図的にm(z)の近似精度を下げて固定されたDのもとでRを増加させることや,d(x|z)の近似精度を下げて固定されたRのもとでDを増加させることが可能.

\beta-VAEとの関係

Rを固定とする代わりに,最適なDRの関数D(R)として考える.すると,ルジャンドル変換により,固定の\beta=\frac{\partial D}{\partial R}の下で\min_{e(z|x),m(z),d(x|z)}D+\beta Rを解くことで最適なRDを求めることができる.目的関数を陽に書き表わせば次の様になる.

\displaystyle
\min_{e(z|x),m(z),d(x|z)}\int dxp^\ast(x)\int dze(z|x)\left[-\log d(x|z)+\beta\log\frac{e(z|x)}{m(z)}\right]

これは\beta-VAEの目的関数そのもので,仮に\beta=1の場合にはVAEで使われていたELBOと一致する.Dは再構成誤差の項を表し,RがKL項を表していることになる.ここでは\beta\ll 1の場合にはRが大きくてDが小さくなり,\beta\gg 1の場合にはDが大きくてRが小さくなる.

まとめ

相互情報量の挟みうちから良いELBOを導出したということ.なんとなく生成モデル(というか表現学習)で相互情報量が注目されているのかなという感じがする.