CycleGAN modifies the ๐ผ๏ธ Generative Adversarial Network game to facilitate domain transfer, pairing samples from one distribution to samples from another. To do this, we learn two generative models 

The key idea is that if we go from 
which we add onto the standard GAN losses for 
StarGAN
If we want to go between multiple domains, it would be inefficient to train so many generators and discriminators based on the CycleGAN structure. StarGAN addresses this limitation by training a single generator that can translate between any two domains.
To do this, our generator 
Our overall loss then consists of three parts: adversarial, domain classification (split into real and fake examples), and reconstruction. 1.
The discriminator is trained to minimize a combination of negative