备注:最近使用该代码进行了一些风格迁移的实验,效果上佳,因此拜读大作,下文乃该论文部分段落(前两部分)翻译,如有不足之处,还望海涵!
前言原文链接
当我们回顾当前成功的图像转换框架时(例如CycleGAN),大多数都由三个部分组成:1、将输入图像嵌入到低维隐层空间的编码器;2、将隐层编码转换为其他域图像的生成器;3、使用对抗训练进行域对齐的判别器。尽管这种堆叠方式是标准的,但我们仍然好奇这样的问题:是否有可能重新考虑每个组件在转换框架中的作用?是否还有更紧凑更有效的网络框架?
新的网络框架
这篇文章提出了一个新颖的思路。众所周知,在图像转换任务中,当网络训练完成后,当前的网络框架将丢弃判别器。而在论文提出的新框架中,判别器赋予了双重角色——编码和分类:通过复用目标域判别器的前几层网络来替代目标域图像的编码器。作者将这个新的体系结构称为NICE-GAN。实际上,判别器的编码潜力在DCGAN这篇文章中就已经被讨论。
图1 CycleGAN的框架与作者的NICE-GAN框架之间的主要差异
与以前的方法相比,NICE-GAN具有两个优势:首先,由于不需要独立的编码组件,因此结构更紧凑,同时在训练完成后,其编码部分仍保留用于推断。其次,传统的编码器是通过生成器的梯度传播进行间接训练的。在这里,通过将其插入判别器中,可以直接利用判别损失(Discriminative Loss)进行训练,如果应用了多尺度判别器结构,则它将拥有更多的信息量和更高的训练效率。
解耦训练策略
NICE-GAN框架中的主要问题是编码器上的转换构造(translation)与判别(discrimination)之间存在矛盾的耦合——当我们通过GAN玩min-max游戏时,编码器与生成器一起训练以最小化对抗损失,而与判别器一起训练则为了使对抗损失最大化,这会导致训练目标的冲突。为了解决这个问题,作者提出了一种解耦训练策略,使编码器的训练仅与判别器相关联,而与生成器无关通过该策略——仅在最大化对抗损失(Discriminative Loss)的时候对编码器进行训练,否则将其冻结。
NICE-GAN前向传播和后向传播示意图。解耦的训练方式:在最小化对抗损失、重构损失和循环一致性损失时,编码器冻结权重,而在最大化对抗损失时训练编码器。
实验: 见论文
分析与结论:
通过t-SNE可视化隐层编码,并利用Maximum Mean Discrepancy(MMD)以计算隐层空间两个编码分布的差异。有趣的是,通过NICE的训练,两个域的隐层空间分布变得更加聚集和紧密,但彼此依然可分。这种现象解释了为什么NICE-GAN表现出色。基于共享隐层空间假设构建的NICE-GAN,通过缩短低维隐层空间中域之间的转换路径,可能会促进高维图像空间的域的转换。同时进一步支持了一个重要观点:对比由通过最大似然训练的编码器网络学习的特征,由经过判别训练的网络学习到的特征往往更具表现力,也更适合推理。在NICE-GAN中,编码器也成为分布距离度量函数的一部分,而生成器只需要从隐层分布中提取循环一致性信息并拟合目标域分布。这种简单解耦的明确分工,有望引起人们对判别器实际作用的重新思考,它可能会刷新基于GAN的诸多任务的实现框架。
论文翻译:
无监督的图像到图像转换是计算机视觉中的中心任务。一旦训练任务完成,当前的转换框架便会丢弃判别器(只需要生成器去生成目标即可)。本文通过重用判别器对目标域的图像进行编码,来证明判别器的新作用。所提出的体系结构称为NICEGAN,与以前的方法相比,具有两个有利的模式:首先,由于不需要独立的编码组件,因此结构更紧凑;其次,这种插入式编码器通过对抗损失直接进行训练,如果应用 a multiscale discriminator,可以使其信息更丰富,训练更有效。 NICEGAN算法中存在的主要问题是编码端的翻译与识别的耦合,当我们通过GAN进行最小-最大博弈时,可能会导致训练不一致。为了解决这一问题,我们提出了一种解耦的训练策略,使得编码器只在最大化对抗损失的情况下进行训练,否则保持冻结状态。在四个流行的基准上进行的大量实验表明,NICE-GAN在FID、KID和人类偏好方面都优于最先进的方法。此外,还进行了全面的消融实验,以分离出每个提出的组件的有效性(to isolate the validity of each proposed component.)。我们的代码在https://github.com/alpc91/NICE-GAN-pytorch。
图像到图像的转换将图像从一个域转换到另一个域,在视觉任务中得到了广泛的应用,从着色[39],图像编辑[6],超分辨率[20]到视频生成[35]。 考虑到在域之间收集配对图像的大量工作,更实际的研究方向[40,25,12,21,16]将目标定向到没有特征描述配对信息的无监督情况。 由于无监督翻译中的不可识别性问题[25],有人提出了各种方法来解决这个问题,通过使用额外的规则来解决这个问题,包括权重耦合[25]、循环一致性[40、17、38], forcing the generator to the identity function [34],或者更常见的是它们的组合。
当我们回顾当前成功的翻译框架(如CycleGAN[40]提出的翻译框架)时,大多数翻译框架由三个部分组成:一个编码器将输入图像嵌入低维隐藏空间,一个生成器将隐藏向量转换为另一个域的图像,以及一种利用GAN训练进行域分配的判别器[9]。尽管这种图像翻译的框架结构是标准的,但我们仍然有兴趣问:是否有可能重新考虑每个组件在当前 图像转换(GAN) 框架中的作用? 更重要的是,我们是否可以根据我们的重新思考来改变当前的架构(例如,使结构更紧凑)?
The Problem《一个有深度的提问》 : is there any possibility to rethink the role of each component in current translation frameworks? and more importantly, can we change the current formulation (for example, to a more compact architecture) based on our rethinking?
答案是肯定的,如果我们仔细回顾编码器和判别器之间的关系。判别器基本上是区分源域的翻译图像和目标域的真实图像。为此,判别器需要对输入图像进行语义编码,才能分辨出哪些图像是真的,哪些是假的。换句话说,这就证明了判别器的两个角色:编码和分类。事实上,DCGAN的论文[30]揭示了判别器的编码能力:从判别器的最后一个卷积层开始的前6个学习的卷积特征中观察到对输入图像的强烈响应。(strongly responses to the input image are observed in the first 6 learned convolutional features from the last convolution layer in the discriminator.)
基于上述动机,本文提出将判别器重新用于编码。特别是,我们将判别器中一定数量的早期层重用为目标域的编码器,如图 1 所示。 这种重用具有两个优点:一,实现了更紧凑的架构。由于编码器现在已成为判别器的一部分,因此我们不再需要用于编码的独立组件。此外,与现有的方法(在训练后放弃了判别器)不同,判别器的编码部分仍保留在我们的框架中以供推断。二。编码器得到了更有效的训练。编码器的传统培训是由发生器反向传播梯度,这是间接的。在这里,通过将其插入判别器,可以直接通过判别损失来训练编码器。此外,现代的判别器已经诉诸于多尺度方案以提高表达力[8、13、7、36]。如果应用多尺度判别器,我们的编码器将自然地继承表达能力。
我们方法的另一个问题是如何进行对抗性训练。对于传统方法[40、25、12、21、16],编码器与生成器一起训练以最小化GAN损耗,而判别器则进行单独训练以使目标最大化。在我们的框架中,编码器和判别器会重叠,如果我们应用传统训练将编码器作为翻译的一部分进行最小化训练,则编码器和判别器将变得不稳定,同时它属于判别器并且也针对判别器进行了训练最大化。为了消除不一致之处,我们开发了一种分离的训练范式。具体而言,编码器的训练仅与判别器相关联,而与生成器无关。我们在几个基准上进行的实验表明,这种简单的去耦可显着促进训练(请参见4.7节中的详细信息)。背后的另一种直觉是,使编码器脱离翻译训练的束缚将使编码器朝着除翻译之外的更通用编码目的,从而实现更大的通用性。
我们总结本文贡献如下:
Image-to-image translation. Isola等人提出的基于条件GAN的标准框架。 [14],促进了图像到图像翻译的研究。多项工作将其扩展为处理超分辨率[36]或视频生成[35]。 尽管他们获得了可喜的成果,但是所有这些方法都需要成对的数据进行训练,这限制了它们的实际使用。
Unsupervised image-to-image translation.对于具有不成对训练数据的无监督图像到图像转换,CycleGAN [40],DiscoGAN [17],DualGAN [38]通过使用循环一致性损失来保留输入图像和转换图像之间的关键属性。针对CycleGAN扩展的各种扩展方法已经提出。 第一种方式是to enable multimodal generations : MUNIT [12]和DRIT [21]将图像的潜在空间分解为领域不变的内容空间和领域特定的样式空间,以获取不同的输出。 另一个关于CycleGAN的功能改进是同时在多个(两个以上)域之间执行翻译,例如StarGAN [5]。 更具功能性的研究重点在于差异较大的域之间的转换。 例如,使用域共享潜在空间的CoupledGAN [26],UNIT [25],ComboGAN [2]和XGAN [31],以及U-GAT-IT [16]都使用关注模块进行特征选择。 最近,提出了TransGAGA [37]和TravelGAN [1]分别通过使用几何的笛卡尔积和保留矢量算法来刻画潜在表征( to characterize the latent representation )。
Introspective Networks.内省神经网络(INN)[15,19,23]和内省对抗网络(IAN)[4,33]已经探索了判别器的双重作用。尽管INN确实具有重复使用判别器的目的,但与我们的NICE-GAN相比,它表现出一些显着差异。首先,INN和NICE-GAN处理不同的任务。 INN 用于纯生成,判别器重用是用于从隐向量到图像的生成(作为解码);我们的NICE-GAN用于翻译,判别器重用是用于从图像中提取特征到隐向量(作为编码)(embedding from images to hidden vectors (as encoding).)此外,INN即使在进行推理时也需要顺序训练,而NICE-GAN只需要一次前向传递就可以生成一个新颖的图像,效率更高。对于IAN,也是纯粹的生成,重用一个判别器生成自伪样本,这是一种内省机制;我们的NICE-GAN重用一个域的判别器生成另一个域的伪样本,这是一种相互内省的机制。
本节详细介绍了我们的方法构思。我们首先介绍了它的基本思想,然后通过提供NICE-GAN中每个组件的详细信息来跟进,解耦训练机制也进行了具体说明。
3.1. General Formulation
3.2. Architecture
Multi-Scale Discriminators Dx and Dy.我这里之讨论Dx ,因为Dy 是相似的构思。补充材料(SP)中提供了完整的详细信息。我们使用 multi-scale discriminators 的灵感来自先前的著作[8、13、7、36]。 在这些方法中,将不同比例的判别器应用于不同尺寸的图像(通过降采样从原始图像获得小尺寸图像)。 在本文中,我们考虑了一种更有效的方法,即将单个输入的不同层中的特征图视为不同比例的图像,然后将它们分别输入到分类器中,并使用相应的输入大小进行区分,这与特征金字塔表示法在目标检测中的应用(例如SSD [27]和FPN [24])是类似的。
3.3. Decoupled Training
训练过程使用到三种损失:对抗性损失,身份重建损失和循环一致性损失。 对抗性损失是为了促进域转移,而重建损失和周期一致性损失都是为了解决前面指出的不可识别性问题。
由于编码器Ex不仅是判别器Dx的一部分,而且还被当作生成器Gx→y的输入,因此如果我们采用常规对抗训练,则会导致不一致。为了克服这一缺陷,我们将Ex的训练与生成器Gx→y的训练解耦。 下文提供了计算每种损失的详细信息。
4.1. Baselines
We compare the performance NICE-GAN with stateof-the-art methods including CycleGAN [40], UNIT [25],MUNIT [12], DRIT [21], and U-GAT-IT [16] considering their competitive performance on unsupervised image-toimage translation. All compared methods are conducted by using the public codes. Specifically for U-GAT-IT, we use its light version due to the memory limit of our GPU machine. The details of all baselines are introduced in the SP.
4.3. Evaluation Metrics(评估指标)
4.5. Comparisons with state of the arts(与最新方法比较)
4.6. Ablation study (消融实验)
4.7. Decoupled Training Analysis(解耦训练分析)
尽管如此,NICE-GAN还是利用编码器和分类器进行区分,因为它与图像空间的分布相匹配,因此可以捕获更精确的信息。
NICE-GAN清楚地区分了不同组件的职责,因此既简单又有效。 此外,它进一步支持以下观点[4]:区别对待的训练网络学习的特征比通过最大似然训练的编码器网络学习的特征更具表现力,因此更适合推理
在本文中,我们介绍了NICE-GAN,这是一种用于无监督的图像到图像翻译的新颖框架。
它重复使用判别器进行编码,并提出一种解耦范式以进行有效的训练。 在几个流行基准上的可比实验评估表明,NICE-GAN通常比最先进的方法具有更高的性能。 我们的研究有望引起人们对判别器实际作用的重新思考,在其他情况下,它有可能适用于刷新基于GAN的模型。
目前能力有限,很多内容还理解不到位,也不敢擅自翻译,希望有条件的还是直接看原文!
感觉真正认真翻译并解读(本文没有解读,还望海涵)一篇顶会文章还是需要很大努力的,毕竟都是大佬们付出了很多的精力在里面,致敬!
各位看官手下留情,感激不尽!
风格迁移实验—训练时间补充如下,供参考: