cyclegan
CycleGAN (Zhu et al., 2017) translates images from one domain to another — horses to zebras, summer to winter, photo to Monet painting — without any paired examples. Normally, to learn "turn this photo into a Monet" you would need the same scene both painted by Monet and photographed, which rarely exists. CycleGAN learns from two unpaired piles of images (a pile of photos, a pile of Monets) by enforcing a clever consistency: if you translate a photo to a Monet and then translate that back to a photo, you should recover the original. That round-trip constraint is what makes unpaired translation work.
CycleGAN trains two generators, G mapping domain X to Y and F mapping Y to X, and two discriminators, D_Y (real vs. fake in Y) and D_X (real vs. fake in X). Two ingredients combine. First, adversarial losses make G(x) look like a real Y image and F(y) look like a real X image. Second, the cycle-consistency loss enforces F(G(x)) ≈ x and G(F(y)) ≈ y, measured with an L1 norm. Adversarial loss alone is hugely under-constrained — many mappings make outputs "look like" the target domain while scrambling content — so cycle consistency pins each input to a specific, content-preserving output. An optional identity loss (G(y) ≈ y) helps preserve color and composition.
CycleGAN excels at texture, appearance, and style changes where geometry is roughly preserved (apples to oranges, photo to painting, day to night). It struggles with translations requiring large geometric or shape changes (cat to dog body shape), because cycle consistency rewards keeping the layout invertible. A known artifact: the cycle constraint can push the model to hide information needed for reconstruction in imperceptible high-frequency patterns (a form of steganography), so the round-trip succeeds for reasons other than genuine semantic translation. It is free of the need for paired data, but you still need two reasonably matched domain distributions.
Give CycleGAN a folder of horse-video frames and a folder of zebra photos (no frame is a paired horse/zebra of the same animal); after training, feeding a new horse image to G yields the same pose and background but with zebra stripes, and feeding it back through F recovers the brown horse — the cycle that trained it.
CycleGAN's defining contribution is showing that cycle consistency can substitute for paired supervision — but it is a soft, sometimes-cheatable constraint, not a guarantee of correct semantics. When paired data does exist, a paired method like pix2pix is usually sharper and more reliable; reach for CycleGAN specifically when pairs are impossible to collect.