to be more expressive. By using $g(x)$ to denote the labeling network i.e. $z_{label}=g(x)$, and adding $\mathcal{L}_\mathsf{exp}$ as an additional term to the VAE’s objective function, we get the total objective function in following: $$\begin{gathered}
\mathcal{L}_\mathsf{SLVAE} = -\mathbb{E}_{q(z|x)}[\log{p(x|z)}]+KL(q(z|x)||p(z))\nonumber \\
+\lambda\mathbb{E}_{q(z|x)}[{||z-g(x)||}^2]\label{eq:slvae}\end{gathered}$$ From this formulation, we can see that, $q(z|x)$ is not only pulling to $p(z)$ like before, but also pulling to the estimated “best encoder” for the decoder. The hyper-parameter $\lambda$ is used to control the importance of the expressiveness objective. The “best encoder” can expand a comprehensive coverage of the target space through the current decoder. Thus they will reach an equilibrium at which the $p(z|x)$ is close to $p(z)$ and also remains the expressiveness. As we use a labeling network to estimate the most expressive latent label given the decoder and strengthen the connection between the latent $z$ and target $x$ through the decoder itself, we call this method Self Labeling VAE (SLVAE).

When it comes to CVAE, things remain the same except that everything is conditioned on $c$. And the final total objective function is: $$\begin{gathered}
\mathcal{L}_\mathsf{SLCVAE} = -\mathbb{E}_{q(z|x,c)}[\log{p(x|z,c)}]+KL(q(z|x,c)||p(z|c))\nonumber \\
+\lambda\mathbb{E}_{q(z|x,c)}[{||z-g(x,c)||}^2]\label{eq:slcvae}\end{gathered}$$ Similarly, we call this model SLCVAE.

At last, learning the *labeling network* $g(x, c)$ is somewhat straightforward. 