提示:以下是本篇文章正文内容,下面案例可供参考
在GAN(生成对抗网络)中,生成器(Generator)和判别器(Discriminator)通常是通过神经网络实现的,因此它们并没有一个固定的数学公式来描述其内部操作。不过,我们可以从损失函数(Loss Function)的角度来理解GAN中生成器和判别器的训练目标,这些损失函数可以被视为它们“优化”的“公式”。
判别器(Discriminator)
判别器的目标是区分输入样本是来自真实数据分布还是由生成器生成的假数据。它通常是一个二分类器,输出一个介于0和1之间的概率值,表示输入样本是真实样本的概率。
判别器的损失函数通常包括两部分:
1、真实样本的损失:判别器对真实样本的预测应该接近1(真实)。
2、生成样本的损失:判别器对生成样本的预测应该接近0(假)。
一个常见的损失函数是交叉熵损失(Cross-Entropy Loss),对于判别器D,其损失函数可以表示为:
生成器(Generator)
生成器的目标是生成能够欺骗判别器的假样本,即让判别器将生成样本误认为是真实样本。因此,生成器的损失函数通常与判别器对生成样本的预测有关,即希望 D(G(z)) 接近1。
生成器的损失函数可以表示为判别器对生成样本的预测概率的负对数(因为我们要最大化这个概率,而优化器通常是最小化损失函数,所以取负对数):
训练过程
在训练过程中,我们交替地更新生成器和判别器的参数:
固定生成器,更新判别器的参数以最小化 LD。
固定判别器,更新生成器的参数以最小化 LG(这实际上是在最大化 D(G(z)))。
这个过程会重复多次,直到达到某个停止条件(如达到一定的迭代次数、生成样本的质量满足要求等)。