论文笔记-Contrastive Learning for Unpaired Image-to-Image Translation

  • 论文信息

    • 标题: Contrastive Learning for Unpaired Image-to-Image Translation
    • 作者:Taesung Park, Alexei A. Efros, Richard Zhang, Jun-Yan Zhu
    • 机构:University of California, Berkeley; Adobe Research
  • 代码链接

    • https://github.com/taesungp/contrastive-unpaired-translation
  • 论文主要贡献

  • 论文要点翻译

    • 摘要
      • 图像翻译过程中,输出的每个 patch 都应当反映对应的输入 patch 的内容,这个内容是和 domain 没有关系的
      • 本文提出一种直接的办法用于建立这种输出内容和输入内容的对应关系,通过使用基于对比学习的框架去最大化输入和输出之间的互信息,框架使得两个对应 patch 元素之间可以映射到学习到的特征空间中的同一点(其余的 patch 则不是同一个点,同一点对应的 patch 称为正样本,不同的 Patch 则称为负样本)
      • 关键的设计对比学习的方式在于:使用多层的基于 patch 的方法,而不是在图像级别进行操作
      • 在图像本身范围内采样得到一些负样本,框架使得单边的翻译性能和训练时间都得到改进
      • 方法甚至可以扩展到只有单张图像的 domain
    • 引言
      • 图像翻译的目标在于希望输出图像拥有目标 domain 图像的外观特征的同时能够具有输入 domain 图像的内同和结构特征,也就是说,这是一个重新整理特征的问题,将图像进行分解,把内容、风格等作为图像不同组件进行分解,选择需要保留的部分进行重新整理组合
      • 通常,目标的风格和外观特征通过对抗 Loss 实现,而内容则是通过循环一致性进行实现,而这个循环一致性要求从源到目标和从目标到源能构成双射关系,这个关系要求过于严苛
      • 本文的方法提出另外的方法,在内容上寻找对应性,通过将对应的输入和输出的 patch 寻找对应的互信息,将这个互信息最大化以得到有较强的内容对应关系的输出
      • 典型的结果中,给定特定的输出图像上的某个 patch 应当和输入的图像的 patch 相对应,例如:输出的斑马的头部应当来自于源图的马的头部,而不是来自于其马背或者其他背景部分,这个实现主要用的就是对比 Loss 函数(文献【56】提出的 InfoNCE loss,用于学习将对应的 patch 进行关联以及将不对应的 patch 进行区分的编码器或者嵌入表示),为了完成上述的区分表示,编码器学习关注两个不同域的图像的共有特征(例如物体信息、形状等),并对物体的差异的地方保持不变性(例如纹理风格等),两个网络(生成器和编码器)可以一起协作生成可以根据 Patch 溯源到原图 patch 的图像
      • 对比学习本身是一个有效的无监督视觉表征学习工具,在本文的工作中,用条件图像合成说明了对比学习的有效性,系统地研究了几个使得对比学习成功用于图像翻译的关键因素,研究发现主要可以通过多层对比的方式,研究通过在同一张输入图像中选取不同的 patch 作为负样本比从数据集中其他图像采集 Patch,,这样的方式可以更好的让 patch 保留输入图像的特征,而且也不需要内存存储池等额外的或者专门设计的网络
      • 实验结果表明提出的方法虽然较为轻量化,但是具有较好的性能,且运行速度较快。由于训练主要从输入图像本身选取不同的 patch,所以模型甚至能够在单张图像上进行训练
    • 相关工作
      • 图像翻译和循环一致性:pix2pix 的工作介绍,通过对抗 loss 结合重建 loss 判断结果和目标的相似度;不成对的图像翻译则需要引入循环一致性,CycleGAN、UNIT、MUNIT 等工作,从共享的中间表示中学习共有的内容隐空间,虽然这些方法有效,但是这些方法之后的循环一致性都假设图像的翻译是一个双摄,但是如果图像 domain 之间差异比较大的话,重建是比较困难的
      • 关系保留:输入之间的关系应当在输出中得以保留,例如输入图像中相似的 patch 在输出中仍然应当是相似的,输入图像之间的“距离”应当在输出中保持一致,DistanceGAN、GcGAN等工作绕过循环一致性,实现了单边的转换,本文则是通过将输入与输出之间的关系通过信息最大化进行保留,学习跨域的输入输出 patch 的相似性函数,不需要依赖预定义的距离
      • 深度网络嵌入中的感知相似性:高维度信号之间的感知距离是计算机视觉和图像处理的一个研究问题,主要的图像翻译工作都使用像素重建损失(例如 L1距离)作为衡量标准,这个标准没有反映人的感知,可能会带来模糊的结果,最近的结果发现,在 ImageNet 上预训练的 VGG 分类网络可以作为感知 loss 在图像翻译任务中使用,比之前提出的 SSIM、FSIM 等损失函数更为有效,上下文 Loss【51】更是提升了预训练的 VGG 特征的感知质量,但是预训练的模型不能根据数据进行手工调整,使得不能根据不同 domain 数据的不同判断像思想,本文使用互信息作为样本正负对之间的跨域相似性,用过调整输入输出的特定的对应关系,避免了使用预定义的相似性函数
      • 对比表征学习:传统的非监督学习主要用于可以有效重建输入的压缩特征编码,最近根据最大化互信息的方法可以解决之前方法的许多不足,利用噪声对估计学习关联信号之间的嵌入特征表示,然后将对比的不关联的信号之间的表示信息,关联信号可以是图像和图像本身、图像和图像的下游表示、图像内的邻接 patch 、输入图像的多视图、图像的多个转换版本等,InfoNCE loss 的设计选择在于一系列的 patch 如何采样、参数设置、数据增广策略等。本文是第一个将 InfoNCE loss 用于条件图像合成任务的。
    • 方法
      • 图像翻译的主要目标在于将输入域的图像 X ⊂ R H × W × C \mathcal{X} \subset \mathbb{R}^{H \times W \times C} XRH×W×C 转换到目标域图像 Y ⊂ R H × W × 3 \mathcal{Y}\subset \mathbb{R}^{H\times W\times 3} YRH×W×3,使其具有目标域图像的外观的特征;本文研究的条件中,给定的训练数据是不成对的 X = { x ∈ X } , Y = { y ∈ Y } X=\{x\in\mathcal{X}\},Y=\{y\in\mathcal{Y}\} X={xX},Y={yY},方法甚至在 X 和 Y 都只包含一张图像的时候也可以正常操作
      • 方法只需要学习一个方向的转换关系,避免了使用反方向的生成器和转换器用于辅助循环一致。首先,将生成器 G 分解为两个部分:(1) G e n c G_{enc} Genc 用于编码特征,(2) G d e c G_{dec} Gdec 用于解码特征,顺序作用两个组件之之后进行预测,生成输出的图像 y ^ = G ( x ) = G d e c ( G e n c ( x ) ) \hat{y}=G(x)=G_{dec}(G_{enc}(x)) y^=G(x)=Gdec(Genc(x))
      • 对抗 Loss:让输出的图像更符合目标域的分布规律,即外观上“更像”输出域图像,和其他 GAN 一样: L G A N ( G , D , X , Y ) = E y ∼ Y log ⁡ D ( y ) + E x ∼ X log ⁡ ( 1 − D ( G ( X ) ) ) \mathcal{L}_{GAN}(G,D,X,Y)=\mathbb{E}_{y\sim Y}\log D(y) + \mathbb{E}_{x \sim X}\log (1-D(G(X))) LGAN(G,D,X,Y)=EyYlogD(y)+ExXlog(1D(G(X)))
      • 互信息最大化:通过噪声对比估计进行输入和输出的互信息最大化,对比学习的概念源于两个信号的关联(即“查询”信号和“正”信号),查询的信号、正信号、N个负信号被映射为k维向量,即将 v , v + ∈ R k , v − ∈ R N × k v,v^+\in \mathbb{R}^k,v^-\in\mathbb{R}^{N\times k} v,v+Rk,vRN×k,其中 v n − ∈ R k v^-_{n}\in\mathbb{R}^k vnRk表示第 n 个负样本,为了防止模式崩塌等问题,将这些向量正则化到单位球上,由此建立一个 N+1 类的分类问题,查询样本和其他样本之间的距离通过参数 τ = 0.07 \tau=0.07 τ=0.07 进行缩放,通过计算交叉熵损失,表示正样本被选择的概率
      • l ( v , v + , v − ) = − log ⁡ e x p ( v ⋅ v + τ ) e x p ( v ⋅ v + τ ) + ∑ n = 1 N e x p ( v ⋅ v − τ ) \mathit{l}(v,v^+,v^-)=-\log\frac{exp(\frac{v\cdot v^+ }{\tau})}{exp(\frac{v\cdot v^+ }{\tau})+\sum_{n=1}^Nexp(\frac{v\cdot v^- }{\tau})} l(v,v+,v)=logexp(τvv+)+n=1Nexp(τvv)exp(τvv+)
      • 多层的、成对的对比学习:无监督学习条件下,对比学习被同时用于image和patch两个级别,应用中发现,除了整张图像具有内容上的共同特征,输出和输出每个对应patch也具有这样的对应关系。例如:给定一张斑马的腿部的图像patch,则其转换前的马的图像也应当是包含对应的腿部的patch,甚至在像素级别,斑马的颜色像素也应当是对应到马的颜色像素,而不是对应到背景草地的颜色像素,因此本文应用多层的基于Patch的学习目标
      • 由于 G e n c G_{enc} Genc 生成的特征用于计算图像翻译的输出,对应的特征栈也是可用的,每层特征栈中的特征和对应的空间位置可以表示图像的一个 patch,其中的越高级的特征对应的 patch 越大。选择 N 层特征作为考察对象,将特征图传给简单的两层的MLP网络 H l H_l Hl ,生成一系列的特征 { z l } L = { H l ( G e n c l ( x ) ) } L \{z_l\}_L=\{H_l(G_{enc}^l(x))\}_L {zl}L={Hl(Gencl(x))}L,其中的 G 表示第 l 层特征的输出,将 l 层特征中的每一层的空间位置记为 s ∈ { 1 , . . . , S l } s\in\{1,...,S_l\} s{1,...,Sl},将对应的特征记为 z l s ∈ R C l z_l^s\in \mathbb{R}^{C_{l}} zlsRCl,其他特征记为 z l S \ s ∈ R ( S l − 1 ) × C l z_l^{S\backslash s}\in \mathbb{R}^{(S_l-1)\times C_{l}} zlS\sR(Sl1)×Cl C l C_l Cl 是每一层的通道数,输出图像也以相似的方式进行编码
      • 目标在于将输入输出对应位置的 patch 进行匹配,可以利用输入中的其他位置的 patch 作为“不匹配”的样本,因此利用 PatchNCE Loss
      • L P a t c h N C E ( G , H , X ) = E x ∼ X ∑ l = 1 L ∑ s = 1 S l l ( z l s , z ^ l s , z l S \ s ) \mathcal{L}_{PatchNCE}(G,H,X)=\mathbb{E}_{x \sim X}\sum_{l=1}^{L}\sum_{s=1}^{S_l}\textit{l}(z_l^s,\hat{z}_l^s,z_l^{S\backslash s}) LPatchNCE(G,H,X)=ExXl=1Ls=1Sll(zls,z^ls,zlS\s)
      • 同时,可以利用从数据集中的其他图像的 patch ,将其他图像 x ~ \widetilde x x 作为负样本编码为 { z ~ l } L \{\widetilde z_l\}_L {z l}L,使用外部的 NCE loss
      • L e x t e r n a l ( G , H , X ) = E x ∼ X , x ~ ∼ Z − ∑ l = 1 L ∑ s = 1 S l l ( z l s , z ^ l s , z ~ l ) \mathcal{L}_{external}(G,H,X)=\mathbb{E}_{x \sim X,\widetilde x \sim Z^-}\sum_{l=1}^{L}\sum_{s=1}^{S_l}\textit{l}(z_l^s,\hat{z}_l^s,\widetilde z_l) Lexternal(G,H,X)=ExX,x Zl=1Ls=1Sll(zls,z^ls,z l)
      • 最终目标:
      • L G A N ( G , D , X , Y ) + λ X L P a t c h N C E ( G , H , X ) + λ X L P a t c h N C E ( G , H , Y ) \mathcal{L}_{GAN}(G,D,X,Y)+\lambda_X\mathcal{L}_{PatchNCE}(G,H,X)+\lambda_X\mathcal{L}_{PatchNCE}(G,H,Y) LGAN(G,D,X,Y)+λXLPatchNCE(G,H,X)+λXLPatchNCE(G,H,Y)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值