CycleGAN is a method of unpaired image to image translation. Unfortunately, it’s possible to use CycleGAN without fully understanding or appreciating the mathematics involved. That is a real shame.

In this article, I’ll walk through the mathematics behind Cycle-Consistent Adversarial Networks. Please read the paper for a more comprehensive explanation.

Unpaired vs Paired

The key thing with CycleGAN is that we don’t have before and after images.

Let’s take the example shown above of converting a zebra into a horse (and vice-versa).

In a paired dataset the horse and zebra need to “match” each other. We’re essentially taking a horse and painting it black and white. The background, lightning, etc. stays the same.

A paired dataset would look something like this:

Image for post

Image by Jun-Yan Zhu on Github

In an unpaired dataset the horses and zebras don’t need to “match” each other. This is dataset is far easier to create.

#loss-function #cyclegan #generative-adversarial #deep-learning #machine-learning

Cycle-Consistent Adversarial Networks in Simple English
1.05 GEEK