GDPP: Learning Diverse Generations Using Determinantal Point Process

Mohamed Elfeki, Camille Couprie, Morgane Riviere, Mohamed Elhoseiny

Research output: Chapter in Book/Report/Conference proceedingConference contribution


Generative models have proven to be an outstanding tool for representing high-dimensional probability distributions and generating realistic-looking images. An essential characteristic of generative models is their ability to produce multi-modal outputs. However, while training, they are often susceptible to mode collapse, that is models are limited in mapping input noise to only a few modes of the true data distribution. In this work, we draw inspiration from Determinantal Point Process (DPP) to propose an unsupervised penalty loss that alleviates mode collapse while producing higher quality samples. DPP is an elegant probabilistic measure used to model negative correlations within a subset and hence quantify its diversity. We use DPP kernel to model the diversity in real data as well as in synthetic data. Then, we devise an objective term that encourages generators to synthesize data with similar diversity to real data. In contrast to previous state-of-the-art generative models that tend to use additional trainable parameters or complex training paradigms, our method does not change the original training scheme. Embedded in an adversarial training and variational autoencoder, our Generative DPP approach shows a consistent resistance to mode-collapse on a wide variety of synthetic data and natural image datasets including MNIST, CIFAR10, and CelebA, while outperforming state-of-the-art methods for data-efficiency, generation quality, and convergence-time whereas being 5.8x faster than its closest competitor.
Original languageEnglish (US)
Title of host publicationInternational Conference on Machine Learning (ICML) 2019
StatePublished - 2019


Dive into the research topics of 'GDPP: Learning Diverse Generations Using Determinantal Point Process'. Together they form a unique fingerprint.

Cite this