Semi-Supervised Learning with Deep Generative Models

Kingmaらがvariational autoencoderを半教師あり学習に使用した以下の論文のノートを公開します.
D.P. Kingma, S. Mohamed, D.J. Rezende, M. Welling,“Semi-supervised Learning with Deep Generative Models,” NIPS 2014.

variational autoencoderについて説明した以前の投稿をまだ読んでいない人は先にそちらを読んでください.

生成モデルと推論モデル

生成モデル(generative model)

まず,生成モデルについて説明します.

$D$次元のデータ$\bm{x}^{(i)} \in\mathbb{R}^D$と$L$種類のクラスラベル$y_i \in \{ 1, \cdots, L\}$からなるデータセット$({\rm X}, {\rm Y}) = \left\{ ( \bm{x}^{(i)}, y^{(i)}) \right\}_{i=1}^{N}$があるとします.また,クラスラベルが付けられていないデータセット${\rm X} = \left\{ \bm{x}^{(i)} \right\}_{i=1}^{N}$もあるとします.

このとき,図に示すようなクラスラベル$y$と潜在変数$\bm{z}$からデータ$\bm{x}$が生成されるモデルを考えます.潜在変数$\bm{z}$はデータ$\bm{x}$に内在するある特徴を表していると考えますが,ここではクラスラベル$y$とは独立した特徴と考えます.

$\bm{x}$を手書き文字画像,$y$を文字のクラスとすると,$\bm{z}$は例えば文字の書き方やスタイルを表しているものと考えます.したがって,図に示すような生成モデルを作ることができれば,文字のクラス$y$とスタイル$\bm{z}$を指定して手書き文字画像$\bm{x}$を出力できます.また,文字のクラス$y$を固定してスタイル$\bm{z}$だけを変更した手書き文字画像$\bm{x}$や,スタイル$\bm{z}$を固定してクラス$y$だけを変更した手書き文字画像$\bm{x}$も出力できます.

潜在変数$\bm{z}$は単純な事前確率$p(\bm{z})$からサンプリングされるとし,ここでは$p(\bm{z})$を標準正規分布$\mathcal{N}(\bm{z} ; \bm{0}, I)$とします.

また,クラスラベル$y$も単純な事前確率$p(y)$からサンプリングされるとし,ここでは$p(y)$をカテゴリカル分布${\rm Cat}(y; \bm{\pi})$とします.

データ$\bm{x}$はクラスラベル$y$と潜在変数$\bm{z}$から尤度$p_{\theta}(\bm{x} | y, \bm{z})$に従って生成されるとします.この過程は非線形な写像になると考えますので,尤度は複雑な分布になります.詳しくは後述しますが,尤度は非線形写像であるニューラルネットワークと問題に応じた確率分布を組み合わせて表現します.

推論モデル(inference model)

次に,推論モデルについて考えます.

ラベルありデータに対する推論の過程は,観測されたデータ$\bm{x}$とクラスラベル$y$から潜在変数$\bm{z}$を推定する過程になります.

ラベルなしデータに対する推論の過程は,観測されたデータ$\bm{x}$からクラスラベル$y$と潜在変数$\bm{z}$を推定する過程です.推論モデルとしては以下のようなものが考えられます.

  1. $\bm{x}$から$y$を,それとは別に$\bm{x}$から$\bm{z}$を推定するモデル
  2. $\bm{x}$から$y$を推定し,次に$\bm{x}$と推定した$y$から$\bm{z}$を推定するモデル
  3. $\bm{x}$から$\bm{z}$を推定し,次に$\bm{x}$と推定した$\bm{z}$から$y$を推定するモデル

このうち,ラベルありデータに対する推論過程も表現されているモデルは2つ目のモデルですので,ここではこのモデルを使用したいと思います.

ラベルありデータ

ラベルありデータに対しては,$\bm{x}$と$y$から事後確率$p_{\theta}(\bm{z} |  \bm{x}, y)$に従って$\bm{z}$が出力されるとします.この推論の過程は非線形な写像になると考えますので,事後確率$p_{\theta}(\bm{z} |  \bm{x}, y)$も複雑な分布になります.

ラベルなしデータ

