Title: DISCRIMINATOR REJECTION SAMPLING

Abstract: We propose a rejection sampling scheme using the discriminator of a GAN to approximately correct errors in the GAN generator distribution. We show that under quite strict assumptions, this will allow us to recover the data distribution exactly. We then examine where those strict assumptions break down and design a practical algorithm-called Discriminator Rejection Sampling (DRS)-that can be used on real data-sets. Finally, we demonstrate the efficacy of DRS on a mixture of Gaussians and on the state of the art SAGAN model. On ImageNet, we train an improved baseline that increases the best published Inception Score from 52.52 to 62.36 and reduces the Fréchet Inception Distance from 18.65 to 14.79. We then use DRS to further improve on this baseline, improving the Inception Score to 76.08 and the FID to 13.75.

1. INTRODUCTION:

Generative Adversarial Networks (GANs) (Goodfellow et al., 2014) are a powerful tool for image synthesis. They have also been applied successfully to semi-supervised and unsupervised learning (Springenberg, 2015; Odena, 2016; Kumar et al., 2017) , image editing (Yu et al., 2018; Ledig et al., 2017) , and image style transfer (Zhu et al., 2017; Isola et al., 2017; Yi et al., 2017; Azadi et al., 2018) . Informally, the GAN training procedure pits two neural networks against each other, a generator and a discriminator. The discriminator is trained to distinguish between samples from the target distribution and samples from the generator. The generator is trained to fool the discriminator into thinking its outputs are real. The GAN training procedure is thus a two-player differentiable game, and the game dynamics are largely what distinguishes the study of GANs from the study of other generative models. These game dynamics have well-known and heavily studied stability issues. Addressing these issues is an active area of research (Mao et al., 2017; Arjovsky et al., 2017; Gulrajani et al., 2017; Odena et al., 2018; Li et al., 2017) .

However, we are interested in studying something different: Instead of trying to improve the training procedure, we (temporarily) accept its flaws and attempt to improve the quality of trained generators by post-processing their samples using information from the trained discriminator. It's well known that (under certain very strict assumptions) the equilibrium of this training procedure is reached when sampling from the generator is identical to sampling from the target distribution and the discriminator always outputs 1/2. However, these assumptions don't hold in practice. In particular, GANs as presently trained don't learn to reproduce the target distribution (Arora & Zhang, 2017) . Moreover, trained GAN discriminators aren't just identically 1/2 -they can even be used to perform chess-type skill ratings of other trained generators (Olsson et al., 2018) .

We ask if the information retained in the weights of the discriminator at the end of the training procedure can be used to "improve" the generator. At face value, this might seem unlikely. After all, if there is useful information left in the discriminator, why doesn't it find its way into the generator via the training procedure? Further reflection reveals that there are many possible reasons. First, the assumptions made in various analyses of the training procedure surely don't hold in practice (e.g. the discriminator and generator have finite capacity and are optimized in parameter space rather than density-space). Second, due to the concrete realization of the discriminator and the generator as neural networks, it may be that it is harder for the generator to model a given distribution than it is for the discriminator to tell that this distribution is not being modeled precisely. Finally, we may simply not train GANs long enough in practice for computational reasons.

In this paper, we focus on using the discriminator as part of a probabilistic rejection sampling scheme. In particular, this paper makes the following contributions:

• We propose a rejection sampling scheme using the GAN discriminator to approximately correct errors in the GAN generator distribution.

• We show that under quite strict assumptions, this scheme allows us to recover the data distribution exactly.

• We then examine where those strict assumptions break down and design a practical algorithm -called DRS -that takes this into account.

• We conduct experiments demonstrating the effectiveness of DRS. First, as a baseline, we train an improved version of the Self-Attention GAN, improving its performance from the best published Inception Score of 52.52 up to 62.36, and from a Fréchet Inception Distance of 18.65 down to 14.79. We then show that DRS yields further improvement over this baseline, increasing the Inception Score to 76.08 and decreasing the Fréchet Inception Distance to 13.75.

