论文笔记:CycleGAN

CycleGAN

1、四个问题

  1. 要解决什么问题?
    • 图像翻译任务(image-to-image translation problems),域转换任务。
  2. 用了什么方法解决?
    • 提出了CycleGAN的网络结构。
    • 目的是:通过使用一组对抗损失,学习到一个映射 G : X → Y G: X \rightarrow Y G:XY,使得生成的样本 G ( X ) G(X) G(X)的分布难以跟真实样本 Y Y Y的分布区分开来。
    • 同样也要保证,通过另一组对抗损失,学习到一个与 G G G相反的映射 F : Y → X F: Y \rightarrow X F:YX,并能够保证cycle consistency,即 F ( G ( X ) ) ≈ X F(G(X)) \approx X F(G(X))X,反之同理。
  3. 效果如何?
    • 在图像翻译、风格转换、季节转换等任务上超过之前的模型。
    • 能够使用不成对的数据进行训练,cycleGAN会自动学习不同域之间的风格特征。
  4. 还存在什么问题?
    • CycleGAN的训练重度依赖于数据,如果数据质量不好,或是混入较多错误样本,可能会导致灾难性的后果。
    • CycleGAN相对难以收敛,直接对映射进行约束训练的难度较大。

2、论文概述

2.1、基本思路

  • 条件对抗生成网络(CGAN)是图像翻译问题的一种通用方案。对于这类网络来说,不仅仅会学习图像到图像的映射关系,还会自适应地学习一个损失函数来训练这层映射关系
  • CycleGAN思路参考自机器翻译的研究工作:
    • 在机器翻译中,语言与语言之间几乎不存在一一对应关系,可能是多对一也可能是一对多,难以建立标签。因此就有研究者提出,在语言转换过程中引入一致性假设,即:英语翻译为法语,再将其翻译为英语,要保证两次翻译前后的语句尽可能近似。
  • 因此,作者提出在图像翻译中引入cycle consistency。即假设有从域 X X X到域 Y Y Y的映射 G G G,又有从域 Y Y Y到域 X X X的映射 F F F,这两个映射要满足前面提到的cycle consistency:
    • 使用映射 G G G从域 X X X转到域 Y Y Y,再使用映射 F F F从域 Y Y Y映射回域 X X X,得到 X ^ \hat{X} X^,前后要保证L2损失: ∥ X − X ^ ∥ 2 \| X - \hat{X} \|_2 XX^2尽可能小。
    • 使用映射 F F F从域 Y Y Y转到域 X X X,再使用映射 G G G从域 X X X映射回域 Y Y Y,得到 Y ^ \hat{Y} Y^,前后要保证L2损失: ∥ Y − Y ^ ∥ 2 \| Y - \hat{Y} \|_2 YY^2尽可能小。
  • 在cycle consistency之外加入两个对抗损失(adversarial loss),构成两个GAN,最后组合起来就是一个CycleGAN模型。

2.2、方法

论文笔记:CycleGAN_第1张图片

  • 如图所示,是一个CycleGAN的基本结构:
  • 对抗损失(Adversarial Loss):
    • CycleGAN实际上可以看做是由两个单向的GAN组成的。
    • 第一组GAN是:映射 G : X → Y G: X \rightarrow Y G:XY和判别器 D Y D_Y DY。 损失函数如下:
      • 论文笔记:CycleGAN_第2张图片
      • 生成器 G G G试着去生成图像 G ( x ) G(x) G(x),并使其尽可能类似于 Y Y Y域内的样本,同时 D Y D_Y DY尝试去区分生成的样本 G ( x ) G(x) G(x)和真实样本 y y y G G G试图去最小化目标函数,而判别器 D D D则尽可能地最大化它,如:
      • 在这里插入图片描述
    • 第二组GAN与第一组近似,映射关系相反: F : Y → X F: Y \rightarrow X F:YX,以及判别器 D X D_X DX
      • 与第一组GAN同理,可以构造对抗损失,不做赘述。
      • 优化关系也类似:在这里插入图片描述
  • Cycle Consistency Loss:
    • 仅从理论上来说,使用对抗损失来学习映射 G G G F F F,可以分别学习到域 X X X Y Y Y间的转换关系。
    • 在学习映射 G G G和映射 F F F的过程中,其实更近似与在随机的高维映射函数空间中搜索一组合适的函数。而仅仅依靠对抗损失,往往很难保证学习到有效的映射函数。为了减少在搜索空间中可能的函数选择,还需要加入额外的映射约束。
    • 由此,作者提出了cycle consistency函数的概念:
      • 作者认为,除了使用原始的对抗损失对映射 G G G和映射 F F F进行约束之外,这两个映射函数还需要具有cycle consistency的性质。
      • 对于图像域 X X X的图像 x x x,在转换到域 Y Y Y后,还要保证能够转换回 X X X域后能得到原始图像 x x x x → G ( x ) → F ( G ( x ) ) ≈ x x \rightarrow G(x) \rightarrow F(G(x)) \approx x xG(x)F(G(x))x,文中称其为forward cycle consistency
      • 类似地,对于图像域 Y Y Y的图像 y y y,在转换到域 X X X后,还要保证能够转换回 Y Y Y域后能得到原始图像 y y y y → F ( y ) → G ( F ( y ) ) ≈ y y \rightarrow F(y) \rightarrow G(F(y)) \approx y yF(y)G(F(y))y,文中称其为backward cycle consistency
      • 公式如下:
      • 论文笔记:CycleGAN_第3张图片
  • 完整目标函数:
    • 论文笔记:CycleGAN_第4张图片
    • λ \lambda λ控制两个损失的相对关系。
    • 最终希望得到的最优生成器是:
      • 在这里插入图片描述

2.3、效果

  • 总体来说,CycleGAN的效果还是很不错的,论文给出了很多实验结果,不做赘述了。

3、参考资料

  • Unpaired Image-to-Image Translation Using Cycle-Consistent Adversarial Networks

你可能感兴趣的:(深度学习,论文阅读,论文笔记)