GAN在图像生成应用综述

电子说

1.3w人已加入

描述

GAN 在图像生成上取得了巨大的成功,这无疑取决于 GAN 在博弈下不断提高建模能力,最终实现以假乱真的图像生成。

GAN 自 2014 年诞生至今也有 4 个多年头了,大量围绕 GAN 展开的文章被发表在各大期刊和会议,以改进和分析 GAN 的数学研究、提高 GAN 的生成质量研究、GAN 在图像生成上的应用(指定图像合成、文本到图像,图像到图像、视频)以及 GAN 在 NLP 和其它领域的应用。图像生成是研究最多的,并且该领域的研究已经证明了在图像合成中使用 GAN 的巨大潜力。

本文围绕An Introduction to Image Synthesis with Generative Adversarial Nets 一文对 GAN 在图像生成应用做个综述。

图像生成

论文引入

著名的物理学家 Richard Feynman 说过:“What I cannot create, I do not understand”(对于我创造不出的事物,我是无法理解它的)。我们现阶段接触到的 AI 产品,都是在尝试去看懂人类可以看懂的,例如对 ImageNet 的图像分类、AlphaGo、智能对话机器人等。

然而,我们仍然不能断定这些算法具有真正的“智能”,因为知道如何做某事并不一定意味着理解某些东西,而且真正智能的机器人理解其任务是至关重要的。 

如果机器可以去 create,这也就可以说明机器对它的输入数据已经可以自主的建模,这是否可以说明机器在朝着更加“智慧”迈进了一步。这种 create 在机器学习的领域下,目前最为可行的方法是生成模型。通过学习的生成模型,机器甚至可以绘制不在训练集中但遵循相同分布的样本。 

在生成模型中比较有影响力的有 VAE [1]、PixelCNN [2]、Glow [3]、GAN [4]。其中在 2014 年提出的 GAN 可谓是生成模型中最受欢迎的,即使不能说 GAN 是一骑绝尘但也可谓是鹤立鸡群。

GAN 由两个神经网络组成,一个生成器和一个判别器组成,其中生成器试图产生欺骗判别器的真实样本,而判别器试图区分真实样本和生成样本。这种对抗博弈下使得生成器和判别器不断提高性能,在达到纳什平衡后生成器可以实现以假乱真的输出。

但是这种纳什平衡只存在于理论中,实际 GAN 的训练伴随着一些问题的限制。一个是 GAN 训练不稳定性另一个是模式崩溃,导致问题的理论推导在之前的文章 [41] 有所推证。 

GAN 存在的问题并没有限制 GAN 的发展,不断改进 GAN 的文章层出不穷,在这几年的铺垫下 GAN 已经发展得蛮成熟的。从这几年关于 GAN 的高质量文章可以看出,18 年以后的文章更多关注的是 GAN 在各个领域的应用,而之前的文章则是集中在 GAN 存在问题的改进。

GAN 在图像生成应用最为突出,当然在计算机视觉中还有许多其他应用,如图像绘画,图像标注,物体检测和语义分割。在自然语言处理中应用 GAN 的研究也是一种增长趋势,如文本建模,对话生成,问答和机器翻译。然而,在 NLP 任务中训练 GAN 更加困难并且需要更多技术,这也使其成为具有挑战性但有趣的研究领域。 

An Introduction to Image Synthesis with Generative Adversarial Nets 一文是概述 GAN 图像生成中使用的方法,并指出已有方法的优缺点。本文则是对这篇论文进行个人的理解和翻译,并对其中的一些方法结合个人实际应用经验进行分析。

GAN的基础

接触过 GAN 的学者如果对 GAN 的结构已经很熟悉,这一部分可以自行跳过。我们看一下 GAN 的基础结构:

图像生成

GAN 可以将任意的分布作为输入,这里的 Z 就是输入,在实验中我们多取Z∼N(0,1),也多取 [−1,1] 的均匀分布作为输入。生成器 G 的参数为 θ,输入 Z 在生成器下得到 G(z;θ),输出可以被视为从分布中抽取的样本 G(z;θ)∼Pg。