2. BACKGROUND:



2.1. GENERATIVE ADVERSARIAL NETWORKS:

A generative adversarial network (GAN) (Goodfellow et al., 2014) consists of two separate neural networks -a generator, and a discriminator -trained in tandem. The generator G takes as input a sample from the prior z ∈ Z ∼ p z and produces a sample G(z) ∈ X. The discriminator takes an observation x ∈ X as input and produces a probability D(x) that the observation is real. The observation is sampled either according to the density p d (the data generating distribution) or p g (the implicit density given by the generator and the prior). Using the standard non-saturating variant, the discriminator and generator are then trained using the following loss functions:

EQUATION

2.2. EVALUATION METRICS: INCEPTION SCORE (IS) AND FR ÉCHET INCEPTION DISTANCE (FID):

The two most popular techniques for evaluating GANs on image synthesis tasks are the Inception Score and the Fréchet Inception Distance. The Inception Score (Salimans et al., 2016) is given by exp(E x KL(p(y|x)||p(y))), where p(y|x) is the output of a pre-trained Inception classifier (Szegedy et al., 2014) . This measures the ability of the GAN to generate samples that the pre-trained classifier confidently assigns to a particular class, and also the ability of the GAN to generate samples from all classes. The Fréchet Inception Distance (FID) (Heusel et al., 2017) , is computed by passing samples through an Inception network to yield "semantic embeddings", after which the Fréchet distance is computed between Gaussians with moments given by these embeddings.

2.3. SELF-ATTENTION GAN:

We use a Self-Attention GAN (SAGAN) (Zhang et al., 2018) in our experiments. We do so because SAGAN is considered state of the art on the ImageNet conditional-image-synthesis task (in which images are synthesized conditioned on class identity). SAGAN differs from a vanilla GAN in the following ways: First, it uses large residual networks (He et al., 2016) instead of normal convolutional layers. Second, it uses spectral normalization (Miyato et al., 2018) in the generator and the discriminator and a much lower learning rate for the generator than is conventional (Heusel et al., 2017) . Third, SAGAN makes use of self-attention layers (Wang et al.) , in order to better model 8. M is an empirical estimate of the true maximum M . long range dependencies in natural images. Finally, this whole model is trained using a special hinge version of the adversarial loss (Lim & Ye, 2017; Miyato & Koyama, 2018; Tran et al., 2017) :

L D = -E (x,y)∼pdata [min(0, -1 + D(x, y))] -E z∼pz,y∼pdata [min(0, -1 -D(G(z), y))] L G = -E z∼pz,y∼pdata [D(G(z), y))]

(2)

2.4. REJECTION SAMPLING:

Rejection sampling is a method for sampling from a target distribution p d (x) which may be hard to sample from directly. Samples are instead drawn from a proposal distribution p g (x), which is easier to sample from, and which is chosen such that there exists a finite value M such that M p g (x) > p d (x) for ∀x ∈ domain(p d (x)). A given sample y drawn from p g is kept with acceptance probability p d (y)/M p g (y), and rejected otherwise. See the blue points in Figure 1 (Left) for a visualization. Ideally, p g (x) should be close to p d (x), otherwise many samples will be rejected, reducing the efficiency of the algorithm (MacKay, 2003) .

In Section 3, we explain how to apply this rejection sampling algorithm to the GAN framework: in brief, we draw samples from the trained generator, p g (x), and then reject some of those samples using the discriminator to attain a closer approximation to the true data distribution, p d (x). An independent rejection sampling approach was proposed by Grover et al. (2018) in the latent space of variational autoencoders for improving samples from the variational posterior.

3. REJECTION SAMPLING FOR GANS:

In this section we introduce our proposed rejection sampling scheme for GANs (which we call Discriminator Rejection Sampling, or DRS). We'll first derive an idealized version of the algorithm that will rely on assumptions that don't necessarily hold in realistic settings. We'll then discuss the various ways in which these assumptions might break down. Finally, we'll describe the modifications we made to the idealized version in order to overcome these challenges.