ラベルなしデータに対しては,$\bm{x}$から事後確率$p_{\theta}(y | \bm{x})$に従って$y$が出力されるとします.この推論の過程は非線形な写像になると考えますので,事後確率$p_{\theta}(y | \bm{x})$も複雑な分布になります.その後はラベルありデータと同様に,$\bm{x}$と$y$から事後確率$p_{\theta}(\bm{z} |  \bm{x}, y)$に従って$\bm{z}$が出力されます.

また,ラベルなしデータに対する推論過程は条件付き確率の関係を使って書き換えると

\begin{equation}
p_{\theta}(y | \bm{x}) p_{\theta}(\bm{z} | \bm{x}, y) = p_{\theta}(y, \bm{z} | \bm{x}) \label{composition0}
\end{equation}

となります.これは,「$\bm{x}$から$y$を推定して,次に$\bm{x}$と$y$から$\bm{z}$を推定する」過程を1つにまとめると「$\bm{x}$から$y$と$\bm{z}$を一度に推定する」過程になることを表しています.したがって,ラベルなしデータに対する推論過程は図のように表すこともできます.

tractability

生成モデルのtractability

事前確率$p(\bm{z})$と$p(y)$はそれぞれ標準正規分布とカテゴリカル分布でしたので,tractableになります.また,尤度$p_{\theta}(\bm{x} | y, \bm{z})$は複雑な確率分布ですが,非線形写像であるニューラルネットワークと問題に応じた確率分布によって表現されますので,tractableになります.

推論モデルのtractability

推論モデルには,2種類の事後確率$p_{\theta}(y | \bm{x})$と$p_{\theta}(\bm{z} | \bm{x}, y)$と,それらを合成した$p_{\theta}(y, \bm{z} | \bm{x})$がありました.それぞれのtractabilityを考えます.

事後確率$p_{\theta}(y | \bm{x})$のtractability

事後確率$p_{\theta}(y | \bm{x})$はベイズ則・周辺確率・条件付き確率の関係を順に使うと
\begin{eqnarray}
p_{\theta}(y | \bm{x})
&=& \frac{p_{\theta}(\bm{x} | y) p(y)}{p_{\theta}(\bm{x})} \\
&=& \frac{p_{\theta}(\bm{x} | y) p(y)}{\sum_y p_{\theta}(\bm{x}, y)} \\
&=& \frac{p_{\theta}(\bm{x} | y) p(y)}{\sum_y p_{\theta}(\bm{x}|y) p(y)}
\end{eqnarray}
となります.事前確率$p(y)$はtractableでしたので,$p_{\theta}(\bm{x}|y)$のtractabilityを考えましょう.
$p_{\theta}(\bm{x}|y)$は周辺確率・条件付き確率・$y$と$\bm{z}$の独立性の関係を順に使うと
\begin{eqnarray}
p_{\theta}(\bm{x} | y)
&=& \int p_{\theta}(\bm{x}, \bm{z} | y) d\bm{z} \\
&=& \int p_{\theta}(\bm{x} | y, \bm{z}) p_{\theta}(y | \bm{z}) d\bm{z} \\
&=& \int p_{\theta}(\bm{x} | y, \bm{z}) p(y) d\bm{z} \\
&=& p(y) \int p_{\theta}(\bm{x} | y, \bm{z}) d\bm{z} \label{intractable_pxy}
\end{eqnarray}
となります.事前確率$p(y)$と尤度$p_{\theta}(\bm{x} | y, \bm{z})$はtractableでしたが,全ての$\bm{z}$に関して積分する部分がintractableになります.したがって,$p_{\theta}(\bm{x}|y)$はintractableとなり,事後確率$p_{\theta}(y | \bm{x})$もintractableになります.

事後確率$p_{\theta}(\bm{z} | \bm{x}, y)$のtractability

事後確率$p_{\theta}(\bm{z} | \bm{x}, y)$はベイズ則・$y$と$\bm{z}$の独立性の関係を順に使うと
\begin{eqnarray}
p_{\theta}(\bm{z} | \bm{x}, y)
&=& \frac{p_{\theta}(\bm{x} | y, \bm{z}) p_{\theta}(\bm{z} | y)}{p_{\theta}(\bm{x} | y)} \\
&=& \frac{p_{\theta}(\bm{x} | y, \bm{z}) p(\bm{z})}{p_{\theta}(\bm{x} | y)}
\end{eqnarray}
となります.尤度$p_{\theta}(\bm{x} | y, \bm{z})$と事前確率$p(\bm{z})$はtractableでしたが,式(\ref{intractable_pxy})より$p_{\theta}(\bm{x} | y)$はintractableでした.したがって,事後確率$p_{\theta}(\bm{z} | \bm{x}, y)$はintractableになります.

$p_{\theta}(y, \bm{z} | \bm{x})$のtractability

$p_{\theta}(y, \bm{z} | \bm{x})$は,式(\ref{composition0})に示すように,2種類の事後確率$p_{\theta}(y | \bm{x})$と$p_{\theta}(\bm{z} | \bm{x}, y)$を合成したものでした.これらはいずれもintractableでしたので,$p_{\theta}(y, \bm{z} | \bm{x})$もintractableになります.

tractableな事後確率の近似$q_{\phi}(y | \bm{x})$, $q_{\phi}(\bm{z} | \bm{x}, y)$の導入

図に示すように,推論モデルの事後確率$p_{\theta}(y | \bm{x})$と$p_{\theta}(\bm{z} | \bm{x}, y)$,それらを合成した$p_{\theta}(\bm{z} | \bm{x}, y)$はいずれもintractableになり,現実的な時間で計算できません.

そこで,事後確率の近似であるtranctableな確率分布$q_{\phi}(y | \bm{x})$と$q_{\phi}(\bm{z} | \bm{x}, y)$を導入します.詳しくは後述しますが,推論の過程も複雑で非線形な確率過程と考えられますので,ニューラルネットワークと例えば正規分布やカテゴリカル分布を組み合わせて表現します.また,それらを合成した$q_{\phi}(\bm{z} | \bm{x}, y)$

\begin{equation}
q_{\phi}(y, \bm{z} | \bm{x}) = q_{\phi}(y | \bm{x}) q_{\phi}(\bm{z} | \bm{x}, y) \label{composition1}
\end{equation}

もtractableになります.

複雑で非線形な確率過程の表現

推論モデルにおける$q_{\phi}(y | \bm{x})$の表現

観測されたデータ$\bm{x}$からクラスラベル$y$を求める推論の過程は複雑で非線形な確率過程と考えられるため,図のように非線形写像であるニューラルネットワークとカテゴリカル分布${\rm Cat}(y; \bm{\pi_{\phi}})$を組み合わせて表現します.

推論モデルにおける$q_{\phi}(\bm{z} | \bm{x}, y)$の表現

観測されたデータ$\bm{x}$とクラスラベル$y$から潜在変数$\bm{z}$を求める推論の過程は複雑で非線形な確率過程と考えられるため,図のように非線形写像であるニューラルネットワークと例えば正規分布$\mathcal{N}(\bm{z} ; \bm{\mu_{\phi}}, \mathrm{diag}(\bm{\sigma_{\phi}} \odot \bm{\sigma_{\phi}}))$を組み合わせて表現します.

生成モデルにおける$p_{\theta}(\bm{x} | y, \bm{z})$の表現

低次元の潜在変数$\bm{z}$から高次元のデータ$\bm{x}$を生成する過程も複雑で非線形な確率過程と考えられるため,非線形写像であるニューラルネットワークと問題に応じた確率分布を組み合わせて表現します.

正規分布による表現

確率分布としては,正規分布$\mathcal{N}(\bm{x} ; \bm{\mu_{\theta}}, \mathrm{diag}(\bm{\sigma_{\theta}} \odot \bm{\sigma_{\theta}}))$を用います.

ベルヌーイ分布による表現

対象とするデータ$\bm{x}$が2値データであるとき,ベルヌーイ分布(Bernoulli distribution)$f(\bm{x}; \bm{r})$を使用します.

誤差関数

生成モデルのパラメータ$\theta$と推論モデルのパラメータ$\phi$はわかりませんので,観測できるデータセットから学習により推定することになります.このとき,クラスラベルありのデータセット$({\rm X}, {\rm Y})$とクラスラベルなしのデータセット${\rm X}$に対して学習することになります.

ラベルありデータに対する誤差関数