对于训练样本 x 的数据分布为 Pdata,生成模型 G 的训练目标是使 Pg 近似Pdata。判别器 D 便是为了区分生成样本和真实样本的真假,训练发生器和判别器通过最小 - 最大游戏,其中发生器 G 试图产生逼真的数据以欺骗判别器,而判别器 D 试图区分真实数据和合成数据。这种博弈可公式化为:

图像生成

最初的 GAN 使用完全连接的层作为其构建块。后来,DCGAN [5] 提出使用卷积神经网络实现了更好的性能,从那以后卷积层成为许多 GAN 模型的核心组件。

然而,当判别器训练得比发生器好得多时,D 可以有信心地从 G 中拒绝来自 G 的样本,因此损失项 log(1−D(G(z))) 饱和并且 G 无法从中学到任何东西。

为了防止这种情况,可以训练 G 来最大化 logD(G(z)),而不是训练 G 来最小化 log(1−D(G(z)))。虽然 G 的改变后的损失函数给出了与原始梯度不同的梯度,但它仍然提供相同的梯度方向并且不会饱和。

条件GAN

在原始 GAN 中,无法控制要生成的内容,因为输出仅依赖于随机噪声。我们可以将条件输入 c 添加到随机噪声 Z,以便生成的图像由 G(c,z) 定义。这就是 CGAN [6],通常条件输入矢量 c 与噪声矢量 z 直接连接即可,并且将得到的矢量原样作为发生器的输入,就像它在原始 GAN 中一样。条件 c 可以是图像的类,对象的属性或嵌入想要生成的图像的文本描述,甚至是图片。

图像生成

辅助分类器GAN (ACGAN)

为了提供更多的辅助信息并允许半监督学习,可以向判别器添加额外的辅助分类器,以便在原始任务以及附加任务上优化模型。这种方法的体系结构如下图所示,其中 C 是辅助分类器。 

添加辅助分类器允许我们使用预先训练的模型(例如,在 ImageNet 上训练的图像分类器),并且在 ACGAN [7] 中的实验证明这种方法可以帮助生成更清晰的图像以及减轻模式崩溃问题。使用辅助分类器还可以应用在文本到图像合成和图像到图像的转换。

图像生成

GAN与Encoder的结合

尽管 GAN 可以将噪声向量 z 转换为合成数据样本 G(z),但它不允许逆变换。如果将噪声分布视为数据样本的潜在特征空间,则 GAN 缺乏将数据样本 x 映射到潜在特征 z 的能力。

为了允许这样的映射,两个并发的工作 BiGAN [8] 和 ALI [9] 在原始 GAN 中添加编码器 E,如下图所示。

图像生成

令 Ωx 为数据空间,Ωz 为潜在特征空间,编码器 E 将 x∈Ωx 作为输入,并产生特征向量 E(x)∈Ωz 作为输出。修正判别器 D 以将数据样本和特征向量都作为输入来计算 P(Y|x,z),其中 Y=1 表示样本是真实的而 Y=0 表示数据由 G 生成。用数学公式表示为:

图像生成

GAN与VAE的结合

VAE 生成的图像是模糊的,但是 VAE 生成并没有像 GAN 的模式崩溃的问题,VAE-GAN [10]的初衷是结合两者的优点形成更加鲁棒的生成模型。模型结构如下:

图像生成

但是实际训练过程中,VAE 和 GAN 的结合训练过程也是很难把握的。

处理模式崩溃问题

虽然 GAN 在图像生成方面非常有效,但它的训练过程非常不稳定,需要很多技巧才能获得良好的结果。GAN 不仅在训练中不稳定,还存在模式崩溃问题。判别器不需要考虑生成样品的种类,而只关注于确定每个样品是否真实,这使得生成器只需要生成少数高质量的图像就足以愚弄判别者。

例如在 MNIST 数据集包含从 0 到 9 的数字图像,但在极端情况下,生成器只需要学会完美地生成十个数字中的一个以完全欺骗判别器,然后生成器停止尝试生成其他九位数,缺少其他九位数是类间模式崩溃的一个例子。类内模式崩溃的一个例子是,每个数字有很多写作风格,但是生成器只学习为每个数字生成一个完美的样本,以成功地欺骗鉴别器。 

目前已经提出了许多方法来解决模型崩溃问题。一种技术被称为小批量(miniBatch)特征,其思想是使判别器比较真实样本的小批量以及小批量生成的样本。通过这种方式,判别器可以通过测量样本在潜在空间中的距离来学习判断生成的样本是否与其他一些生成的样本过于相似。尽管这种方法运行良好,但性能在很大程度上取决于距离计算中使用的特征。 

MRGAN [11] 建议添加一个编码器,将数据空间中的样本转换回潜在空间,如 BiGAN 它的编码器和生成器的组合充当自动编码器,重建损失被添加到对抗性损失中以充当模式正则化器。同时,还训练判别器以区分重构样本,其用作另一模式正则化器。 

WGAN [12] 使用 Wasserstein 距离来测量真实数据分布与学习分布之间的相似性,而不是像原始 GAN 那样使用 Jensen-Shannon 散度。虽然它在理论上避免了模式崩溃,但模型收敛的时间比以前的 GAN 要长。

为了缓解这个问题,WGAN-GP [13] 建议使用梯度惩罚,而不是 WGAN 中的权重削减。WGAN-GP 通常可以产生良好的图像并极大地避免模式崩溃,并且很容易将此培训框架应用于其他 GAN 模型。

SAGAN [14] 将谱归一化的思想用在判别器,限制判别器的能力。

GAN在图像生成方法

GAN 在图像生成中的主要方法为直接方法,迭代方法和分层方法,这三种方法可由下图展示:

图像生成

区分图像生成方法是看它拥有几个生成器和判别器。

直接法

该类别下的所有方法都遵循在其模型中使用一个生成器和一个判别器的原理,并且生成器和判别器的结构是直接的,没有分支。许多最早的 GAN 模型属于这一类,如 GAN [4]、DCGAN[5]、ImprovedGAN [15],InfoGAN [16],f-GAN [17] 和 GANINT-CLS [18]。

其中,DCGAN 是最经典的之一,其结构被许多后来的模型使用,DCGAN 中使用的一般构建块如下图所示,其中生成器使用反卷积,批量归一化和 ReLU 激活,而判别器使用卷积,batchnormalization 和 LeakyReLU 激活,这也是现在很多 GAN 模型网络设计所借鉴的。

图像生成

与分层和迭代方法相比,这种方法设计和实现相对更直接,并且通常可以获得良好的结果。

分层法 

与直接法相反,分层方法下的算法在其模型中使用两个生成器和两个鉴别器,其中不同的生成器具有不同的目的。这些方法背后的想法是将图像分成两部分,如“样式和结构”和“前景和背景”。两个生成器之间的关系可以是并联的或串联的。 

SS-GAN [19] 使用两个 GAN,一个 Structure-GAN 用于从随机噪声 ẑ 作为输入并输出图像,整体结构可由下图展示:

图像生成

迭代法

迭代法不同于分层法,首先,不使用两个执行不同角色的不同生成器,此类别中的模型使用具有相似或甚至相同结构的多个生成器,并且它们生成从粗到细的图像,每个生成器重新生成结果的详细信息。当在生成器中使用相同的结构时,迭代方法可以在生成器之间使用权重共享,而分层方法通常不能。 

LAPGAN [20] 是第一个使用拉普拉斯金字塔使用迭代方法从粗到细生成图像的 GAN。LAPGAN 中的多个生成器执行相同的任务:从前一个生成器获取图像并将噪声矢量作为输入,然后输出再添加到输入图像时使图像更清晰的细节(残留图像)。

这些发生器结构的唯一区别在于输入/输出尺寸的大小,而一个例外是最低级别的生成器仅将噪声向量作为输入并输出图像。LAPGAN 优于原始 GAN 并且表明迭代方法可以生成比直接方法更清晰的图像。