3.1. REJECTION SAMPLING FOR GANS: THE IDEALIZED VERSION:

Suppose that we have a GAN and our generator has been trained to the point that p g and p d have the same support. That is, for all x ∈ X, p g (x) = 0 if and only if p d (x) = 0. If desired, we can make p d and p g have support everywhere in X if we add low-variance Gaussian noise to the observations. Now further suppose that we have some way to compute p d (x)/p g (x). Then, if M = max x p d (x)/p g (x), then M p g (x) > p d (x) for all x, so we can perform rejection sampling with p g as the proposal distribution and p d as the target distribution as long as we can evaluate the quantity p d (x)/M p g (x)1 .

In this case, we can exactly sample from p d (Casella et al., 2004) , though we may have to reject many samples to do so.

But how can we evaluate p d (x)/M p g (x)? p g is defined only implicitly. One thing we can do is to borrow an analysis from the original GAN paper (Goodfellow et al., 2014) , which assumes that we can optimize the discriminator in the space of density functions rather than via changing its parameters. If we make this assumption, as well as the assumption that the discriminator is defined by a sigmoid applied to some function of x and trained with a cross-entropy loss, then by Proposition 1 of that paper, we have that, for any fixed generator and in particular for the generator G that we have when we stop training, training the discriminator to completely minimize its own loss yields

D * (x) = p d (x) p d (x) + p g (x)

(3)

We will discuss the validity of these assumptions later, but for now consider that this allows us to solve for p d (x)/p g (x) as follows: As noted above, we can assume the discriminator is defined as:

EQUATION

where D(x) is the final discriminator output after the sigmoid, and D(x) is the logit. Thus,

EQUATION

Now suppose one last thing, which is that we can tractably compute M = max x p d (x)/p g (x). We would find that M = p d (x * )/p g (x * ) = e D * (x * ) for some (not necessarily unique) x * . Given all these assumptions, we can now perform rejection sampling as promised. If we define D * M := D * (x * ), then for any input x, the acceptance probability p d (x)/M p g (x) can be written as e D * (x)-D * M ∈ [0, 1]. To decide whether to keep any particular example, we can just draw a random number ψ uniformly from [0, 1] and accept the sample if ψ < e D * (x)-D * M .

3.2. DISCRIMINATOR REJECTION SAMPLING: THE PRACTICAL SCHEME:

As we hinted at, the above analysis has a number of practical issues. In particular:

1. Since we can't actually perform optimization over density functions, we can't actually compute D * . Thus, our acceptance probability won't necessarily be proportional to p d (x)/p g (x). 2. At least on large datasets, it's quite obvious that the supports of p g and p d are not the same.

If the support of p g and p d has a low volume intersection, we may not even want to compute D * , because then p d (x)/p g (x) would just evaluate to 0 most places.

3. The analysis yielding the formula for D * also assumes that we can draw infinite samples from p d , which is not true in practice. If we actually optimized D all the way given a finite data-set, it would give nonzero results on a set of measure 0.

4. In general it won't be tractable to compute M . 5. Rejection sampling is known to have too low an acceptance probability when the target distribution is high dimensional (MacKay, 2003) .

This section describes the Discriminator Rejection Sampling (DRS) procedure, which is an adjustment of the idealized procedure, meant to address the above issues.

On the difficulty of actually computing D * : Given that items 2 and 3 suggest we may not want to compute D * exactly, we should perhaps not be too concerned with item 1, which suggests that we can't. The best argument we can make that it is OK to approximate D * is that doing so seems to be successful empirically. We speculate that training a regularized D with SGD gives a final result that is further from D * but perhaps is less over-fit to the finite sample from p d used for training. We also hypothesize that the D we end up with will distinguish between "good" and "bad" samples, even if those samples would both have zero density under the true p d . We qualitatively evaluate this hypothesis in Figures 4 and 5 . We suspect that more could be done theoretically to quantify the effect of this approximation, but we leave this to future work.

