模式崩溃是cGAN较为重要的问题,以往工作大多数都致力于关注latent code和生成图像之间的关系而没有关注通过不同latent code生成的图像之间的关系。MSGAN(mode seeking loss)想要generator生成多样性的图片,但其仅考虑了image pair之间的负关系(negative relation),即其鼓励所有图片之间相似度都尽可能低,BicycleGAN and DRIT (Latent regression loss)采用回归latent code方式,鼓励网络能够恢复latent code,但其仅考虑了每个latent code和其对应的生成图片之间的独立关系,而忽略了生成图像之间的关系。下图为上述方法可视化结果https://zhuanlan.zhihu.com/p/366231002
作者提出DivCo模型,其同时考虑了生成图片的positive和negative关系,该模型也是第一个使用对比学习方法解决有条件图像生成多样性问题的模型。其中作者构建了潜在增强的(latent-augmented)对比损失,其保证相邻的latent code生成的图象是相似的,而有较大区别的latent code生成图像不相似
该方法可以兼容任何现有的cGAN模型
方法
问题形式化描述如下:定义图片数据集 ,其相应条件 ,generator ,则给定任意一个条件 和latent code ,则生成的图片为
原条件生成任务的模型loss可以定义如下
原loss只能让网络生成的图片满足真实性,但无法满足多样性
直觉上来看,应该通过增强 对于 的影响,即 的变化应该只和 相关,因此作者借助对比学习达到上述思想。对于一个query生成图像 ,其positive生成图像为 ,其中 较为接近,类似对于 定义negative生成图像 ,紧接着通过encoder 提取生成图像的特征,即 。作者定义latent-augmented contrastive loss如下
其中 表示计算两个正则化后向量的内积, 为temperature超参数
作者提出latent-augmentation strategy用于动态生成positive和negative样本。给定一个query latent code ,定义一个半径为 中心为 的超球体,则 ,其中 (即满足均匀分布), ,其中 表示element-wise 大于
对于image-to-image任务模型结构如下
对于class-conditioned image generation任务模型结构如下
以往工作证明过generator本身可以encode具有判别性的表示。如图2所示,作者直接用generator中的编码层当作encoder ,如图3所示,由于class-conditioned image generation任务的generator中不存在编码层,因此使用discriminator中的编码层当作encoder
由于该方法仅使用generator或discriminator中的编码层而无需额外构造encoder,体现了该方法的即插即用
则整体网络模型的loss可定义如下
其中, 为不同生成任务的可选正则化项
- 对于class label-conditional generation,不需要
- 对于paired image-to-image translation, 为pix-to-pix的重构损失
- 对于unpaired image-to-image translation, 为循环的重构损失(cyclic reconstruction loss)
其中 为辅助generator,其为 ( )的逆映射( )
该方法生成效果
DivCo: Diverse Conditional Image Synthesis via Contrastive Generative Adversarial Network
条件生成对抗网络(Conditional generative advictorial networks,cGANs)的目标是在给定输入条件和latent codes的情况下合成各种不同的图像,但不幸的是,它们通常会遇到模式崩溃的问题。为了解决这个问题,以前的工作[47,22]主要集中在鼓励latent codes与其生成的图像之间的相关性,而忽略了各种latent codes生成的图像之间的关系。最近的MSGAN[27]试图鼓励生成图像的多样性,但只考虑图像对之间的“negative”关系。
1. Introduction
现实世界的场景期望合成样本是多样的。然而,上述应用都存在一定程度的模式崩溃问题。为了克服这一缺点,许多工作试图增强input latent codes与输出图像之间的相关性,以确保latent codes能够控制生成的图像。BicycleGAN[47]和DRIT[22]采用了一个潜在的回归损失项,这鼓励模型从生成的图像中恢复输入的 latent code。然而,该项对提升生成多样性的效果远不能令人满意,这是由于该项只考虑了各个latent code与其生成的图像之间的关系。不同latent code生成的图像之间的关系更有价值,但被忽略了。MSGAN[27]试图解决这一问题,并提出了一种mode seeking损失,其目的是通过最大化两个任意图像的dissimilarity来提高生成多样性。但是,两个采样latent code之间的距离可能很近,它们的合成图像不应该被推开。通过在生成的图像对之间施加如此strong yet sub-optimal的约束,学习到的分布很容易变成偏差,即生成结果只依赖于latent code而忽略了条件输入。在我们后面的实验中也可以观察到这样的现象。
我们认为,MSGAN[27]的是将任何图像对视为 "负 "对而忽略 "正 "对的策略。然而,它们对于生成器正确捕捉各种潜码的语义应该是同样重要的。为此,我们试图通过对比学习的形式,同时考虑 "正 "和 "负 "的关系来学习无偏分布。对比学习被广泛应用于自我监督的表征学习任务中[33,39,5,11],最近通过保持每个生成图像与其条件输入之间的对应关系,在条件图像合成中显示出巨大的潜力[34,17]。在这项工作中,我们进一步证明了如何通过我们新提出的latent-augmented contrastive loss来适应多样化的条件图像合成。
具体来说,在同一类编码的条件下,latent-augmented contrastive loss迫使生成图像的视觉关系与其输入的latent code之间的距离相关联,即latent code相近的“正”图像应该相似,而latent code明显的“负”图像应该相似在特征空间中相互远离。
注意,在我们提出的框架中,临界值("正 "或 “负”)的选择是通过一种新颖的latent augmentation scheme实现的,即positive code在latent space中查询周围的一个小hyper-sphere内采样,而negative ones则在该hyper-sphere外采样。因此,在更好地理解latent space结构的基础上,通过对生成器进行正则化,可以在很大程度上缓解模态坍塌的问题。
我们的方法在学习分布和生成结果上都有较好的表现。我们的贡献总结为三个方面。
我们首次采用对比学习来鼓励多样化的图像合成。所提出的DivCo学习方案可以很容易地集成到现有的条件生成对抗网络中,只需稍加修改。
提出了latent-augmented contrastive loss,以对比的方式区分生成样本的latent representations。cGANs中模式崩溃的问题得到了很大的缓解。
在不同条件生成任务中的广泛实验表明,我们提出的方法有助于现有框架提高多样化图像合成的性能,而不牺牲生成图像的视觉质量。
3. Method
图2:提出了用于图像到图像转换的DivCo框架,以实现不同的条件图像合成。对于条件图像输入y,我们从先验高斯分布中采样一个带有positive code z + z^+z
+
和N个negatives code z − z^-z
−
,这些code被输入生成器G以获得生成的样本x ^ \hat x
x
^
,x ^ + , { x ^ i − } i = 1 N \hat x^+,\{\hat x^-_i\}^N_{i=1}
x
^
+
,{
x
^
i
−
}
i=1
N
。生成的样本被传递到辅助编码器(auxiliary encoder)E以获得它们相应的特征表示f,f + , { f i − } i = 1 N f^+,\{f_i^-\}^N_{i=1}f
+
,{f
i
−
}
i=1
N
并受到对比损失的监督。在这里,编码器E与生成器Genc的编码层共享权重。请注意,为了更好地说明,我们省略了原始的cGAN损失。
给定一个图像数据集X \mathcal XX和相关的条件集Y \mathcal YY。我们想学习一个生成器G,它根据给定的条件Y \mathcal YY合成X \mathcal XX域中的不同图像。生成的图像应同时具有真实性和多样性。我们提出的DivCo学习方案可以在不考虑条件数据集Y \mathcal YY的精确形式的情况下运行,例如,成对或非成对图像到图像翻译任务的先验图像(图2),类标签条件生成任务的类标签(图3)等。我们的DivCo的关键创新在于latent-augmentedc ontrastive regularization term有效地避免了模式崩溃,并鼓励更加多样化的条件图像合成。请注意,这个项可以集成到任何现有的不同生成任务的条件生成对抗网络(cGAN)的训练中,而不需要修改其架构。
给定一个任意的条件y ∈ Y y\in\mathcal Yy∈Y和一个从一个先验高斯分布采样的隐变量z ∼ N ( 0 , 1 ) z\sim\mathcal N(0,1)z∼N(0,1),发生器G以y和z作为输入并产生输出图像x ^ = G ( z , y ) \hat x=G(z,y)
x
^
=G(z,y)。
理想情况下,x ^ \hat x
x
^
应由条件y决定,同时也应受latent code z的影响。
Adversarial loss. 采用该损失是为了保证 x ^ \hat x
x
^
足够生动,使其与真实图像X无法被判别器D区分,G和D进行最小化博弈,最后收敛到纳什均衡,合成图像无法再被D与真实图像区分开来。对抗性损失的公式为
然而,它只能鼓励图像的真实性,而不是生成图像的多样性。
Diverse image synthesis via contrastive learning. 我们的目的是在多样化的条件图像合成上对cGAN进行适当的规整,并适当设计学习目标,而不是修改原有的架构以适应不同的条件生成任务。
直觉上,为了避免模式崩溃,我们应该加强z对生成的图像 x ^ \hat x
x
^
的影响,同时保留图像 x ^ \hat x
x
^
对条件输入y的适应性,换句话说, x ^ \hat x
x
^
的变化应该与z密切相关。为了实现这一目标,我们提出采用对比学习,目标是将一个查询图像及其 "正 "样本与其他 "负 "样本同时关联起来,以监督图像生成过程。对比学习中最关键的设计是如何选择 "正 "和 "负 "对。
具体来说,给定条件y,我们希望距离相近的隐变量生成的图像在视觉上相似,距离远的隐变量生成的图像在视觉上不相似。对于一个由隐变量z生成的图片x ^ = G ( z , y ) \hat x=G(z,y)
x
^
=G(z,y),我们定义它的“positive” code z + z^+z
+
和相应的图片x ^ + = G ( z + , y ) \hat x^+=G(z^+,y)
x
^
+
=G(z
+
,y)。同样用{ z i − } i = 1 N \{z^-_i\}^N_{i=1}{z
i
−
}
i=1
N
和x ^ − = G ( z − , y ) \hat x^-=G(z^-,y)
x
^
−
=G(z
−
,y)代表一系列“negative” code以及对应的生成图片。利用辅助编码器E(将要讨论),我们为生成的图像提取特征表示,即f = E ( x ^ ) , f + = E ( x ^ + ) , f i − = E ( x ^ i − ) f=E(\hat x),f^+=E(\hat x+),f^-_i=E(\hat x_i^-)f=E(
x
^
),f
+
=E(
x
^
+),f
i
−
=E(
x
^
i
−
)。期望这些特征具有判别性,并可用于对比学习中监督图像生成器G。
提出了一种新的正则化项,即latent-augmented contrastive loss,通过使f , f + f,f^+f,f
+
距离拉近,f , f − f,f^-f,f
−
拉远。
正则化项以对比损失的形式表述为
其中< ⋅ , ⋅ > <\cdot,\cdot><⋅,⋅>代表点积(inner product),用于衡量两个归一化特征之间的相似度。τ \tauτ是用于scaling the similarity的温度超参数。对于每个生成的图像x ^ \hat x
x
^
,我们在训练中生成一个正样本和多个负样本。
我们通过调整输入的隐变量z ^ + a n d { z ^ i − } \hat z^+\ and\ \{\hat z^-_i\}
z
^
+
and {
z
^
i
−
},为latent-augmented contrastive loss生成正样本和负样本。我们观察到创建z ^ + a n d { z ^ i − } \hat z^+\ and\ \{\hat z^-_i\}
z
^
+
and {
z
^
i
−
},的策略对对比学习有着至关重要的影响**(类似的观察可以在自我监督表征学习任务[5,11]和图像合成任务[34,2]中找到)**。我们提出了一种latent-augmentations trategy来生成正样本和负样本,用于动态对比学习。注意,这种新提出的增强策略是在latent space而不是像现有的无监督学习方法[5,11]那样在图像流形上进行的,以适应我们的生成任务。给定隐变量z ∼ N ( 0 , 1 ) z\sim\mathcal N(0,1)z∼N(0,1),我们定义了一个以查query code z为中心的半径为R的小超球面。
图3。提出了一种用于类条件图像生成的DivCo框架。这里y表示条件类标签。这里,编码器E与鉴别器D的编码层共享权重。
cGANs中的生成器G本身就能够对判别性特征表示进行编码,如[34]中所讨论的那样。因此,我们直接采用生成器的编码层作为我们的辅助编码器E,如图2所示。需要注意的是,由于类条件图像生成任务不需要生成器中的编码层,所以我们采用条件判别器的编码层来代替,它也能够编码判别特征,如图3所示。通过利用现成的生成器或判别器来提取对比学习中的特征表示,我们可以避免修改原始架构,显示出我们方法的即插即用功能。
Overall training objective. 我们提出的latentaugmented
contrastive loss可以很容易地整合到现有的cGANs中,用于不同的条件生成任务,即只需将我们提出的潜伏性对比损失与它们原有的训练目标一起加入。总体训练目标可以表述为
其中λ o p t \lambda_{opt}λ
opt
和λ c o n t r a \lambda_{contra}λ
contra
是在不同的生成任务中平衡不同损失的超参数。L o p t \mathcal L_{opt}L
opt
表示不同条件生成任务的可选正则化项。
对于类标签条件生成任务,不需要L o p t \mathcal L_{opt}L
opt
。对于配对的图像到图像的翻译,L o p t \mathcal L_{opt}L
opt
正则化项可以形成像素到像素的重构损失。
其中F是一个辅助生成器,它学习G从X \mathcal XX到Y YY的逆映射。
————————————————
版权声明:本文为CSDN博主「weixin_37958272」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_37958272/article/details/115211439