图像生成

StackGAN [21] 作为一种迭代方法,只有两层生成器。第一个生成器接收输入 (z,c),然后输出模糊图像,可以显示粗略的形状和对象的模糊细节,而第二个生成器采用 (z,c) 和前一个生成器生成的图像,然后输出更大的图像,可以得到更加真实的照片细节。 

迭代法的另一个例子是 SGAN [22],其堆叠生成器,其将较低级别的特征作为输入并输出较高级别的特征,而底部生成器将噪声矢量作为输入并且顶部生成器输出图像。

对不同级别的特征使用单独的生成器的必要性是 SGAN 关联编码器,判别器和 Q 网络(用于预测 P(zi|hi) 的后验概率以进行熵最大化,其中 hi 每个生成器的第 i 层的输出特征),以约束和改善这些特征的质量。

图像生成

其它方法

与前面提到的其他方法不同,PPGN [23] 使用激活最大化来生成图像,它基于先前使用去噪自动编码器(DAE)学习的采样。

为了生成以特定类别标签 y 为条件的图像,而不是使用前馈方式(例如:如果通过时间展开,可以将循环方法视为前馈),PPGN 优化过程为生成器找到输入 z 这使得输出图像高度激活另一个预训练分类器中的某个神经元(输出层中与其类标签 y 对应的神经元)。 

为了生成更好的更高分辨率的图像,ProgressiveGAN [24] 建议首先训练 4×4 像素的生成器和判别器,然后逐渐增加额外的层,使输出分辨率加倍至 1024×1024。这种方法允许模型首先学习粗糙结构,然后专注于稍后重新定义细节,而不是必须同时处理不同规模的所有细节。

图像生成

GAN在文本到图像的应用

GAN 应用于图像生成时,虽然 CGAN [6] 这样的标签条件 GAN 模型可以生成属于特定类的图像,但基于文本描述生成图像仍然是一个巨大的挑战。文本到图像合成是计算机视觉的里程碑,因为如果算法能够从纯粹的文本描述中生成真实逼真的图像,我们可以高度确信算法实际上理解图像中的内容。 

GAN-INT-CLS [18] 是使用 GAN 从文本描述生成图像的第一次尝试,这个想法类似于将条件向量与噪声向量连接起来的条件 GAN,但是使用文本句子的嵌入而不是类标签或属性的区别。

图像生成

GAN-INT-CLS 开创性地区分两种错误来源:不真实的图像与任何文本,以及不匹配的文本的真实图像。

为了训练判别器以区分这两种错误,在每个训练步骤中将三种类型的输入馈送到判别器:{真实图像,匹配文本},{真实图像,不匹配文本} 和 {伪图像,真实文本}。这种训练技术对于生成高质量图像非常重要,因为它不仅告诉模型如何生成逼真的图像,还告诉文本和图像之间的对应关系。 

TAC-GAN [25] 是 GAN-INT-CLS [18] 和 ACGAN [7] 的组合。

位置约束的文本到图像

尽管 GAN-INT-CLS [18] 和 StackGAN [21] 可以基于文本描述生成图像,但是它们无法捕获图像中对象的定位约束。为了允许编码空间约束,GAWWN [26] 提出了两种可能的解决方案。 GAWWN 提出的第一种方法是通过空间变换网络对空间复制的文本嵌入张量进行学习,从而学习对象的边界框。

空间变换器网络的输出是与输入具有相同维度的张量,但是边界外的值都是零。空间变换器的输出张量经过几个卷积层,以将其大小减小回一维向量,这不仅保留了文本信息,而且还通过边界框提供了对象位置的约束。这种方法的一个好处是它是端到端的,不需要额外的输入。

图像生成

GAWWN 提出的第二种方法是使用用户指定的关键点来约束图像中对象的不同部分(例如头部,腿部,手臂,尾部等)。对于每个关键点,生成一个掩码矩阵,其中关键点位置为 1,其他为 0,所有矩阵通过深度级联组合形成一个形状 [M×M×K] 的掩码张量,其中 M 是掩码的大小,K 是数字关键点。

