许多 GAN 研究侧重于模型收敛和模式崩溃。 我们处理博弈,我们不知道如何有效解决它。 但是 GAN 可以很有趣,特别是对于跨域转化。 CycleGAN 将样式转移到图像。 例如,我们从收集三组图片开始:一组是真实的风景,一组是莫奈的画作,最后一组是梵高的。 我们可以拍一张真实的照片并将莫奈或梵高的风格转移到上面吗? 另一方面,我们可以让莫奈的照片看起来真实吗? 我们可以把夏天的照片变成冬天的照片吗? 此外,这组图像不成对,即我们没有与莫奈绘制图片的相同位置对应的真实图像。 CycleGAN 从整体上学习他的图像的风格并将其应用于其他类型的图像。 CycleGAN 将 GAN 应用于现有设计非常简单。 我们可以将原始问题视为简单的图像重建。 我们使用深度网络 G 将图像 x 转换为 y。 我们用另一个深度网络 F 反转这个过程来重建图像。 然后,我们使用均方误差 MSE 来指导 G 和 F 的训练。 然而,我们对重建图像不感兴趣。 我们想要创建类似于某些样式的 y。 在 GAN 中,在现有设计中添加了一个判别器 D,以指导生成器网络更好地执行。 D 在训练样本和生成的图像之间充当评判。 通过这种评判,我们使用反向传播来修改生成器以生成解决鉴别器识别出的缺点的图像。 在这个问题中,我们引入了一个鉴别器 D 来确保 Y 类似于梵高的画作。 网络设计 CycleGAN 将图片从一个域传输到另一个域。 在真实图像和梵高画作之间转换图片。 我们建立了三个网络。
对于反向,我们只是将数据流反向并构建一个额外的鉴别器 Dx 来识别真实图像。 Cost 函数 训练 GAN 就像训练一个没有 GAN 的设计,然后为生成器和鉴别器回传对手损失。 我们首先确定重建cost
然后我们为生成器和鉴别器添加对手损失。
这是最终的目标函数: 此外,CycleGAN 保留了最近 50 个生成图像的历史记录来训练鉴别器。 鉴别器和生成器可能会过拟合并陷入贪婪优化的循环,导致模式崩溃。 我们使用经验回放,因此鉴别器不会过于热情地击败当前生成器。 它需要击败最后 50 个生成器才能创建更通用的方案。 |