On the difficulty of actually computing M : It's nontrivial to compute M , at the very least because we can't compute D * . In practice, we get around this issue by estimating M from samples. We first run an estimation phase, in which 10,000 samples are used to estimate D * M . We then use this estimate in the sampling phase. Throughout the sampling phase we update our estimate of D * M if a larger value is found. It's true that this will result in slight overestimates of the acceptance probability for samples that were processed before a new maximum was found, but we choose not to worry about this too much, since we don't find that we have to increase the maximum very often in the sampling phase, and the increase is very small when it does happen.

Dealing with acceptance probabilities that are too low: Item 5 suggests that we may end up with acceptance probabilities that are too low to be useful when performing this technique on realistic data-sets. If D * M is very large, the acceptance probability e D * (x)-D * M will be close to zero, and almost all samples will be rejected, which is undesirable. One simple way to avoid this problem is to compute some F (x) such that the acceptance probability can be written as follows:

1 1 + e -F (x) = e D * (x)-D * M (6)

If we solve for F (x) in the above equation we can then perform the following rearrangement:

EQUATION

In practice, we instead compute

F (x) = D * (x) -D * M -log(1 -e D * (x)-D * M -) -γ (8)

where is a small constant added for numerical stability and γ is a hyperparameter modulating overall acceptance probability. For very positive γ, all samples will be rejected. For very negative γ, all samples will be accepted. See Figure 2 for an analysis of the effect of adding γ. A summary of our proposed algorithm is presented in Figure 1 (Right).

4. EXPERIMENTS:

In this section we justify the modifications made to the idealized algorithm. We do this by conducting two experiments in which we show that (according to popular measures of how well a GAN has learned the target distribution) Discriminator Rejection Sampling yields improvements for actual GANs. We start with a toy example that yields insight into how DRS can help, after which we demonstrate DRS on the ImageNet dataset (Russakovsky et al., 2015) .

4.1. MIXTURE OF 25 GAUSSIANS:

We investigate the impact of DRS on a low-dimensional synthetic data set consisting of a mixture of twenty-five 2D isotropic Gaussian distributions (each with standard deviation of 0.05) arranged in a grid (Dumoulin et al., 2016; Srivastava et al., 2017; Lin et al., 2017) . We train a GAN model where the generator and discriminator are neural networks with four fully connected layers with ReLu activations. The prior is a 2D Gaussian with mean of 0 and standard deviation of 1 and the GAN is trained using the standard loss function. We generate 10,000 samples from the generator with and without DRS. The target distribution and both sets of generated samples are depicted in Figure 3 . Here, we have set γ dynamically for each batch, to the 95 th percentile of F (x) for all x in the batch.

To measure performance, we assign each generated sample to its closest mixture component. As in Srivastava et al. (2017) , we define a sample as "high quality" if it is within four standard deviations of its assigned mixture component. As shown in Table 1 , DRS increases the fraction of high-quality samples from 70% to 90%. As in Dumoulin et al. (2016) and Srivastava et al. (2017) we call a mode "recovered" if at least one high-quality sample was assigned to it. Table 1 shows that DRS does not reduce the number of recovered modes -that is, it does not trade off quality for mode coverage. It does reduce the standard deviation of the high-quality samples slightly, but this is a good thing in this case (since the standard deviation of the target Gaussian distribution is 0.05). It also confirms that DRS does not accept samples only near the center of each Gaussian but near the tails as well. 2018) (with the learning rate of 1e -4 ), we fine-tuned a trained SAGAN with a much lower learning rate (1e -7 ) for both generator and discriminator. This improved both the Inception Score and FID significantly as can be seen in the Improved-SAGAN column in Table 2 . Plots of Inception score and FID during training are given in Figure 5 (A).

