You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

GAN损失函数的理想取值是什么?附Goodfellow原版GAN损失函数公式

GAN损失函数的理想取值是什么?

嘿,这个问题问到点子上了!咱们从Goodfellow最初提出的原始GAN损失入手,一步步拆解它的理想状态取值。

首先先明确原始GAN的损失定义:

  • 判别器损失:D_loss = - log[D(X)] - log[1 - D(G(Z))],判别器的目标是最小化这个损失
  • 生成器损失:G_loss = - log[D(G(Z))],生成器的目标是最小化这个损失

这里的X是真实训练样本,Z是输入生成器的噪声,D(.)是判别器的输出(对输入样本是真实样本的置信度,范围0到1),G(.)是生成器生成的假样本。

理想状态:纳什均衡

当GAN训练到纳什均衡状态时,生成器和判别器都无法再通过调整自身参数来降低损失,这就是我们要的理想状态。此时满足两个核心条件:

  1. 生成器生成的样本分布P_G完全等于真实样本分布P_data,也就是说生成的假样本和真样本没有任何区别
  2. 判别器对任何输入(不管是真实样本还是生成样本)的输出都是0.5——因为它完全分不出真假,只能给出50%的置信度

代入计算理想损失值

D(X)=0.5D(G(Z))=0.5代入损失函数:

  • 判别器的理想损失:
    D_loss = -log(0.5) - log(1-0.5) = -log(0.5) - log(0.5) = 2 * log(2) ≈ 1.386
  • 生成器的理想损失:
    G_loss = -log(0.5) = log(2) ≈ 0.693

简单来说,这个状态下生成器已经完美复刻了真实数据,判别器彻底失效,这正是GAN训练追求的最终目标——生成足以以假乱真的样本。

内容的提问来源于stack exchange,提问作者Vinay Joshi

火山引擎 最新活动