一、前言
GAN可以说是最近10年来深度学习领域最为突出的创新,GAN是深度学习和博弈论相结合的产物,GAN的诞生,在生成领域引发了一些列的创新和应用。
二、博弈论原理
GAN的思想是是一种二人零和博弈思想(Two-player Game)。零和博弈指的是参与博弈的各方,在严格竞争下,一方的收益必然意味着另一方的损失,博弈各方的收益和损失相加总和永远为“零”,双方不存在合作的可能。
GAN中有两个博弈者,一个是生成模型(Generator,简称 ),用来生成一张真实的图片,另一个是判别模型(Discriminator,简称 ),用来判别一张图片是生成出来的还是真实存在的。整个博弈的过程如下:
- 生成一张图片
- 学习区分图片是生成的图片还是来自真实分布的图片
- 根据判别模型的结果改进自己,生成新的图片
- 上述过程交替进行,直至 无法判断一张图片是生成出来的还是真实的而结束
这个博弈的过程结束后,此时就会成为一个完美的生成器,因为它生成的图片使判别模型无法区分是真实的图片还是生成的图片,此时我们可以理解为模型达到了纳什均衡(和的能力都通过博弈达到了极致,双方不分伯仲)。
收益分析:模型未收敛之前, 能完美的识破生成的图片,因此 收益总是为1, 收益总是为-1,所以总收益为0;收敛之后, 无法区分生成的图和真实的图,所以 的收益是-1, 成功骗过了 ,所以 收益为1,总收益仍然是0。所以整个训练过程是一个零和博弈过程。
三、GAN的基本结构
如下图, 通过学习如何将噪音源合成和真实数据分布类似的样本,而 则通过学习如何区分 生成的样本和真实的样本。最简单的, 和 一般通过MLP来实现,GAN的变种DCGAN通过卷积神经网络实现 和 ,本质上任何可导系统都可以用于实现 和 。
四、优化策略
GAN采用了极小极大策略来求解,关于极小极大策略可参考参考文献中的相关介绍。极小极大的形式化描述如下。
单看该等式,就能推断出这是一个两阶段的优化。在训练算法上,内存循环最大化 对真实样本的判别输出概率(最大化 的收益),外层循环最小化判别器的收益(判别器的收益可以理解为对伪造样本的判别输出概率)。极小极大策略是一种具备攻击性的优化方法,生成器总是不断的使判别器的最大收益最小化。
五、训练步骤
在每个Epoch训练过程,先对 训练 步,然后再训练一步 。一个有趣的问题是, 如果训练的次数远超过 ,则会发生模式崩塌问题,原文称之为海奥维提卡现象,此时的 生成的数据将不具备多样性,而失去了其存在的意义,具体可以参见参考文献。
for epoch i in [1,2,......,n] do:
for step j in [1,2,......,k] do:
Sample m noise samples from P(z) and m real samples from P(x)
Update parameters of D by SGD
end
Sample m noise samples from P(z)
Update parameters of G by SGD
end