  Deep generative models are a class of techniques that train deep neural
networks to model the distribution of training samples. Research has fragmented
into various interconnected approaches, each of which make trade-offs including
run-time, diversity, and architectural restrictions. In particular, this
compendium covers energy-based models, variational autoencoders, generative
adversarial networks, autoregressive models, normalizing flows, in addition to
numerous hybrid approaches. These techniques are compared and contrasted,
explaining the premises behind each and how they are interrelated, while
reviewing current state-of-the-art advances and implementations.