然后将张量放入二进制矩阵中,其中 1 指示存在关键点,否则为 0,然后在深度方向上复制以成为要被馈送到剩余层中的张量。虽然此方法允许对对象进行更详细的约束,但它需要额外的用户输入来指定关键点。

图像生成

尽管 GAWWN 提供了两种可以对生成的图像强制执行位置约束的方法,但它仅适用于具有单个对象的图像,因为所提出的方法都不能处理图像中的多个不同对象。

堆叠GAN的文本到图像

StackGAN [21] 建议使用两个不同的生成器进行文本到图像的合成,而不是只使用一个生成器。第一个生成器负责生成包含粗糙形状和颜色的对象的低分辨率图像,而第二个生成器获取第一个生成器的输出并生成具有更高分辨率和更清晰细节的图像,每个生成器都与其自己的判别器相关联。

图像生成

StackGAN ++ [27] 建议使用更多对生成器和判别器而不是仅仅两个,为判别器增加无条件图像合成损失,并使用由均值平均损失计算的色彩一致性正则化项和真实和虚假图像之间的差异。 

AttnGAN [28] 通过在图像和文本特征上使用注意机制进一步扩展了 StackGAN ++ [27] 的体系结构。在 AttnGAN 中,每个句子都嵌入到全局句子向量中,并且句子的每个单词也嵌入到单词向量中。

全局句子向量用于在第一阶段生成低分辨率图像,然后以下阶段使用前一阶段的输入图像特征和单词向量作为对关注层的输入并计算将使用的词语上下文向量。与图像特征组合并形成生成器的输入,将生成新的图像特征。

文本到图像模型的局限性 

目前的文本到图像模型在每个图像具有单个对象的数据集上表现良好,例如 CelebA 中的人脸,CUB 中的鸟以及 ImageNet 中的一些对象。此外,他们可以在 LSUN 中为卧室和起居室等场景合成合理的图像,即使场景中的物体缺乏清晰的细节。然而,在一个图像中涉及多个复杂对象的情况下,所有现有模型都工作得很糟糕。 

当前模型在复杂图像上不能很好地工作的一个合理的原因是模型只学习图像的整体特征,而不是学习其中每种对象的概念。这解释了为什么卧室和起居室的合成场景缺乏清晰的细节,因为模型不区分床和桌子,所有它看到的是一些形状和颜色的图案应放在合成图像的某处。换句话说,模型并不真正理解图像,只记得在哪里放置一些形状和颜色。 

生成性对抗网络无疑提供了一种有前途的文本到图像合成方法,因为它产生的图像比迄今为止的任何其他生成方法都要清晰。为了在文本到图像合成中迈出更进一步的步骤,需要找到新的方法实现算法的事物概念。一种可能的方法是训练可以生成不同种类对象的单独模型,然后训练另一个模型,该模型学习如何基于文本描述将不同对象(对象之间的合理关系)组合成一个图像。

然而,这种方法需要针对不同对象的大型训练集,以及包含难以获取的那些不同对象的图像的另一大型数据集。另一个可能的方向可能是利用 Hinton 等人提出的胶囊理念,因为胶囊被设计用于捕获物体的概念,但是如何有效地训练这种基于胶囊的网络仍然是一个需要解决的问题。

GAN在图像到图像的应用

图像到图像的转换被定义为将一个场景的可能表示转换成另一个场景的问题,例如图像结构图映射到 RGB 图像,或者反过来。该问题与风格迁移有关,其采用内容图像和样式图像并输出具有内容图像的内容和样式图像的样式的图像。

图像到图像转换可以被视为风格迁移的概括,因为它不仅限于转移图像的风格,还可以操纵对象的属性(如在面部编辑的应用中)。 

有监督下图像到图像转换 

Pix2Pix [29] 提出将 CGAN 的损失与 L1 正则化损失相结合,使得生成器不仅被训练以欺骗判别器而且还生成尽可能接近真实标注的图像,使用 L1 而不是 L2 的原因是 L1 产生较少的模糊图像。

