# #10 Auto-Encoding Variational Bayes https://arxiv.org/abs/1312.6114 ###### tags: `論文まとめ` `VAE` # 要旨 複雑な事後分布を持ちデータセットが大規模な有向確率モデルを学習する際の効果的な手法として確率的変分推論と学習アルゴリズムを導入する. 変分下界の再パラメータ化により,通常の確率勾配降下法を用いて最適化できる下界推定を行うことが可能になり,また,データ点ごとに潜在変数が連続するような独立同分布(I.I.D.)なデータセットにおいて,この下限推定モデルを用いて難解な事後推論モデルに近似推定モデルを適用することで事後推定を効率的に行うことが可能になる. # 導入 複雑難解な事後分布を持つ連続的な潜在因子やパラメータの有効確率モデルの効果的な推定を行うために,本論文では変分ベイズアプローチを用いて解決を行う手法を提案する.既存の平均場推定アプローチでは近似事後分布の期待値の分析的な解を要するため,一般の複雑な事後分布系に適用することは困難である. この論文では変分の下界を再パラメータ化することで,下界の単純な微分可能不偏推定量を得ることができることを示し,導入するSGVB(確率的勾配変分ベイズ)推定を利用することで,連続潜在因子空間及びパラメータを擁するような任意のモデルに対し,通常の確立的勾配上昇法の技法を用いて効果的に近似事後確率推定を行うことが可能となる. 独立同分布なデータセットかつ,データポイントごとの潜在因子空間が連続である場合には,のちに紹介するAEVB(自己符号化器変分ベイズ)アルゴリズムを提案する.この近似事後推定モデルは認知やノイズ除去,および表現学習などの多くのタスクで利用することができる. # 方法 $N$個の独立同分布からなるサンプル$\mathrm{x}$からなるデータセット$X=\left\{x^{(i)}\right\}_{i=1}^N$を考える.データを不可観測な潜在因子ランダムノイズ$z$を含む,以下に示すようなランダムな処理により生成されていると考えるとする. 1. 値$z^{(i)}$をある事前分布$p_{\theta^*}(z)$に従って生成する. 2. 値$x^{(i)}$をある条件付き分布$p_{\theta^*}(x|z)$に従って生成する. 上述の分布$p_{\theta^*}(z),p_{\theta^*}(x|z)$はパラメトリックな分布の系列$p_{\theta}(z),p_{\theta}(x|z)$から定義されるものとし,この確率密度関数はほとんど至る所で$\theta,z$に関して微分可能なものであると仮定する. 周辺確率や事後確率についての一般的な単純化仮定ではなく,以下の場合によって効果的に機能するアルゴリズムを考える. 1. イントラクタブル性: 周辺確率$p_{\theta}(x)=\int p_{\theta}(z)p_{\theta}(x|z)dz$が多項式時間で解けないほど複雑(イントラクタブル)で,真の事後確率密度$p_{\theta}(z|x)=p_{\theta}(x|z)p_{\theta}(z)/p_{\theta}(x)$もイントラクタブル(EMアルゴリズム適用できない)とする.このイントラクタブル性は非線形な隠れ層を用いたNNでは極めて当たり前に表れる性質である. 2. 巨大なデータセットを擁する: モンテカルロEM法などのサンプリングが主な手法では1エポック当たりの時間が肥大化し収束が大幅に遅延するようなデータを用いている. 上記のシナリオでは,次に示すような3つの問題に対して,解決案を提案しているといえる. 1. 効果的な$\theta$の近似ML,MAP推定.これにより,隠れ層のランダムな処理を模倣し,実データをまねた人工データの生成が可能となる. 2. $\theta$により生成された値$x$を与えた際の,潜在変数$z$の効果的な事後推定. 3. 変数$x$の周辺確率の効果的な近似.これはCV分野においてデノイズだとか,超解像とかの事前に$x$が必要となるような推論の問題において有効的であることを意味している. 上記の問題を解決するために,認識モデル$q_{\phi}(z|x)$(実事後分布$p_{\theta}(z|x)$の近似)を導入する. 生成モデルパラメータ$\theta$を用いて,認識モデルのパラメータ$\phi$を学習する方法を導入する. 符号理論的観点から見ると,未観測変数$z$は潜在的な表現や符号としての解釈を擁している.この論文では,データ$x$が与えられたときに,データ$x$が符号$z$のありうる値に対して正規分布などの分布を生成する.すなわち,認識モデル$q_{\phi}(z|x)$は確率論的なエンコーダであるといえる. 同様にして,$p_{\theta}(x|z)$を確率論的デコーダとする.というのも,与えられた符号$z$から,$x$に対応する分布が生成されるからである. ## 変分下界 周辺尤度は,以下に示す個々のデータ点の周辺尤度の総和で, $$ \log{p_{\theta}(x^{(1)},x^{(2)},...x^{(N)})}=\sum_{i=1}^{N}\log{p_{\theta}(x^{(i)})} $$ となり,KLダイバージェンスを用いて以下のように書き直すことができる. $$ \log{p_{\theta}(x^{(i)})}=D_{KL}(q_{\phi}(z|x^{(i)})||p_{\phi}(z|x^{(i)}))+\mathcal L(\theta,\phi;x^{(i)}) $$ ただし,この式の右辺2項め$\mathcal L$はデータ点$i$の周辺尤度の変分下界と言い,以下のように書くことができる. $$ \begin{eqnarray} \log{p_{\theta}(x^{(i)})\geq\mathcal L(\theta,\phi;x^{(i)})}&=&\mathbb E_{q_{\theta}(z|x)}[-\log{q_{\phi}(z|x)}+\log{p_{\theta}(x,z)}]\\ &=&-D_{KL}(q_{\phi}(z|x^{(i)})||p_{\theta}(z))+\mathbb E_{q_{\theta}(z|x^{(i)})}[\log{p_{\theta}(x^{(i)},z)}] \end{eqnarray} $$ さて,この式を変分パラメータ$\phi$と生成パラメータ$\theta$に関して最適化を行いたいのだがその際に$\phi$に対する勾配に少し問題が生ずる.それは,ナイーブにモンテカルロ勾配推定法を適用すると, $$ \begin{eqnarray} \nabla_{\phi}\mathbb E_{q_{\phi}(z)}[f(z)]&=&\mathbb E_{{q_{\phi}(z)}}[f(z)\nabla_{q_{\phi}(z)}\log{q_{\phi}(z)}]\\ &\simeq&\frac{1}{L}\sum_{l=1}^{L}f(z)\nabla_{q_{\phi}(z^{(l)})}\log{q_{\phi}(z^{(l)})}\\ &\text{where}&z^{(l)}\sim q_{\phi}(z|x^{(u)}) \end{eqnarray} $$ となるが,この勾配推定は高分散となってしまい,全く実用的でない推定モデルとなってしまう. ## SGVB推定器とAEVBアルゴリズム そこで,変分下界の実用的な推定器を導入する. 近似事後確率$q_{\phi}(z|x)$について,のちに説明する特定の穏やかな条件下で,(補助)ノイズ変数$\epsilon$の微分可能な変換$g_{\phi}(\epsilon,x)$を用いて確率変数$\tilde{z}\sim q_{\phi}(z|x)$を再パラメータ化することができる. $$ \tilde{z}=g_{\phi}(\epsilon,x)~~\text{with}~~\epsilon\sim p(\epsilon) $$ そうすると,$q_{\phi}(z|x)$に関して関数$f(z)$の期待値を以下のようにして,モンテカルロ推定できる. $$ \begin{eqnarray} \mathbb E_{q_{\phi}(z|x^{(i)})}[f(z)]&=&\mathbb E_{p(\epsilon)}\left[f(g_{\phi}(\epsilon,x^{(i)}))\right]\\ &\simeq&\frac{1}{L}\sum_{l=1}^{L}f(g_{\phi}(\epsilon^{(l)},x^{(i)}))\\ &\text{where}& \epsilon^{(l)}\sim p(\epsilon) \end{eqnarray} $$ これを変分下界に対して適用することで,一般的な確率的勾配変分ベイズ(SGVB)推定器$\tilde{\mathcal L}^A$を得ることができる. $$ \begin{eqnarray} \tilde{\mathcal L}^A(\theta,\phi;x^{(i)})&=&\frac{1}{L}\sum_{l=1}^{L}\log{p_{\theta}(x^{(i)},z^{(i,l)})}-\log{q_{\theta}(z^{(i,l)}|x^{(i)})}\\ \text{where}~~z^{(i,l)}&=&g_{\phi}(\epsilon^{(i,l)},x^{(i)}),\epsilon^{(l)}\sim p(\epsilon) \end{eqnarray} $$ ときに,KLダイバージェンス$D_{KL}(q_{\phi}(z|x^{(i)})||p_{\theta}(z))$は,解析的に積分で求められることがある.そういった場合は再構成誤差$\mathbb E_{q_{\theta}(z|x^{(i)})}[\log{p_{\theta}(x^{(i)},z)}]$のみが推定の際に必要となる. KLダイバージェンス項は$\phi$の正則化項として解釈することができる.この項は,近似事後確率を事前確率$p_{\theta}(z)$へと近似するように促す働きがあるといえる. このKLダイバージェンス項を用いることで別のSGVB推定器$\tilde{\mathcal L}^B(\theta,\phi;x^{(i)})$を得ることができて, $$ \begin{eqnarray} \tilde{\mathcal L}^B(\theta,\phi;x^{(i)})&=& -D_{KL}(q_{\phi}(z|x^{(i)})||p_{\theta}(z)) +\frac{1}{L}\sum^{L}_{l=1}\log{p_{\theta}(x^{(i)}|z^{(i,l)})}\\ \text{where}~z~{(i,l)}&=&g_{\phi}(\epsilon^{(i,l)},x^{(i)}), \epsilon^{(l)}\sim p(\epsilon) \end{eqnarray} $$ また,$N$個からなるデータセット$X$に対して,全データに対する周辺尤度下界推定器を構成する際には,ミニバッチに基づいて $$ \begin{eqnarray} \mathcal L(\theta,\phi;X) &\simeq& \tilde{\mathcal L}^M(\theta,\phi;X^M)\\ &=&\frac{N}{M}\sum_{i=1}^{M}\tilde{\mathcal L}(\theta,\phi;x^{(i)}) \end{eqnarray} $$ として与えられる.ただし,ミニバッチ$X^M=\{x^{(i)}\}$は全データからランダムに$M$個選んだ点の集合である. 実験の結果$M=100$くらいの十分な大きさを持っている場合,$L=1$として良いということが分かった. そして,導関数を取り確率的勾配降下法などのアルゴリズムを取ることで最適化を行うことができる. ここで$\tilde{\mathcal L}^B$に注目する.この関数を見ることでオートエンコーダとの繋がりが明確になるだろう.前述のように,KLダイバージェンスの第一項は正則化項として働き,第二項の$g_{\phi}(\cdot)$は,データ$x^{(i)}$とランダムノイズベクトル$\epsilon^{(l)}$をそのデータ点の近似事後確率として写像させるように選択される:$z^{(i,l)}=g_{\phi}(\epsilon^{(l)},x^{(i)}),z^{(i,l)}\sim q_{\phi}(z,x^{(i)})$. 次いで,サンプル$z^{(i,l)}$は,関数$\log{p_{\theta}(x^{(i)}|z^{(i,l)})}$に入力される. この関数は,$z^{(i,l)}$で与えられる生成モデル下のデータポイント$x^{(i)}$の確率密度(or質量)関数に等しい.第二項はオートエンコーダ用語における再構成誤差(reconstruction error)に等しい. ## 再パラメータ化のトリック 問題を解決するため,$q_{\phi}(z|x)$からサンプルを生成する別の方法を考える. パラメータ化のトリックはいたってシンプルで,$z$を連続乱数変数として$z\sim q_{\phi}(z|x)$のように条件付き確率分布に従うとする. ときに,乱数変数$z$は決定論的に$z=g_{\phi}(\epsilon,x)$として表すことが可能である.ここでいう$\epsilon$は,独立した周辺確率$p(\epsilon)$をもつ補助変数であり,$g_{\phi}(\cdot)$は$\phi$でパラメータ化されたベクトル値関数である. この再パラメータ化は,期待値のモンテカルロ推定値が$\phi$で微分可能であるように,$q_{\phi}(z|x)$に関する期待値を書き換えるために使用可能であるので,こういった問題に対して有用である. 証明は以下の通りである. 決定論的写像$z=g_{\phi}(\epsilon,x)$が与えられると,以下のことが成り立つ: $$ q_{\phi}(z|x)\prod_i dz_i=p(\epsilon)\prod_i d\epsilon_i $$ よって, $$ \int q_{\phi}(z|x)f(z)dz=\int p(\epsilon)f(z)d\epsilon=\int p(\epsilon)f(g_{\phi}(\epsilon,x))d\epsilon $$ となる.その結果,微分可能な推定器を以下のように定めることが可能となる. $$ \int q_{\phi}(z|x)f(z)dz\simeq\frac{1}{L}\sum_{l=1}^{L}f(g_{\phi}(x,\epsilon^{(l)})),\text{where}~\epsilon^{(l)}\sim p(\epsilon) $$ これを利用することで前節のように変分下界の微分可能推定器を得ることが可能になる. ここで,具体例を考える.$p$が1変量正規分布に従うとする:$z\sim p(z|x)=\mathcal N(\mu,\sigma^2)$. このとき,$z$は,補助乱数変数$\epsilon\sim \mathcal N(0,1)$を用いて,$z=\mu+\sigma\epsilon$のように再パラメータ化できる.よって $$ \begin{eqnarray} \mathbb E_{\mathcal N(z;\mu,\sigma^2)}[f(z)]&=& \mathbb E_{\mathcal N(\epsilon;0,1)}[f(\mu+\sigma\epsilon)]\\ &\simeq&\frac{1}{L}\sum_{l=1}^{L}f(\mu+\sigma\epsilon)~,\text{where}~\epsilon^{(l)}\sim\mathcal N(0,1) \end{eqnarray} $$ となる. つぎに,$q_{\phi}(z|x)$はどのようにして微分可能な変換$g_{\phi}(\cdot)$と,補助乱数変数$\epsilon\sim p(\epsilon)$を得ることができるかについて考える.基本的なアプローチとして以下のようなものが考えられる. 1. トラクタブルな逆累積分布関数を使う.たとえば,$\epsilon\sim\mathcal U(0,I)$とし,$g_{\phi}(\epsilon,x)$を$q_{\phi}(z|x)$の逆累積分布関数とする.逆累積分布関数の例として,指数分布,コーシー分布,ロジスティック分布,レイリー分布,パレート分布,ワイブル分布,レシプロカル分布,ガンベル分布,アーラン分布などがある. 2. 正規分布のアナロジーである分布を使う.すなわち,位置$l$とスケール$s$のある分布で$l=0,s=1$の標準分布$\epsilon$を用いて$g(\cdot)=l+s\cdot \epsilon$のように表現することが可能な分布を用いる.例として,ラプラス分布,エリプティカル分布,ストゥーデントt分布,ロジスティック分布,一様分布,三角分布,正規分布がある. 3. 組み合わせた分布を使う.補助変数の変換を変えることで,乱数変数を表現することも可能である.例として,対数正規分布,ガンマ分布,ディリクレ分布,ベータ分布,χ二乗分布,F分布がある. これら3つのアプローチがすべて失敗した場合,複雑な計算が必要となる. # VAE:変分オートエンコーダ 上記の変分下界方法を利用した例を考えよう.ここでは,確率エンコーダ$q_{\phi}(z|x)$をNNを用いて,表現し,パラメータ$\phi,\theta$をAEVBアルゴリズムにて最適化する. 潜在変数の事前確率を等方等分布多変数正規分布とする:$p_{\theta}=\mathcal N(z;0,I)$. この場合,事前分布はパラメータを持っていないことに注意する. 次に,$p_{\theta}(x|z)$だが,データが実数値の場合は多変数正規分布,二値の場合は多変数ベルヌーイ分布とし,この分布のパラメータは$z$からMLPを経て計算されたものであるとする. ここで,実事後分布$p_{\theta}(z|x)$は多項式時間で計算不能(イントラクタブル)であることに注意する. $q_{\phi}(z|x)$はある程度自由に定めることが可能であるが,ここでは実事後確率を近似的に対角共分散な正規分布に従うと仮定する.すなわち,変分近似事後確率を多変数対角共分散正規分布形式をとると仮定する. $$ \log{q_{\phi}(z|x^{(i)})}= \log{\mathcal N(z;\mu^{(i)},\sigma^{2(i)}I)} $$ ただし平均と標準偏差$\mu^{(i)},\sigma^{(i)}$はエンコーダMLPの出力結果である. 前述のように,事後確率$z^{(i,l)}\sim q_{\phi}(z|x^{(i)})$を $$ z^{(i,l)}=g_{\phi}(x^{(i)},\epsilon^{(l)})=\mu^{(i)}+\sigma^{(i)}\odot\epsilon^{(l)},\text{where}~\epsilon^{(l)}\sim\mathcal N(0,I) $$ からサンプリングする. このモデルでは$p_{\theta}(z),q_{\phi}(z|x)$を正規分布としたので,$\tilde{\mathcal L}^B$の式を使用すると,KLダイバージェンス項が計算可能で推定無しに微分可能であるので,データ$x^{(i)}$に対する推定器は以下のようになる: $$ \mathcal L(\theta,\phi;x^{(i)}) \simeq \frac{1}{2}\sum_{j=1}^{J}\left(1+\log((\sigma_j^{(i)})^2)-(\mu_j^{(i)})^2+(\sigma_j^{(i)})^2\right) +\frac{1}{L}\sum_{l=1}^{L}\log{p_{\theta}(x^{(i)}|z^{(i,l)})} $$ ただし,$z^{(i,l)}=\mu^{(i)}+\sigma^{(i)}\odot\epsilon^{(l)},\epsilon^{(l)}\sim \mathcal N(0,I)$であり,デコード項$\log{p_{\theta}(x^{(i)}|z^{(i,l)})}$は前述のようにベルヌーイもしくは正規分布となる.