Since SAGAN uses a hinge loss and DRS requires a sigmoid output, we added a fully-connected layer "on top of" the trained discriminator and trained it to distinguish real images from fake ones using the binary cross-entropy loss. We trained this extra layer with 10,000 generated samples from the model and 10,000 examples from ImageNet.

We then generated 50,000 samples from normal SAGAN and Improved SAGAN with and without DRS, repeating the sampling process 4 times. We set γ dynamically to the 80 th percentile of the F (x) values in each batch. The averages of Inception Score and FID over these four trials are presented in Table 2 . Both scores were substantially improved for both models, indicating that DRS can indeed be useful in realistic settings involving large data-sets and sophisticated GAN variants.

Qualitative Analysis of ImageNet results: From a pool of 50,000 samples, we visualize the "best" and the "worst" 100 samples based on their acceptance probabilities. Figure 4 shows that the subjective visual quality of samples with high acceptance probability is considerably better. Figure 2 (B) also shows that the accepted images are on average more recognizable as belonging to a distinct class.

We also study the behavior of the discriminator in another way. We choose an ImageNet category randomly, then generate samples from that category until we have found two images G(z 1 ), G(z 2 ) such that G(z 1 ) appears visually realistic and G(z 2 ) appears visually unrealistic. Here, z 1 and z 2 are the input latent vectors. We then generate many images by interpolating in latent space between the two images according to z = αz 1 + (1 -α)z 2 with α ∈ {0, 0.1, 0.2, . . . , 1}. In Figure 5 , the first and last columns correspond with α = 1 and α = 0, respectively. The color bar in the figure represents the acceptance probability assigned to each sample. In general, acceptance probabilities decrease from left to right. There is no reason to expect a priori that the acceptance probability should decrease monotonically as a function of the interpolated z, so it says something interesting about the discriminator that most rows basically follow this pattern.

5. CONCLUSION:

We have proposed a rejection sampling scheme using the GAN discriminator to approximately correct errors in the GAN generator distribution. We've shown that under strict assumptions, we can recover the data distribution exactly. We've also examined where those assumptions break down and designed a practical algorithm (Discriminator Rejection Sampling) to address that. Finally, we have demonstrated the efficacy of this algorithm on a mixture of Gaussians and on the state-of-the-art SAGAN model.

Opportunities for future work include the following::

• There's no reason that our scheme can only be applied to GAN generators. It seems worth investigating whether rejection sampling can improve e.g. VAE decoders. This seems like it might help, because VAEs may have trouble with "spreading mass around" too much. • In one ideal case, the critic used for rejection sampling would be a human. Can we use better proxies for the human visual system to improve rejection sampling's effect on image synthesis models?

APPENDIX A ABLATION STUDY:

We have evaluated four different rejection sampling schemes on the mixture-of-Gaussians dataset, represented in Figure 6 :

1. Always reject samples falling below a hard threshold and DO NOT train the Discriminator to "convergence". 2. Always reject samples falling below a hard threshold and train the Discriminator to convergence. 3. Use probabilistic sampling as in eq 8 and DO NOT train the Discriminator to convergence. 4. Our original DRS algorithm, in which we use probabilistic sampling and train the Discriminator to convergence.

In ( 1) and ( 2), we were careful to set the hard threshold so that the actual acceptance rate was the same as in ( 3) and ( 4). Broadly speaking, (4) performs best, (3) performs OK but yields less good samples than (4), (2) yields the same number of good samples as (3), but completely fails to sample from 5 of the 25 modes. (1) actually yields the most good samples for the modes it hits, but it only hits 4 modes! These results show that both continuing to train D so that it can approximate D * and performing sampling as in ( 8), which we have already motivated theoretically, is helpful in practice. For each method, we provide the number of samples within 1, 2, 3 and 4 standard deviations and the number of modes hit in Table 3 . For reference, we also compute these statistics for the ground truth distribution and the unfiltered samples from GAN. In addition, we represent Inception score as a function of acceptance rate in Figure 7 -left. Different acceptance rates are achieved by changing γ from the 0 th percentile of F (x) (acceptance rate = 100%) to its 90 th percentile (acceptance rate = 14%). Decreasing the acceptance rate filters more non-realistic samples and increases the final Inception score. After an specific rate, rejecting more samples does not gain any benefit in collecting a better pool of samples.

