《Generative Adversarial Nets》笔记

生成对抗网络包括两个部分:生成器和判别器。为了让生成器学习到数据的分布,定义一个先验噪声变量Pz,然后通过生成器映射到数据空间Pg,即假的数据。判别器以生成的数据及真实数据作为输入,输出为一个0到1之间的数,看作输入来自真实数据的概率,因此判别器为一个二分类分类器。我们想让判别器通过训练最大化分配真实数据标签1假数据标签为0的概率,同时训练生成器生成的假数据可以迷惑判别器,让判别器最小化假数据标签为0的概率,最终达到平衡。因此损失函数如下:
这里写图片描述
实际上,以上公式在训练早期的时候并不能够为生成器提供足够的梯度。这是因为在训练初期,生成器生成的图像质量较差,判别器会以较大的概率分出假的数据,这时log(1-D(G(z)))变化较为平缓,梯度较小,会导致生成器不更新。因此将log(1-D(G(z)))改为log(D(G(z))可以提供较大的梯度。

《Generative Adversarial Nets》笔记_第1张图片
判别器为蓝线,数据分布为黑线,生成器生成的假数据分布为绿线
最下面那条线为噪声z均匀采样,箭头为生成器,将噪声映射到数据空间。
(a)当快要收敛时,Pg和Pdata很相似
(b)此时训练判别器到最优
(c)几次更新G之后D的梯度使G看更靠近真实数据分布
(d)几次迭代之后,生成分布和数据分布相同,Pg=Pdata,判别器不能区分两个分布。
《Generative Adversarial Nets》笔记_第2张图片

命题1
当生成器固定时,最优的判别器为这里写图片描述
这里写图片描述

定理1
当判别器为最优时,训练生成器相当于最小化生成数据分布与真实数据分布的JS散度,当Pg=Pdata时,判别器损失达到最小值
这里写图片描述

《Generative Adversarial Nets》笔记_第3张图片

优点和缺点
缺点:生成分布的表达不明确,当G训练时,D必须和G相适应
优点:不需要马尔科夫链,只需要梯度来更新参数,在训练时不需要推理,几乎任何函数都可以整合到模型中。

你可能感兴趣的:(《Generative Adversarial Nets》笔记)