首页 > 解决方案 > CycleGAN 用于未配对的图像到图像的转换

问题描述

参考关于 CycleGAN 的原始论文,我对这条线感到困惑

因此,最优 G 将域 X 转换为与 Y 相同分布的域 Y。然而,这样的转换并不能保证单个输入 x 和输出 y 以有意义的方式配对——有无限多的映射 G 会在 y^ 上产生相同的分布。

我知道有两组图像,它们之间没有配对,所以当生成器拍摄一张图像时,让我们说 X 集中的 x 作为输入并尝试将其转换为类似于 Y 集中图像的图像,那么我的问题是集合 Y 中有很多图像,那么我们的 x 将被翻译成哪个 y?Y 组有很多可用的选项。这就是我在上面写的论文中所指出的吗?这就是我们采用循环损失来克服这个问题并通过将 x 转换为 y 然后将 y 转换回 x 来在任意两个随机图像之间创建某种类型的配对的原因吗?

标签: deep-learningcomputer-visiongenerative-adversarial-network

解决方案


好吧,图像x不会被转换为具体图像y,而是转换为域 Y 的“样式”。输入被馈送到生成器,它试图从所需的分布(另一个域)生成样本,生成的图像然后进入鉴别器,鉴别器试图预测样本是来自实际分布还是由生成器产生。这只是正常的 GAN 工作流程。

如果我理解正确,在您引用的行中,作者解释了对抗性损失引起的问题。他们在这里再说一遍:

理论上,对抗性训练可以学习映射 G 和 F,它们分别产生与目标域 Y 和 X 相同分布的输出。然而,如果容量足够大,网络可以将相同的输入图像集映射到目标域中图像的任意随机排列,其中任何学习的映射都可以产生与目标分布匹配的输出分布。因此,仅对抗性损失不能保证学习函数可以将单个输入 x_i 映射到所需的输出 y_i。

这是引入循环一致性的概念来产生有意义的映射,减少可能的映射函数的空间(可以看作是正则化的一种形式)的原因之一。这个想法不是在数据集中已经存在的 2 个随机图像之间创建配对(数据集保持未配对),而是要确保,如果您将真实图像从域映射X到域Y然后再返回,您会得到原图回来。

循环一致性鼓励生成器避免不必要的更改,从而生成与输入共享结构相似性的图像,它还可以防止生成器过度产生幻觉和模式崩溃。

我希望这能回答你的问题。


推荐阅读