review | A Review on Generative Adversarial Networks: Algorithms, Theory, and Applications

摘要

GANs自2014年以来得到了广泛的研究,提出了大量的算法。然而,很少有综合的研究来解释不同GAN方法之间的联系,以及它们是如何进化的。本文试图从算法、理论和应用的角度对各种GANs方法进行综述。
首先,详细介绍了大多数GANs算法的动机、数学表示和结构。此外,GANs还与其他机器学习算法结合,用于特定的应用,如半监督学习、转移学习和强化学习。本文比较了这两种方法的异同。
其次,研究了GAN的相关理论问题。
然后,举例说明了GANs在图像处理和计算机视觉、自然语言处理、音乐、语音和音频、医学领域以及数据科学等方面的典型应用。
最后,指出了GANs未来的开放性研究问题。

1. 介绍

2. 相关工作

3. 算法

3.1 对抗生成网络(GANs)

3.2 GAN的有代表性的变体

3.2.1 InfoGAN

不只是输入一个单一的噪声信号(z),InfoGAN[14]提出将原来的输入向量,分成两部分:(z),被看作不能压缩的噪声;(c),被叫做latent code,目标是实际数据分布的重要结构化语义特征。下面我们来看看他具体是怎么做的。InfoGAN的目标函数是:

[min _{G} max _{D} V_{I}(D, G)=V(D, G)-lambda I(c ; G(z, c))$$ $V(D, G)$是原始GAN的目标函数,$G(z,c)$是生成的样本,$I$是交互信息,$lambda$来调节交互信息的重要程度。最大化$I(c;G(z,c))$意味着最大化$c$和$G(z,c)$之间的相互信息,使$c$包含尽可能多的真实样本的重要和有意义的特征。(**这里$I$是怎么样的,并没有讲**。)然而,$I(c;G(z,c))$在实践中很难直接优化,因为它需要获得**后验概率**$P(c|x)$。幸运的是,通过定义一个辅助分布$Q(c|x)$来近似$P(c|x)$,我们可以得到$I(c;G(z,c))$的一个下界。InfoGAN[14]的最终目标函数为 $$min _{G} max _{D} V_{I}(D, G)=V(D, G)-lambda L_{I}(c ; Q)$$ $L_{I}(c ; Q)$是$I(c;G(z,c))$的下界,InfoGAN具有多种变体,例如因果InfoGAN [134]和半监督InfoGAN(ss-InfoGAN)[135]。 ### 3.2.2 条件GAN(cGAN) 如果鉴别器和生成器都以某些额外信息y为条件,则GAN可以扩展为条件GAN。条件GAN的目标函数[15]为: $$min _{G} max _{D} V(D, G)=E_{x sim p_{ ext {data }}(x)}[log D(x | y)]+E_{z sim p_{z}(z)}[log (1-D(G(z | y)))]$$通过比较条件GAN与InfoGAN的目标函数,我们可以看到InfoGAN的生成器与cGANs的生成器相似。然而,InfoGAN的latent code $c$是未知的,是通过训练发现的。此外,InfoGAN还有一个额外的网络$Q$来输出条件变量$Q(c|x)$。 >基于cGAN,我们可以生成基于类标签[30],[136],文本[34],[137],[138],边界框和关键点[139]的样本。 在[34],[140]中,使用堆叠式生成对抗网络(SGAN)进行文本到逼真的图像合成[141]。 cGAN已用于卷积脸部生成[142],脸部衰老[143],图像平移[144],合成具有特定风景属性的室外图像[145],自然图像描述[146]和3D感知场景操纵[147]。 Chrysos等。 [148]提出了健壮的cGAN。 Thekumparampil等。 [149]讨论了条件GAN对噪声标签的鲁棒性。 条件CycleGAN [16]使用具有循环一致性的cGAN。ModeseekingGANs(MSGAN)[150]提出了一个简单而有效的正则化术语来解决cGAN的模式崩溃问题。 原始GAN的判别器[3]经过训练,可以最大化其分配给正确来源[30]的对数似然性: $$egin{aligned} L &=Eleft[log Pleft(S=r e a l | X_{r e a l} ight) ight] +Eleft[log left(Pleft(S=f a k e | X_{f a k e} ight) ight) ight] end{aligned}$$ 上式和$min _{G} max _{D} V(D, G)=E_{x sim p_{ ext {data }}(x)}[log D(x)]+E_{z sim p_{z}(z)}[log (1-D(G(z)))]$是一样的。 辅助分类器GAN (AC-GAN)[30]的目标函数由两部分组成:正确来源的对数似然$L_{S}$和正确类别标签的对数似然$L_{c}$。 $L_{S}$等于上式中的$L$。 $LC$定义为$$L_{C}=Eleft[log Pleft(C=c | X_{r e a l} ight) ight]+Eleft[log left(Pleft(C=c | X_{ ext {fake }} ight) ight) ight]$$鉴别器和生成器分别使$L_{S}+L_{c}$和$L_{S}-L_{c}$最大。AC-GAN是GANs的第一个变体,它能够生成所有ImageNet类的可识别示例[151]。 大多数基于cGAN的方法的鉴别器[31],[41],[152]-[154]通过简单地将y与输入或某些中间层的特征向量concatenate(embedded)在一起,将条件信息y输入鉴别器。 带有投影鉴别器的cGAN [155]在条件向量y和特征向量之间采用内积。 **[156]采用cGANs和稀疏正则化进行图像到图像的转换,相应的名字叫做pix2pix**。在GANs中,生成器学习从随机噪声$z$到$G(z)$的映射。相比之下,pix2pix的发生器没有噪声输入。pix2pix的一个新奇之处在于,pix2pix的生成器可以从观察到的图像y学习到输出图像G(y)的映射,例如从灰度图像到彩色图像。[156]中cGANs的目标可以表示为: $$L_{c G A N s}(D, G)=E_{x, y}[log D(x, y)]+E_{y}[log (1-D(y, G(y)))]$$ 此外,$l_{1}$被使用: $$L_{l_{1}}(G)=E_{x, y}left[|x-G(y)|_{1} ight]$$ 最终[156]的目标函数为: $$L_{c G A N s}(D, G)+lambda L_{l_{1}}(G)$$ $lambda$是自由参数。pix2pixHD[157]是pix2pix的后续,它使用cGANs和特征匹配损失来进行高分辨率的图像合成和语义处理。有了鉴别器,学习问题就是一个多任务学习问题: $$min _{G} max _{D_{1}, D_{2}, D_{3}} sum_{k=1,2,3} L_{G A N}left(G, D_{k} ight)$$训练集以一组对应的图像对$left{left(s_{i}, x_{i} ight) ight}$的形式给出,其中$x_{i}$是自然照片,$s_{i}$是对应的语义标签映射map。鉴别器$D_{k}$的第$i$个特征提取器表示为$D_{k}^{(i)}$(从输入到$D_{k}$的第$i$层)。特征匹配损失$L_{F M}left(G, D_{k} ight)$是: $$L_{F M}left(G, D_{k} ight)=E_{(s, x)} sum_{i=1}^{T} frac{1}{N_{i}}left[left|D_{k}^{(i)}(s, x)-D_{k}^{(i)}(s, G(s)) ight|_{1} ight]$$ 其中$N_{i}$为各层元素数,$T$为层总数。[157]的最终目标函数是: $$min _{G} max _{D_{1}, D_{2}, D_{3}} sum_{k=1,2,3}left(L_{G A N}left(G, D_{k} ight)+lambda L_{F M}left(G, D_{k} ight) ight)]

3.2.3 CycleGAN

图像到图像的转换是一类图形和视觉问题,其目标是使用一组对应的图像对训练来学习输出图像和输入图像之间的映射。当成对的训练数据可用时,参考文献[156]可用于这些图像到图像的转换任务。 但是,参考文献[156]不能用于未配对的数据(无输入/输出对),而周期一致性GAN(CycleGAN)可以很好地解决此问题[53]。对于未配对的数据,CycleGAN是重要的进步。 事实证明,循环一致性是条件熵的上限[158]。 CycleGAN可以作为提议的变分推论(VI)框架中的一种特例[159]来推论,可以自然地建立其与近似贝叶斯推论方法的关系。

DiscoGAN [54]和CycleGAN [53]的基本思想几乎相同。 几乎在同一时间分别提出了这两个建议。 CycleGAN [53]和DualGAN [55]之间的唯一区别是DualGAN使用Wasserstein GAN(WGAN)提倡的损失格式,而不是CycleGAN中使用的sigmoid形交叉熵损失。

3.2.4 (f)-GAN

正如我们所知,(KL)散度在于两个给定的概率分布之间的差异的度量。一大类不同的散度被称为AliSilvey distance,也被称为(f)-散度[160]。给定两个概率分布(P)(Q),它们分别有一个绝对连续的密度函数(P)(Q)关于在(X)域定义的一个基底测度(dx), (f)散度是定义为

[D_{f}(P | Q)=int_{X} q(x) fleft(frac{p(x)}{q(x)} ight) d x$$ $f$的不同选择将流行的散度恢复为$f$散度的特殊情况。例如,如果$f(a) = aloga$,$f$散度变成了$KL$散度。原始的GANs[3]是基于$f$散度算法的$f$-GAN[17]的一个特例。参考[17]表明,任何$f$散度都可以用于GAN的训练。此外,参考[17]讨论了散度函数的不同选择对生成模型的质量和训练复杂度的好处。[161]定量评估有散度的GAN。 [162]进一步扩展了$f$-GAN,在生成器步骤中将$f$散度直接最小化,并在鉴别器步骤中预测了实数据和生成数据的分布比率。 ### 3.2.5 积分概率指标(IPMs) (看不懂,先放着) ### 3.2.6 Loss Sensitive GAN (LS-GAN) (也先放着) ## 3.3 GANs Training 尽管存在唯一解的理论,但由于[29]、[32]等原因,GANs训练是困难且不稳定的[179]。一个难点是,GANs的最优权值对应于损失函数的鞍点,而不是最小值。 关于GAN训练的论文很多。 [180]用预测方法稳定了GAN。 通过使用独立的学习率,[181]为鉴别器和生成器提出了两个时标更新规则(TTUR),以确保模型可以收敛到稳定的局部纳什均衡。 [179]为全面了解GAN的训练动态迈出了理论上的一步。 分析了为什么GAN难以训练; 严格研究并证明了训练GAN时出现的饱和和不稳定等问题。 研究了减轻这些问题的实用且理论上扎根的方向; 并介绍了新的工具来研究它们。[182]认为GAN训练是一个持续的学习问题[183]。 改进GANs训练的一种方法是评估训练中可能出现的经验“症状”。这些症状包括:生成模型崩溃产生非常相似的样本为不同的输入[29];鉴别器损耗迅速收敛到零[179],对发生器不提供梯度更新;使这两个模型收敛于[32]的困难。 我们将从目标函数、技能和结构三个方面介绍GANs培训。 ### 3.3.1 目标函数 从3.1小节可以看出,利用原始的目标函数不等式(1)将具有梯度消失问题,而在非饱和博弈中利用替代性G损失(12)将得到模式崩溃问题。这些问题是由目标函数引起的,不能通过改变GANs的结构来解决。重新设计目标函数是解决问题的自然方法。基于GANs的理论缺陷,在理论分析的基础上,提出了许多基于目标函数的变式来改变GANs的目标函数,如最小二乘生成对抗网络[21]、[22]等。 #### 3.3.1.1 Least squares generative adversarial networks (LSGANs) : 提出了LSGANs[21]、[22]来克服原GANs中的消失梯度问题。结果表明,对于离决策边界较远的样本,原GAN的决策边界对更新G误差很小。LSGANs采用最小二乘损失而不是原GANs中的交叉熵损失。假设a-b编码用于LSGAN的鉴别符[21],其中a和b分别是生成的样本和真实样本的标签。 LSGAN的鉴别器损耗VLSGAN(D)和发电机损耗VLSGAN(G)定义为: $$min _{D} V_{L S G A N}(D)=E_{x sim p_{ ext {data}}(x)}left[(D(x)-b)^{2} ight] + E_{z sim p_{z}(z)}left[(D(G(z))-a)^{2} ight]$$ $$min _{G} V_{L S G A N}(G)=E_{z sim p_{z}(z)}left[(D(G(z))-c)^{2} ight]]

其中(c)(G)希望(D)相信的生成样本的值。参考[21]表明LSGANs与原始GANs相比有两个优势:
(1)D产生的新决策边界对远离决策边界的生成样本误差较大,使得“低质量”的生成样本向决策边界移动。这有利于生成更高质量的样本。
(2)对离决策边界较远的样本进行惩罚,可以在更新G值时提供更多的梯度,克服了原GANs中梯度消失的问题。

3.3.1.2 Hinge loss based GAN:

基于铰链损耗的GAN被提出并应用于[23]-[25],其目标函数为(V (D,G)):

[V_{D}(hat{G}, D)=E_{x sim p_{ ext {data }}(x)}[min (0,-1+D(x))] + E_{z sim p_{z}(z)}[min (0,-1-D(hat{G}(z)))]$$ $$V_{D}(G, hat{D})=-E_{z sim p_{z}(z)}[hat{D}(G(z))]$$GANs中也使用了softmax交叉熵损失[184]。 #### 3.3.1.3 Energy-based generative adversarial network (EBGAN): EBGAN的鉴别器被视为一种能量函数,可为假(“生成的”)样本提供高能量,而为真实样本提供较低的能量。 关于能量函数,请参考[185]。 给定一个正余量m,可以将EBGAN的损失函数定义如下: $$mathcal{L}_{D}(x, z)=D(x)+[m-D(G(z))]^{+}]

[mathcal{L}_{G}(z)=D(G(z)) ]

3.3.1.4 Boundary equilibrium generative adversarial networks (BEGAN):

3.3.1.5 Mode regularized generative adversarial networks (MDGAN) :

3.3.1.6 Unrolled GAN:

3.3.1.7 Spectrally normalized GANs (SN-GANs)

3.3.1.8 Relativistic GANs (RGANs):

3.3.2 Skills

3.3.3 Structure

3.3.3.1 The original GANs:

3.3.3.2 Laplacian generative adversarial networks (LAPGAN) and SinGAN:

3.3.3.3 Deep convolutional generative adversarial networks (DCGANs):

3.3.3.4 Progressive GAN:

3.3.3.5 Self-Attention Generative Adversarial Network (SAGAN):

3.3.3.6 BigGANs and StyleGAN:

3.3.3.7 Hybrids of autoencoders and GANs:

3.3.3.8 Multi-discriminator learning:

3.3.3.9 Multi-generator learning:

3.3.3.10 Multi-GAN learning:

3.3.3.11 Summary:

3.4 Evaluation metrics for GANs

3.4.1 Inception Score (IS)

3.4.2 Mode score (MS)

3.4.3 Fr´echet Inception Distance (FID)

3.4.4 Multi-scale structural similarity (MS-SSIM)

3.4.5 Summary

3.5 Task driven GANs

3.5.1 Semi-Supervised Learning

3.5.2 Transfer learning

3.5.3 Reinforcement learning

3.5.4 Multi-modal learning

3.5.5 Other task driven GANs

4 THEORY

原文地址:https://www.cnblogs.com/yijun009/p/12331626.html