Moreover, Figure 7 -right shows the correlation between the acceptance probabilities that DRS assigns to the synthesized samples and the recognizability of those samples from the view-point of a pre-trained Inception network. The latter is measured by computing max j p(y j |x i ) which is the probability of sample x i belonging to the category y j from the 1,000 ImageNet classes. As expected, there is a large mass of the recognizable images accepted with high acceptance probabilities on the top right corner. The small mass of images which cannot be easily classified into one of the 1,000 categories while having high acceptance probability scores (the top left corner of the graph) can be due to the non-optimal GAN discriminator in practice. Therefore, we expect that improving the discriminator performance boosts the final inception score even more substantially. 

:

Why go through all this trouble when we could instead just pick some threshold T and throw out x when D * (x) < T ? This doesn't allow us to recover p d in general. If, for example, there is x s.t. pg(x ) > p d (x ) > 0, we still want some probability of observing x . See the red points in Figure1(Left) for a visual explanation.

Figures and Tables:

Figure 1: Left: For a uniform proposal distribution and Gaussian target distribution, the blue points are the result of rejection sampling and the red points are the result of naively throwing out samples for which the density ratio (p d (x)/p g (x)) is below a threshold. The naive method underrepresents the density of the tails. Right: the DRS algorithm. KeepTraining continues training using early stopping on the validation set. BurnIn computes a large number of density ratios to estimate their maximum. D * is the logit of D * . F is as in Equation 8. M is an empirical estimate of the true maximum M .

Figure 2: (A) Histogram of the sigmoid inputs, F (x) (left plot), and acceptance probabilities, σ( F (x))(center plot), on 20K fake samples before (purple) and after (green) adding the constant γ to all F (x). Before adding gamma, 98.9% of the samples had an acceptance probability < 1e-4. (B) Histogram of max j p(y j |x i ) from a pre-trained Inception network where p(y j |x i ) is the predicted probability of sample x i belonging to the y j category (from 1, 000 ImageNet categories). The green bars correspond to 25, 000 accepted samples and the red bars correspond to 25, 000 rejected samples. The rejected images are less recognizable as belonging to a distinct class.

Figure 3: Real samples from 25 2D-Gaussian Distributions (left) as well as fake samples generated from a trained GAN model without (middle) and with DRS (right). Results are computed as an average over five models randomly initialized and trained independently.

Figure 4: Synthesized images with the highest (left) and lowest (right) acceptance probability scores.

Figure 5: (A) Inception Score and FID during ImageNet training, computed on 50,000 samples. (B)Each row shows images synthesized by interpolating in latent space. The color bar above each row represents the acceptance probabilities for each sample: red for high and white for low. Subjective visual quality of samples with high acceptance probability is considerably better: objects are more coherent and more recognizable as belonging to a specific class. There are fewer indistinct textures, and fewer scenes without recognizable objects.

Figure 8: Nearest neighbors of the top left generated image in ImageNet training set in terms of VGG16 fc7 features

Results with and without DRS on 10,000 generated samples from a model of a 2D grid of Gaussian components.# of recovered modes % "high quality" std of "high quality" samples

Table content: <table><tr><td>Without DRS</td><td>24.8 ± 0.4</td><td>70 ± 9</td><td>0.11 ± 0.01</td></tr><tr><td>With DRS</td><td>24.8 ± 0.4</td><td>90 ± 2</td><td>0.10 ± 0.01</td></tr></table>

