### Recap, adversarial training of generative models

Autoencoders are a class of methods for learning compressed, distributed representations of data in an unsupervised way. They do this by composing two neural networks, the encoder network $e$ and the decoder network $d$. The input to the encoder network is the raw data $x$, and the output is the distributed representation $y$ whose dimensionality is typically lower than that of data $x$. The decoder network maps $y$ back to data space, so that the output $\hat{x}(x) = d(e(x))$ is as close to the original input as possible. The discrepancy between the original and reconstructed data is typically measured as mean squared error $E_{x\sim P} |x - \hat{x}(x)|^2$.
$$\ell(P, \theta) = \sup_{\psi} E_{x\sim P} log(f(x,\hat{x};\psi)) + log(1-f(\hat{x},x;\psi))$$