Generative adversarial networks a sampler without a density · the log-loss game · the value is Jensen–Shannon · two generator weights
A High Likelihood Does Not Certify Good Samples
An implicit generator x' = G(z), z \sim \mathcal{N}(0, I): sampling is a forward pass, but the density of x' is unavailable, so maximum likelihood cannot apply.
And likelihood would be the wrong yardstick anyway:
The saturating weight is near zero for confidently rejected samples, so those samples contribute little to the update.
The non-saturating weight is near one for the same samples.
With an optimal critic, both losses have the same fixed point q = p.
A Gaussian Test with Analytic Reference Values
Data = z A + b: a Gaussian with known mean and covariance. A linear generator keeps q Gaussian too, so \log(p/q) and \mathrm{KL}(q\|p) have closed forms to check against.
torch.manual_seed(0)Z = torch.normal(0.0, 1.0, (1000, 2))A = torch.tensor([[1.0, 2.0], [-0.1, 0.5]])b = torch.tensor([1.0, 2.0])data = Z @ A + bd2l.set_figsize()d2l.plt.scatter(data[:100, 0], data[:100, 1], s=8);print(f'covariance of the data distribution:\n{A.T @ A}')
covariance of the data distribution:
tensor([[1.0100, 1.9500],
[1.9500, 4.2500]])
The Value Appears in the Loss Curves
At the end of training, both per-sample losses sit at \log 2 \approx 0.693. For a discriminator near its best response, this value is consistent with \mathrm{JS} \approx 0; the generated cloud provides a separate visual check.
The Trained Critic Tracks the Analytic Log Ratio
Freeze a partially trained generator; train the critic to its best response; compare with the closed-form \lambda = \log(p/q):
Points hug the identity line; errors grow only where the mixture has almost no samples, because ratio estimation is unconstrained off-support.
Saturation under an Identical Initialization
Start the generator far from the data, where the critic rejects confidently; train the same initialization under each weighting:
The non-saturating run moves toward the data. The saturating run remains near its initialization because \sigma(D(x')) \approx 0 for every generated sample.
Recap
An implicit generator has no tractable density, and likelihood need not reflect sample quality. A learned comparison provides a training signal.