Formulate the conditional adversarial objective of a cGAN. Explain different methods for injecting conditioning information into the Generator and Discriminator, and discuss two real-world applications where controlled generation is important.
What's actually being asked
State the cGAN objective formally, enumerate the standard ways conditioning information is injected into G and D, and give two applications that genuinely need controlled generation.
Answer
The conditional adversarial objective
min_G max_D 𝔼[log D(x|y)] + 𝔼[log(1 − D(G(z|y)|y))]
Symbols: y — the conditioning variable (class label, text embedding, source image, etc.), drawn jointly with real pairs (x,y) for the first term and paired with sampled noise z fed to G for the second term; D(x|y) — the discriminator's estimate that x is a real sample consistent with y; G(z|y) — the generator's sample produced from noise z under condition y.
Methods for injecting conditioning information
Into the Generator:
- Input concatenation — concatenate an embedding or one-hot vector of
ydirectly withzbefore the first layer. Simplest method, used in the original cGAN paper. - Conditional batch normalization — instead of, or in addition to, concatenation, let
ymodulate the scale/shift parameters of G's BatchNorm layers. This lets the condition influence every layer's statistics, not just the input. - Feature-map concatenation — in convolutional architectures, project
yto a spatial feature map and concatenate it channel-wise with intermediate activations, not only at the input.
Into the Discriminator:
- Input concatenation — concatenate
y(or a label map) withxat the input layer, mirroring G's simplest method. - Feature-map concatenation — concatenate a tiled/projected
ywith an intermediate conv feature map ofx. - Projection discriminator — instead of concatenation, compute D's score as a base realism term plus an inner product between a learned embedding of
yand a feature vector ofx. Scales well to a large number of classes without blowing up input dimensionality the way one-hot concatenation would.
Two real-world applications needing controlled generation
- Text-to-image generation —
yis a text embedding (e.g. "a red sports car on a mountain road"). Uncontrolled generation from a plain GAN would give some plausible image with no relation to the requested description; only cGAN-style conditioning lets the output actually track the text. - Image-to-image translation for medical imaging (e.g. generating a synthetic contrast-enhanced MRI slice conditioned on an unenhanced input slice) — the condition
yis the source scan. Clinicians need the specific corresponding output, not just some random realistic-looking scan; conditioning is what makes the generated output clinically usable at all.
Exam tip
When listing injection methods, always pair each one with where it acts (input, intermediate feature map, or normalization parameters) — a bare list of names ("concatenation, embedding, projection") without saying where each applies is a common way marks are lost on this question.