
第3章 你的第一个GAN模型:生成手写数字
一、GAN的基础:对抗训练
生成器和鉴别器由可微函数表示如神经网络,它们都有自己的代价函数。这两个网络是利用鉴别器的损失进行反向传播训练。
鉴别器努力使真实样本输入和伪样本输入带来的损失最小化,而生成器努力使它生成的伪样本造成的鉴别器损失最大化。
生成器的目标是生成符合训练数据集数据分布的样本。训练数据集决定了生成器要学习模拟的样本类型,例如:目标是生成猫的逼真图像,我们就会给GAN一组猫的图像。
生成器和鉴别器只能调整自己的参数而不能相互调整对方的参数,所以GAN的训练过程可以用一个博弈过程来更好地描述,而非优化。
二、生成器和鉴别器
现在通过引入更多的表示概括所学的内容。生成器(G)接收随机噪声向量z并生成一个伪样本。数学上来说,G(z)=
。鉴别器(D)的输入要么是真实样本x,要么是伪样本
;对于每个输入,它输出一个介于0和1之间的值,表示输入是真实样本的概率。

生成器网络G将随机向量z转换为伪样本:G(z) =
。
鉴别器网络D对输入样本是否是真实进行分类并输出。
- 对于真实样本x,鉴别器力求输出尽可能接近1的值;
- 对于伪样本
,鉴别器力求输出尽可能接近0的值。
相反:生成器希望D()尽可能接近1,这表明鉴别器被欺骗,将伪样本分类为真实样本。
1、对抗的目标 -鉴真与造假
鉴真:鉴别器的目标是尽可能精确。对于真是样本x,D(x)力求尽可能接近1(正的标签);对于伪样本,D(
)力求尽可能接近0(负的标签)。
造假:生成器的目标正好相反,它试图通过生成与训练数据集中的真实数据别无二致的伪样本来欺骗鉴别器。从数学角度讲,即生成器试图生成假样本
,使得D(
)尽可能接近1。
2、混淆矩阵
鉴别器的分类可以用混淆矩阵来表示,混淆矩阵是二元分类中所有可能结果的表格表示。鉴别器的分类结果:真阳性(True Positive)、假阴性(False Negative)、真阴性(True Negative)、假阴性(False Negative)。
三、GAN训练算法
GAN训练算法:对每次训练迭代,执行:
(1)训练鉴别器。
a.取随机的小批量的真实样本x。
b.去随机的小批量的随机噪声z,并生成一小批量伪样本:G(z)=
。
c.计算D(x)和D(
)的分类损失,并反向传播总误差以更新D模型参数来最小化分类损失。
(2)训练生成器。
a.取随机的小批量的随机噪声z生成一小批量伪样本:G(z)=
。
b.用鉴别器网络对

最低0.47元/天 解锁文章
2543





