Deep learning CycleGAN用于未配对图像到图像的转换

Deep learning CycleGAN用于未配对图像到图像的转换,deep-learning,computer-vision,generative-adversarial-network,Deep Learning,Computer Vision,Generative Adversarial Network,参考关于CycleGAN的原始论文,我对这一行感到困惑 因此,最优G将域X转换为域Yˆ 与Y相同地分布。然而,这样的翻译并不正确 确保单个输入x和输出y在同一时间配对 有意义的方式–有无限多个映射G会导致 yˆ上的分布相同 我知道有两组图像,它们之间没有配对,所以当生成器从集合x中提取一个图像作为输入,并尝试将其转换为与集合Y中的图像类似的图像时,我的问题是集合Y中存在许多图像,那么我们的x将被转换为哪个Y?集合Y中有这么多的选项。这就是我在上面写的这几行文章中指出的吗?这就是为什么我们要用循环

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

因此,最优G将域X转换为域Yˆ 与Y相同地分布。然而,这样的翻译并不正确 确保单个输入x和输出y在同一时间配对 有意义的方式–有无限多个映射G会导致 yˆ上的分布相同


我知道有两组图像,它们之间没有配对,所以当生成器从集合x中提取一个图像作为输入,并尝试将其转换为与集合Y中的图像类似的图像时,我的问题是集合Y中存在许多图像,那么我们的x将被转换为哪个Y?集合Y中有这么多的选项。这就是我在上面写的这几行文章中指出的吗?这就是为什么我们要用循环损耗来克服这个问题,通过将x转换成y,然后再将y转换回x,在任意两个随机图像之间创建某种类型的配对吗

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

如果我理解正确的话,在你引用的句子中,作者解释了对抗性损失所产生的问题。他们在这里又说:

理论上,对抗式训练可以学习映射G和F,这两种映射产生的输出分别作为目标域Y和X均匀分布。然而,如果具有足够大的容量,网络可以将同一组输入图像映射到目标域中的任意图像随机排列,其中任何学习的映射都可以诱导与目标分布匹配的输出分布。因此,仅对抗性损失不能保证学习函数能够将单个输入x_i映射到期望输出y_i

这是引入循环一致性概念以产生有意义的映射、减少可能映射函数的空间(可以视为正则化的一种形式)的原因之一。这样做的目的不是在数据集中已有的两个随机图像之间创建配对(数据集保持不成对),而是确保如果将真实图像从域
X
映射到域
Y
,然后再映射回来,就可以得到原始图像

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


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

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

如果我理解正确的话,在你引用的句子中,作者解释了对抗性损失所产生的问题。他们在这里又说:

理论上,对抗式训练可以学习映射G和F,这两种映射产生的输出分别作为目标域Y和X均匀分布。然而,如果具有足够大的容量,网络可以将同一组输入图像映射到目标域中的任意图像随机排列,其中任何学习的映射都可以诱导与目标分布匹配的输出分布。因此,仅对抗性损失不能保证学习函数能够将单个输入x_i映射到期望输出y_i

这是引入循环一致性概念以产生有意义的映射、减少可能映射函数的空间(可以视为正则化的一种形式)的原因之一。这样做的目的不是在数据集中已有的两个随机图像之间创建配对(数据集保持不成对),而是确保如果将真实图像从域
X
映射到域
Y
,然后再映射回来,就可以得到原始图像

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

我希望这能回答你的问题