ラベルありデータの場合は,データ$\bm{x}$とクラスラベル$y$から潜在変数$\bm{z}$を出力する事後確率$p_{\theta}(\bm{z} | \bm{x}, y)$に対する,その近似$q_{\phi}(\bm{z} | \bm{x}, y)$のKL Divergenceを考えます.$D_{KL}\left(q_{\phi}(\bm{z}|\bm{x}, y) || p_{\theta}(\bm{z}|\bm{x}, y)\right)$は,ベイズ則・条件付き確率・$y$と$\bm{z}$の独立性等を適用すると

\begin{eqnarray}
&&D_{KL}\left(q_{\phi}(\bm{z}|\bm{x}, y) || p_{\theta}(\bm{z}|\bm{x}, y)\right) \\
&=& \mathbb{E}_{\bm{z} \sim q_{\phi}(\bm{z}|\bm{x}, y)} \left[ \log \frac{q_{\phi}(\bm{z}|\bm{x}, y)}{p_{\theta}(\bm{z}|\bm{x}, y)} \right] \label{label} \\
&=& \mathbb{E}_{\bm{z} \sim q_{\phi}(\bm{z}|\bm{x}, y)} \left[ \log \frac{q_{\phi}(\bm{z}|\bm{x}, y)p_{\theta}(\bm{x}, y)}{p_{\theta}(\bm{x}, y|\bm{z}) p(\bm{z})} \right] \\
&=& \mathbb{E}_{\bm{z} \sim q_{\phi}(\bm{z}|\bm{x}, y)} \left[ \log \frac{q_{\phi}(\bm{z}|\bm{x}, y)p_{\theta}(\bm{x}, y)}{p_{\theta}(\bm{x}| y, \bm{z}) p_{\theta}(y|\bm{z}) p(\bm{z})} \right] \\
&=& \mathbb{E}_{\bm{z} \sim q_{\phi}(\bm{z}|\bm{x}, y)} \left[ \log \frac{q_{\phi}(\bm{z}|\bm{x}, y)p_{\theta}(\bm{x}, y)}{p_{\theta}(\bm{x}| y, \bm{z}) p(y) p(\bm{z})} \right] \\
&=& \mathbb{E}_{\bm{z} \sim q_{\phi}(\bm{z}|\bm{x}, y)} \left[ -\log p_{\theta}(\bm{x}| y, \bm{z})
+ \log \frac{q_{\phi}(\bm{z}|\bm{x}, y)}{p(\bm{z})}
– \log p(y)
+ \log p_{\theta}(\bm{x}, y) \right]
\\
&=& \mathbb{E}_{\bm{z} \sim q_{\phi}(\bm{z}|\bm{x}, y)} \left[ \log \frac{q_{\phi}(\bm{z}|\bm{x}, y)p_{\theta}(\bm{x}, y)}{p_{\theta}(\bm{x}| y, \bm{z}) p(y) p(\bm{z})} \right] \\
&=& \mathbb{E}_{\bm{z} \sim q_{\phi}(\bm{z}|\bm{x}, y)} \left[ -\log p_{\theta}(\bm{x}| y, \bm{z})
+ \log \frac{q_{\phi}(\bm{z}|\bm{x}, y)}{p(\bm{z})}
\right]
– \log p(y)
+ \log p_{\theta}(\bm{x}, y) \\
&=& -\mathbb{E}_{\bm{z} \sim q_{\phi}(\bm{z}|\bm{x}, y)} \left[ \log p_{\theta}(\bm{x}| y, \bm{z}) \right]
+ D_{KL}\left(q_{\phi}(\bm{z}|\bm{x}, y) || p(\bm{z})\right)
– \log p(y)
+ \log p_{\theta}(\bm{x}, y) \label{kl}
\end{eqnarray}

と表せます.右辺第4項はintractableですが,右辺第1項・第2項・第3項はtractableですので,右辺第1項から第3項までの和をを誤差関数$E(\theta, \phi; \bm{x}, y)$とし,誤差がなるべく小さくなる$\theta$と$\phi$を求めることにします.

\begin{equation}
E(\theta, \phi; \bm{x}, y) =
– \mathbb{E}_{\bm{z} \sim q_{\phi}(\bm{z}|\bm{x}, y)} \left[ \log p_{\theta}(\bm{x}| y, \bm{z}) \right]
+ D_{KL}\left(q_{\phi}(\bm{z}|\bm{x}, y) || p(\bm{z})\right)
– \log p(y) \label{error}
\end{equation}

誤差関数に別の解釈を与えたいと思います.式(\ref{kl})を書き換えると
\begin{equation}
\log p_{\theta}(\bm{x}, y) =
\mathbb{E}_{\bm{z} \sim q_{\phi}(\bm{z}|\bm{x}, y)} \left[ \log p_{\theta}(\bm{x}| y, \bm{z}) \right]
– D_{KL}\left(q_{\phi}(\bm{z}|\bm{x}, y) || p(\bm{z})\right)
+ \log p(y)
+ D_{KL}\left(q_{\phi}(\bm{z}|\bm{x}, y) || p_{\theta}(\bm{z}|\bm{x}, y)\right)
\end{equation}
となります.右辺第4項はintractableですが,KL Divergenceは$0$以上になりますので,
\begin{equation}
\log p_{\theta}(\bm{x}, y) \geq
\mathbb{E}_{\bm{z} \sim q_{\phi}(\bm{z}|\bm{x}, y)} \left[ \log p_{\theta}(\bm{x}| y, \bm{z}) \right]
– D_{KL}\left(q_{\phi}(\bm{z}|\bm{x}, y) || p(\bm{z})\right)
+ \log p(y)
\end{equation}
と表せます.これは,データの対数尤度$\log p_{\theta}(\bm{x}, y)$のlower bound $L(\theta, \phi; \bm{x}, y)$が右辺であることを表しています.
\begin{equation}
L(\theta, \phi; \bm{x}, y) =
\mathbb{E}_{\bm{z} \sim q_{\phi}(\bm{z}|\bm{x}, y)} \left[ \log p_{\theta}(\bm{x}| y, \bm{z}) \right]
– D_{KL}\left(q_{\phi}(\bm{z}|\bm{x}, y) || p(\bm{z})\right)
+ \log p(y) \label{lower}
\end{equation}
したがって,このlower boundがなるべく大きくなる$\theta$と$\phi$を求めればよいことになります.式(\ref{error})と式(\ref{lower})を比較すると,lower boundは誤差関数の符号が逆転したものですので,誤差関数がなるべく小さくなる$\theta$と$\phi$を求めることと等価になります.

誤差関数の計算の仕方は通常のvariational autoencoderと同様です.

ラベルなしデータに対する誤差関数

ラベルなしデータの場合は,データ$\bm{x}$からクラスラベル$y$と潜在変数$\bm{z}$を出力する事後確率$p_{\theta}(y, \bm{z} | \bm{x})$に対する,その近似$q_{\phi}(y, \bm{z} | \bm{x})$のKL Divergenceを考えます.
\begin{equation}
D_{KL}\left(q_{\phi}(y, \bm{z}|\bm{x}) || p_{\theta}(y, \bm{z}|\bm{x})\right) =
\mathbb{E}_{y, \bm{z} \sim q_{\phi}(y, \bm{z}|\bm{x})} \left[ \log \frac{q_{\phi}(y, \bm{z}|\bm{x})}{p_{\theta}(y, \bm{z}|\bm{x})} \right]
\end{equation}

事後確率$p_{\theta}(y, \bm{z} | \bm{x})$とその近似$q_{\phi}(y, \bm{z} | \bm{x})$は式(\ref{composition0}), 式(\ref{composition1})に示すように,2つの事後確率に分解できました.したがって,$D_{KL}\left(q_{\phi}(y, \bm{z}|\bm{x}) || p_{\theta}(y, \bm{z}|\bm{x})\right)$は

\begin{eqnarray}
&& D_{KL}\left(q_{\phi}(y, \bm{z}|\bm{x}) || p_{\theta}(y, \bm{z}|\bm{x})\right) \\
&=&
\mathbb{E}_{y \sim q_{\phi}(y|\bm{x})} \left[
\mathbb{E}_{\bm{z} \sim q_{\phi}(\bm{z}|\bm{x}, y)} \left[
\log \frac{q_{\phi}(y|\bm{x}) q_{\phi}(\bm{z}|\bm{x}, y)}
{p_{\theta}(y|\bm{x}) p_{\theta}(\bm{z}|\bm{x}, y)}
\right]\right] \\
&=&
\mathbb{E}_{y \sim q_{\phi}(y|\bm{x})} \left[
\mathbb{E}_{\bm{z} \sim q_{\phi}(\bm{z}|\bm{x}, y)} \left[
\log \frac{q_{\phi}(\bm{z}|\bm{x}, y)}
{p_{\theta}(\bm{z}|\bm{x}, y)}
\right]
+ \mathbb{E}_{\bm{z} \sim q_{\phi}(\bm{z}|\bm{x}, y)} \left[
\log \frac{q_{\phi}(y|\bm{x})}
{p_{\theta}(y|\bm{x})}
\right]
\right]
\end{eqnarray}

