独家 | CycleGAN之美 赛马翻译成斑马背后的直觉和数学(附论文)

作者:Sebastian Theiler

翻译:吴金笛

校对:张玲

本文约2300字,建议阅读10分钟

本文介绍了CycleGAN的映射原理和4项损失的基本含义,并提供了详细的损失方程。

本文假定你已经对GANs的工作方式有非常深刻的了解。如果你想快速回顾一下,或者完全不了解GANs,我这有一篇关于它们的、以前写的文章可供参考

(https://medium.com/analytics-vidhya/

implementing-a-gan-in-keras-d6c36bc6ab5f)。

 

CycleGAN的目标很简单,学习某个数据集X与另一个数据集Y之间的映射。例如,X可以是赛马图像数据集,Y可以是斑马图像数据集。

图片链接:https://arxiv.org/pdf/1703.10593.pdf

 

CycleGAN的美妙之处在于X和Y不一定是成对的。我们可以为CycleGAN 提供X的任意图像和Y的任意图像,这意味着Y中的每一个图像不是X中相关图像的直接映射。

CycleGAN还可以做什么?

很多。

CycleGAN几乎可以做任何涉及到照片编辑的操作。包括:

  • 昼夜交换图像

  • 季节/温度变化

  • 从轮廓渲染逼真的图像

  • 从图像中添加或删除元素,例如树木

  • 自动为黑白图像着色

还有更多。

 

那么CycleGAN是如何学习这种映射的呢?让我们来看看。

CycleGAN由两个发生器和两个判别器组成。

第一个生成器,G,需要一个图像,X中的x,并将其映射成ŷ。理想情况下 ŷ与属于Y的真实图像没有区别。

然后,一个判别器Dy尝试对图像进行分类,判断图像是Y中真实采样出来的还是由G虚假最终生成的。

形式上,映射函数G:X→Y的目标及其判别符Dy表示为: