首页 > 编程知识 正文

hatcher代数拓扑解答,GAN生成对抗网络技术

时间:2023-05-05 00:35:07 阅读:41982 作者:3135

一、GAN原理介绍学习GAN的第一篇论文当然是Ian good fellow 2014年发表的Generative Adversarial Networks (论文下载链接arxiv:[ https://arxiv.org/ABS/114 )

GAN的基本原理其实并不复杂,模型通过框架中的两个模块,即生成模型(Generative Model )和判别模型)的相互博弈学习产生相当好的输出。 这里用生成图像的例子进行说明。 假设有两个网络: g (生成器)和d (描述符)。 正如其名称所暗示的那样,每个功能如下。

http://www.Sina.com/http://www.Sina.com /

在训练过程中,生成网络g的目标是尽量生成真实的图像以欺骗判别网络d。 d的目标是尽量分离g生成的图像和实际的图像。 这样,g和d构成了动态的“游戏过程”。

最后的游戏结果是,在最理想的状态下,g可以产生足以“以假乱真”的图像g(z )。 对于d来说,很难判定由g生成的图像是否是真的,即是否达到了纳什均衡,所以d(g(z ) )=0.5。 此时,模型的收敛目标是生成器可以根据随机噪声生成实际数据。

这样我们的目的就实现了。 我们得到了可以用来生成图像的生成型的模型g。

以上只是大致阐述了GAN的核心原理,怎么用数学语言来描述呢? 这里直接摘录论文的公式。G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)

整个公式由2项构成。 x表示实际图像,z表示输入到g网络中的噪声,并且g(z )表示由g网络产生的图像。

d(x )表示d网络判断实际图像是否为真的概率(由于x是真的,所以对于d来说该值越接近1越好)。 d(g ) z ) )是判断d网络由g生成的图像是否是真的概率。

D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。:如上所述,d(g ) z ) )是d网络判断g生成的图像是否真实的概率,g应该希望自己生成的图像“越接近真实越好”。 也就是说,g想尽量增大d(g ) z ),但此时v ) d、g变小。 因此,可以看出公式开头的符号是min_G。

简单分析一下这个公式::D的能力越高,d(x )越大,d(x ) x ) )应该越小。 此时,v(d,g )变大。 因此,式对d来说求最大(max_D )

下面的照片很好地反映了这个过程:

二、CGAN原理旨在允许生成器在原始GAN中从随机噪声中生成实际数据,CGAN (论文下载链接arxiv:https://arxiv.org/pdf/1411.1784.pgan ) 为具有特定性质的MNIST数据集生成图像样本时,来自原始GAN的生成器可以从随机向量生成包含数字的图像样本。 其中,数字介于0和9之间,而CGAN可以在生成器输入时添加条件y以生成所需数字的图像样本。 例如,可以生成包含数字1的图像。 如图Figure1所示。 价值函数的变化如下。

三、DCGAN原理DCGAN (论文下载链接arxiv:https://arxiv.org/ABS/1511.06434 ) )应用了较广泛的改进结构,基本上采用卷积层代替原始的全连接层,其如图所示

GAN的主要问题是培训过程不稳定,但直流GAN由于以下原因提高了稳定性:

大部分层采用batchnorm层,特征层输出归一化,加速训练,提高训练稳定性的判别器采用Leaky ReLU,避免梯度过度稀疏,生成器采用ReLU,而最终输出层采用Tanh; 使用Adam优化培训,最佳学习率为0.0002; 使用步进长卷积而不是上采样层,卷积可以有效地提取图像特征,并且使用卷积而不是全连通层。

四、WGAN原理为了使GAN训练更稳定,与DCGAN不同,WGAN (论文下载链接arxiv:https://arxiv.org/pdf/1701.07875.pdf )主要从损耗函数的角度进行改进

a )鉴别器的末级去除Sigmoid;

b )发生器和判别器的loss不取Log;

c )为了满足连续性条件,如[-0.01、0.01],对更新后的权重强制进行剪辑;

d )推荐SGD、RMSProp等优化器,不采用包含Adam等动量的优化算法。

在原始GAN中,存在判别器越好,发生器的梯度越没有、发生器loss越不下降的问题,只需要判别器不好、发生器的梯度不正确、训练不稳定、判别器的训练差还是差,但该尺度难以把握,需要相同的训练

尺度都不一样,所以GAN才难以训练。最小化生成器loss函数,会等价于最小化一个不合理的距离度量,使得最小化生成分布与真实分布的KL散度的同时又要最大化两者的JS散度,导致梯度不稳定,同时也会使得生成器宁可多生成一些重复但较为“安全”的样本,也不愿意生成多样性的样本,从而导致模式崩溃,即多样性不足。

下图所示为标准GAN与WGAN对真实样本分布和生成样本分布判别的差异,标注GAN会出现梯度消失的情况,而WGAN则有较好的线性梯度。

要在于从理论上给出了GAN训练不稳定的原因,即交叉熵不适合衡量具有不相交部分的数据之间的距离,转而使用Wassertein距离去衡量生成数据与真实数据之间的距离,理论上解决了训练不稳定的问题;解决了模式崩溃问题,生成结果更加多样;对GAN的训练提供了一个指标,可以采用此指标来衡量GAN训练的好坏,而不像之前那样盲目训练。

五、LSGAN原理

LSGAN(论文下载链接arxiv:https://arxiv.org/pdf/1611.04076.pdf)的主要目的也是采用最故意的小鸽子乘损失函数代替了GAN目标函数的交叉熵,从而解决了GAN训练不稳定和生成图像质量差、多样性不足的问题。

其中a,b,c属于超参数,a,b分别表示生成图片和真实图片的标记,c是生成器为了使判别器认为生成图片为真实样本而定的值,这里设定a=0,b=c=1。

论文主要回答了两个问题:为什么最故意的小鸽子乘损失可以提高生成图片质量;为什么最故意的小鸽子乘损失可以使得GAN训练更稳定。对于第一个问题,论文认为交叉熵作为损失函数,会使得生成器不再优化那些被判别器识别为真实图片的生成图片,即使这些生成图片距离判别器的决策边界仍较远。原因在于生成器只需要完成混淆判别器的目标生成图片即可,而最故意的小鸽子乘损失则在混淆判别器的前提下还得让生成器把距离决策边界较远的生成图片拉向决策边界。对于第二个问题,论文认为Sigmoid交叉熵损失容易达到饱和状态,即梯度为0,而最故意的小鸽子乘只在一个点达到饱和。

六、BEGAN原理

谷歌提出一种新的简单强大的GAN,这是一种新的评价生成器生成质量的方法,不需要太多的训练技巧即可实现快速稳定的训练。以往的GAN及其变体是希望生成器生成的数据分布尽可能地接近真实数据分布,因此研究者们设计了各种损失函数,而BEGAN则不采用这种估计概率分布的方法,即不直接去估计生成分布Pg和真实分布Pdata的差距,而是估计分布的误差分布差距,只要分布之间的误差分布相近,也可以认为这些分布是相近的。

BEGAN主要有3个贡献:

(1)提出了一种新的简单强大的GAN网络结构,使用标准的训练方式也能快速稳定的收敛。
(2)对于生成器和判别器的平衡提出了一种均衡的概念,提供了一个超参数,这个超参数用于平衡图像的多样性和生成质量。
(3)受WGAN启发,提出了一种收敛程度估计。

BEGAN采用自编码器作为判别器;在生成器的设计上,使用Wasserstein距离衍生出的损失去匹配自编码器的损失分布,这是通过传统的GAN目标加上一个用来平衡判别器和生成器的平衡项来实现的;还提出了一个衡量生成样本多样性的超参数Y:生成样本损失的期望与真实样本损失的期望值之比。Y值较低时会导致图像多样性较差,因为此时判别器过于关注对真实图像的自编码。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。