と表せます.

式(\ref{label})の部分を,ラベルありデータに対する誤差関数$E(\theta, \phi; \bm{x}, y)$を使用して書き換えると
\begin{equation}
\mathbb{E}_{\bm{z} \sim q_{\phi}(\bm{z}|\bm{x}, y)} \left[
\log \frac{q_{\phi}(\bm{z}|\bm{x}, y)}
{p_{\theta}(\bm{z}|\bm{x}, y)}
\right] =
E(\theta, \phi; \bm{x}, y) + \log p_{\theta}(\bm{x}, y)
\end{equation}
となることから,
$D_{KL}\left(q_{\phi}(y, \bm{z}|\bm{x}) || p_{\theta}(y, \bm{z}|\bm{x})\right)$は
\begin{eqnarray}
&& D_{KL}\left(q_{\phi}(y, \bm{z}|\bm{x}) || p_{\theta}(y, \bm{z}|\bm{x})\right) \\
&=&
\mathbb{E}_{y \sim q_{\phi}(y|\bm{x})} \left[
E(\theta, \phi; \bm{x}, y)
+ \log p_{\theta}(\bm{x}, y)
+ \log q_{\phi}(y|\bm{x})
– \log p_{\theta}(y|\bm{x})
\right] \\
&=&
\mathbb{E}_{y \sim q_{\phi}(y|\bm{x})} \left[
E(\theta, \phi; \bm{x}, y)
+ \log q_{\phi}(y|\bm{x})
+ \log \frac{p_{\theta}(\bm{x}, y)}{p_{\theta}(y|\bm{x})}
\right] \\
&=&
\mathbb{E}_{y \sim q_{\phi}(y|\bm{x})} \left[
E(\theta, \phi; \bm{x}, y)
+ \log q_{\phi}(y|\bm{x})
+ \log p_{\theta}(\bm{x})
\right] \\
&=&
\mathbb{E}_{y \sim q_{\phi}(y|\bm{x})} \left[
E(\theta, \phi; \bm{x}, y) \right]
+
\mathbb{E}_{y \sim q_{\phi}(y|\bm{x})} \left[
\log q_{\phi}(y|\bm{x}) \right]
+ \log p_{\theta}(\bm{x}) \\
&=&
\sum_{y} q_{\phi}(y|\bm{x}) E(\theta, \phi; \bm{x}, y)
+ \sum_{y} q_{\phi}(y|\bm{x}) \log q_{\phi}(y|\bm{x})
+ \log p_{\theta}(\bm{x}) \\
&=&
\sum_{y} q_{\phi}(y|\bm{x}) E(\theta, \phi; \bm{x}, y)
+ \mathcal{H} \left( q_{\phi}(y|\bm{x}) \right)
+ \log p_{\theta}(\bm{x}) \label{kl2}
\end{eqnarray}
と表せます.右辺第3項はintractableですが,右辺第1項と第2項はtractableですので,右辺第1項と第2項の和を誤差関数$E(\theta, \phi; \bm{x})$とし,誤差ががなるべく小さくなる$\theta$と$\phi$を求めることにします.

\begin{equation}
E(\theta, \phi; \bm{x}) =
\sum_{y} q_{\phi}(y|\bm{x}) E(\theta, \phi; \bm{x}, y)
+ \mathcal{H} \left( q_{\phi}(y|\bm{x}) \right)
\label{error2}
\end{equation}

誤差関数の別の解釈を考えたいと思います.式(\ref{kl2})を書き換えると
\begin{equation}
\log p_{\theta}(\bm{x}) =
– \sum_{y} q_{\phi}(y|\bm{x}) E(\theta, \phi; \bm{x}, y)
– \mathcal{H} \left( q_{\phi}(y|\bm{x}) \right)
+ D_{KL}\left(q_{\phi}(y, \bm{z}|\bm{x}) || p_{\theta}(y, \bm{z}|\bm{x})\right)
\end{equation}
となります.右辺第3項はintractableですが,KL Divergenceは$0$以上になりますので,

