gan的损失函数

GAN(生成对抗网络)的损失函数通常包含两部分,一部分是判别器(Discriminator)的损失函数,另一部分是生成器(Generator)的损失函数。

判别器损失函数

判别器的目标是区分生成的图像(fake)和真实的图像(real)。通常使用二分类交叉熵损失函数,其公式如下:

L_D = E_{x ~ p_{data}(x)}[log D(x)] + E_{z ~ p_{z}(z)}[log(1 - D(G(z)))]

其中,E_{x ~ p_{data}(x)} 表示真实数据分布的期望,E_{z ~ p_{z}(z)} 表示生成器先验分布的期望,D(x) 是判别器对输入图像 x 的输出,G(z) 是生成器根据先验分布 z 生成的图像。

生成器损失函数

生成器的目标是生成尽可能逼真的图像,以欺骗判别器。生成器的损失函数通常与判别器的损失函数相对立,其公式如下:

L_G = E_{z ~ p_{z}(z)}[log(D(G(z)))]

这里,E_{z ~ p_{z}(z)} 表示生成器先验分布的期望,D(G(z)) 是判别器对生成器生成的图像 G(z) 的输出。

JS散度和Wasserstein GAN

  • JS散度 :JS散度(Jensen-Shannon Divergence)是一种衡量两个概率分布之间差异的指标,它在GAN中用于改进损失函数,以解决KL散度的不对称性问题。

  • Wasserstein GAN :Wasserstein GAN使用Wasserstein距离作为损失函数,它是一种衡量分布之间差异的指标,比JS散度和KL散度有更好的理论性质。

训练过程

GAN的训练过程是一个二元极小极大博弈问题,即同时最小化判别器的损失函数和最大化生成器的损失函数。训练时,通常先固定判别器训练生成器,然后固定生成器训练判别器,交替进行,直到收敛。

以上是GAN损失函数的基本介绍。

Top