Results with and without DRS on 50K ImageNet samples. Low FID and high IS are better.Since it is presently the state-of-the-art model on the conditional ImageNet synthesis task, we have reimplemented the Self-Attention GAN(Zhang et al., 2018) as a baseline. After reproducing the results reported byZhang et al. (

Table content: <table><tr><td/><td>SAGAN</td><td/><td>Improved-SAGAN</td></tr><tr><td/><td>IS</td><td>FID</td><td>IS</td><td>FID</td></tr><tr><td colspan="3">Without DRS 52.34 ± 0.45 18.21 ± 0.14</td><td>62.36 ± 0.35</td><td>14.79 ± 0.06</td></tr><tr><td>With DRS</td><td colspan="2">61.44 ± 0.09 17.14 ± 0.09</td><td>76.08 ± 0.30</td><td>13.57 ± 0.13</td></tr><tr><td colspan="2">4.2 IMAGENET DATASET</td><td/><td/></tr></table>

Ablation study on 10,000 generated samples from a 2D grid of Gaussian components. The third to sixth columns represent % of high-quality samples within x standard deviations. "No FT" stands for the discriminator not being trained to convergence.

Table content: <table><tr><td/><td/><td>% in</td><td>% in</td><td>% in</td><td>% in</td></tr><tr><td/><td colspan="5"># of recovered modes "1 std" "2 std" "3 std" "4 std"</td></tr><tr><td>Ground Truth</td><td>25</td><td>39.3</td><td>86.6</td><td>98.9</td><td>99.9</td></tr><tr><td>Vanilla GAN</td><td>25</td><td>27.3</td><td>53.1</td><td>66.2</td><td>75.6</td></tr><tr><td>Threshold (No FT)</td><td>4</td><td>38.5</td><td>92.6</td><td>99.4</td><td>99.8</td></tr><tr><td>Threshold</td><td>20</td><td>34.8</td><td>70.2</td><td>83.6</td><td>89.3</td></tr><tr><td>DRS (No FT)</td><td>25</td><td>31.5</td><td>60.2</td><td>73.6</td><td>81.2</td></tr><tr><td>DRS</td><td>25</td><td>35.3</td><td>65.8</td><td>81.8</td><td>89.8</td></tr></table>

Peer review (iclr2019):
 his paper assumes that, in a GAN, the generator is not perfect and some information is left in the discriminator, so that it can be used to *reject* some of the *fake* examples produced by the generator. The introduction, problem statement and justification for rejection sampling are excellent, with a level of clarity that makes it understandable by non expert readers, and a wittiness that makes the paper fun to read. I assume this work is novel: the reviewer is more an expert in rejection than in GANs, and is aware how few publications rely on rejection. However, the authors fail to compare their algorithm to a much simpler rejection scheme, and a revised version should discuss this issue. Let*s jump to equation (8): compared to a simple use of the dicriminator for rejection, it adds the term under the log. The basic rejection equation would read F(x) = D*(x) - gamma and one would adjust the threshold gamma to obtain the desired operating point. I am wondering why no comparison is provided with basic rejection? Let me try to understand the Gaussian mixture experiment, as the description is ambiguous: - GAN setting: 10K examples are generated and reported in figure 3? - DRS setting: 10K examples are generated, and submitted to algorithm in figure 1. For each batch, a line search sets gamma so that 95% of the examples are accepted. Thus only 9.5K are reported in figure 3. - What about basic rejection using F(x) = D*(x) - gamma: how does it compare to DRS at the same 95% accept? If this is my understanding, then the comparison in Figure 3 in unfair, as DRS is allowed to pick and choose. For completeness, basic rejection should also be added. Going back to Eq.(8), one realizes that the difference between DRS rejection and basic rejection may be negligible. First order Taylor expansion of log(1-x) that would apply to the case where the rejection probability is small yields: F(x) = (D*(x) - D*_M) + exp(D*(x) - D*_M) x+ exp(x) is monotonous, so thresholding over it is the same as thresholding over x: back to basic rejection!