\begin{equation}
\log p_{\theta}(\bm{x}) \geq
– \sum_{y} q_{\phi}(y|\bm{x}) E(\theta, \phi; \bm{x}, y)
– \mathcal{H} \left( q_{\phi}(y|\bm{x}) \right)
\end{equation}

と表せます.これは,データの対数尤度$\log p_{\theta}(\bm{x})$のlower bound $L(\theta, \phi; \bm{x})$が右辺であることを表しています.

\begin{equation}
L(\theta, \phi; \bm{x}) =
– \sum_{y} q_{\phi}(y|\bm{x}) E(\theta, \phi; \bm{x}, y)
– \mathcal{H} \left( q_{\phi}(y|\bm{x}) \right)
\label{lower2}
\end{equation}

したがって,このlower boundがなるべく大きくなる$\theta$と$\phi$を求めればよいことになります.式(\ref{error2})と式(\ref{lower2})を比較すると,lower boundは誤差関数の符号が逆転したものですので,誤差関数がなるべく小さくなる$\theta$と$\phi$を求めることと等価になります.

クラス識別器としての誤差関数

データ$\bm{x}$からクラスラベル$y$を推定する事後確率$q_{\phi}(y|\bm{x})$はラベルなしデータに対する誤差関数$E(\theta, \phi; \bm{x})$にだけありますので,適切に学習されない可能性があります.そこで,ラベルありデータに対してクラス識別における誤差関数を設定したいと思います.誤差関数は通常のクラス識別器と同様に交差エントロピーを使用し
\begin{equation}
E(\phi; \bm{x}, y) = \mathbb{E}_{\{ \bm{x}, y \}} \left[ -\log q_{\phi}(y|\bm{x}) \right]
\end{equation}
とすればよいでしょう.

クラスラベルがあるデータに対しては誤差関数$E(\theta, \phi; \bm{x}, y)$と $E(\phi; \bm{x}, y)$の和を求めますが,論文では,
\begin{equation}
E(\theta, \phi; \bm{x}, y) + \alpha E(\phi; \bm{x}, y)
\end{equation}
と重みをかけています.

半教師あり学習によるクラス識別

conditional variational autoencoderはデータの生成器として使用することもできますが,半教師あり学習により学習可能なクラス識別器としても使用できます.論文では,通常のvariational autoencoderを用いたモデル(M1)とこれまで述べてきたconditional variational autoencoderを用いたモデル(M2)とこれらを組み合わせたモデル(M1+M2)で,MNISTの手書き数字画像データに対するクラス識別の性能を比較しています.

モデルM1

モデルM1は通常のvariational autoencoderを使用して,データ$\bm{x}$と潜在変数$\bm{z}$との関係を学習します.次に,クラスラベル$y$が付けられたデータ$\bm{x}$に対して,学習済のモデルを用いて潜在変数$\bm{z}$を求めます.最後に,クラス識別器(論文ではtransductive SVM)を用いて潜在変数$\bm{z}$からクラスラベル$y$が出力されるように訓練します.このモデルでは,variational autoencoderは特徴抽出器として使用されていると考えられます.

モデルM2

モデルM2はこれまでに述べたconditional variational autoencoderを使用して,データ$\bm{x}$とクラスラベル$y$と潜在変数$\bm{z}$の間の関係を学習するモデルです.学習済のモデルをクラス識別器として使用します.

モデルM1+M2

M1+M2のモデルでは,まず通常のvariational autoencoderを使用してデータ$\bm{x}$と潜在変数$\bm{z}_1$の関係を学習します.次に,conditional variational autoencoderを使用して$\bm{z}_1$とクラスラベル$y$と潜在変数$\bm{z}_2$との関係を学習します.

前段のvariational autoencoderが特徴抽出器として働き,後段のconditional variational autoencoderが抽出された特徴を元に半教師あり学習を行うことでクラス識別器の機能を果たしていると考えられます.

論文では,クラス識別の精度が最も高かったのはM1+M2のモデルだったと報告されています.