图像生成

有条件的 GAN 损失定义为:

图像生成

约束自相似性的 L1 损失定义为:

图像生成

总的损失为:

图像生成

其中 λ 是一个超参数来平衡两个损失项,Pix2Pix 的生成器结构基于 UNet ,它属于编码器 - 解码器框架,但增加了从编码器到解码器的跳过连接,以便绕过共享诸如对象边缘之类的低级信息的瓶颈。

配对监督下图像到图像转换

PLDT [30] 提出了另一种进行监督图像到图像转换的方法,通过添加另一个判别器 Dpair 来学习判断来自不同域的一对图像是否相互关联。

PLDT 的体系结构如下图所示,给定来自源域的输入图像 Xs,其目标域中的真实图像 Xt,目标域中的无关图像 Xt̃ ,以及生成器 G 将 Xs 传输到图像传输到图像图像生成

图像生成

图像生成

无监督图像到图像转换 

两个并发工作 CycleGAN [31] 和 DualGAN [32] 采用重构损失,试图在转换周期后保留输入图像。CycleGAN 和 DualGAN 共享相同的框架,如下图所示。

图像生成

可以看到,两个生成器图像生成图像生成DiscoGAN [33] 是另一种利用与下图相同的循环框架的模型。

以 CycleGAN 为例,在 CycleGAN 中,有两个生成器,图像生成图像生成

尽管 CycleGAN 和 DualGAN 具有相同的模型结构,但它们对生成器使用不同的实现。CycleGAN 使用卷积架构的生成器结构,而 DualGAN 遵循 U-Net 结构。

距离约束下无监督图像到图像转换

DistanceGAN [34] 发现,源域 A 中两个图像之间的距离的图像生成

图像生成

图像生成图像生成图像生成

特征稳定下无监督图像到图像转换 

除了最小化原始像素级别的重建误差外,还可以在更高的特征级别进行此操作,这在 DTN[35] 中进行了探讨。DTN 的体系结构如下图所示,其中发生器 G 由两个神经网络组成,一个卷积网络 f 和一个反卷积网络 g,使得 G=f∘g。

图像生成

这里 f 充当特征提取器,并且 DTN 尝试在将输入图像传输到目标域之后保留输入图像的高级特征。给定输入图像 x∈xs 生成器的输出为 G(x)=g(f(x)),然后可以使用距离度量 d(DTN 使用均方误差 (MSE))定义特征重建错误。这篇论文之前我们进行过详细解读,可参看这篇文章 [42]。

借助VAE和权重分享下无监督图像到图像转换

UNIT [36]建议将VAE添加到CoGAN [37] 用于无监督的图像到图像转换,如下图所示。

图像生成

此外,UNIT 假设两个编码器共享相同的潜在空间,这意味着 xA,xB 是不同域中的相同图像,然后共享潜在空间意味着图像生成

UNIT 的目标函数是 GAN 和 VAE 目标的组合,不同之处在于使用两组 GAN / VAE 并添加超参数 λs 来平衡不同的损耗项。

无监督的多域图像到图像转换 

以前的模型只能在两个域之间转换图像,但如果想在几个域之间转换图像,需要为每对域训练一个单独的生成器,这是昂贵的。

为了解决这个问题,StarGAN [38] 建议使用一个可以生成所有域图像的生成器。StarGAN 不是仅将图像作为条件输入,而是将目标域的标签作为输入,并且生成器用于将输入图像转换为输入标签指示的目标域。

与 ACGAN 类似,StarGAN 使用辅助域分类器,将图像分类到其所属的域中。此外,循环一致性损失用于保持输入和输出图像之间的内容相似性。

为了允许 StarGAN 在可能具有不同标签集的多个数据集上进行训练,StarGAN 使用额外的单一向量来指示数据集并将所有标签向量连接成一个向量,将每个数据集的未指定标签设置为零。

图像到图像转换总结

之前讨论的图像到图像转换方法,它们使用的不同损失总结在下表中:

图像生成

最简单的损失是像素方式的 L1 重建损失,这需要成对的训练样本。单侧和双向重建损失都可以被视为像素方式 L1 重建损失的无监督版本,因为它们强制执行循环一致性并且不需要成对的训练样本。

额外的 VAE 损失基于源域和目标域的共享潜在空间的假设,并且还意味着双向循环一致性损失。然而,等效损失不会尝试重建图像,而是保留源和目标域之间图像之间的差异。 

在所有提到的模型中,Pix2Pix [29] 产生最清晰的图像,即使 L1 损失只是原始 GAN 模型的简单附加组件。将 L1 损失与 PLDT 中的成对判别器结合起来可以改善模型在涉及图像几何变化的图像到图像转换上的性能。

此外,Pix2Pix 可能有利于保留源域和目标域中图像之间的相似性信息,如在一些无监督方法如 CycleGAN [31] 和 DistanceGAN [34] 中所做的那样。

至于无监督方法,虽然它们的结果不如 Pix2Pix 等监督方法生成效果,但它们是一个很有前途的研究方向,因为它们不需要配对数据,并且在现实世界中收集标记数据是非常昂贵的。

图像到图像转换的应用

图像到图像转换已经应用在很多领域,比如在人脸面部编辑、图像超分辨率、视频预测以及医学图像转换,这一部分就不具体展开,因为这方面的工作实在过于庞大。

GAN生成图像的评价指标

生成图像的质量很难去量化,并且像 RMSE 这样的度量并不合适,因为合成图像和真实图像之间没有绝对的一对一对应关系。一个常用的主观指标是使用 Amazon Mechanical Turk (AMT),它雇用人类根据他们认为图像的真实程度对合成和真实图像进行评分。然而,人们通常对好的或坏的看法不同,因此我们还需要客观的指标来评估图像的质量。 

Inception score (IS) [15] 在将类别放入预先训练的图像分类器时,基于类概率分布中的熵来评估图像。初始得分背后的一个直觉是图像 x 越好,条件分布 p(y|x) 的熵就越低,这意味着分类器对图像的高度信任。此外,为了鼓励模型生成各种类型的图像,边际分布 p(y)=∫p(y|x=G(z))dz 应具有高熵。

结合这两个讨论,初始分数由图像生成

与初始得分相似,FCN-score [29] 采用的理念是,如果生成图像是真实的,那么在真实图像上训练的分类者将能够正确地对合成图像进行分类。然而,图像分类器不需要输入图像非常清晰以给出正确的分类,这意味着基于图像分类的度量可能无法在分辨两个图像之间细节上很小的差异。更糟糕的是,分类器的决定不一定取决于图像的视觉内容,但可能受到人类不可见的噪声的高度影响,FCN-score 的度量也是存在问题。 

Fréchet Inception Distance (FID) [39] 提供了一种不同的方法。首先,生成的图像嵌入到初始网络的所选层的潜在特征空间中。其次,将生成的和真实的图像的嵌入视为来自两个连续多元高斯的样本,以便可以计算它们的均值和协方差。然后,生成的图像的质量可以通过两个高斯之间的 Fréchet 距离来确定:

图像生成

上式 (μx,μg) 和 (∑x,∑g) 分别是来自真实数据分布和生成样本的均值和协方差。FID 与人类判断一致,并且 FID 与生成图像的质量之间存在强烈的负相关。此外,FID 对噪声的敏感度低于 IS,并且可以检测到类内模式崩溃。

总 结

本文在论文 An Introduction to Image Synthesis with Generative Adversarial Nets 的基础上回顾了 GAN 的基础知识、图像生成方法的三种主要方法,即直接方法,分层方法和迭代方法和其它生成方法,如迭代采样。也讨论了图像合成的两种主要形式,即文本到图像合成和图像到图像的转换。

希望本文可以帮助读者理清 GAN 在图像生成方向的指导,当然限于原论文(本文多数内容为翻译原文),还有很多篇精彩的 GAN 在图像生成方向的论文没有涉及,读者可以自行阅读。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分