Goodfellow 等人在 2014 年提出的 GAN,用两个模型构成对抗训练:生成器 G 把噪声变成样本,判别器 D 估计输入来自真实数据的可能性。这是一份原始论文学习笔记,不是训练实验报告。
生成器与判别器分别学什么
可以把两者类比为制作仿品的人和鉴别仿品的人:G 希望生成样本更难区分,D 希望分清真实与生成样本。但实际优化依靠目标函数和梯度,不是两个系统像人一样互相讨论。
原始目标可以写成:
min_G max_D V(D,G)
V(D,G) = E_x~pdata[log D(x)]
+ E_z~pz[log(1 - D(G(z)))]
x 来自真实数据,z 来自噪声分布。D 尝试增大这个目标,G 在原始最小最大形式下减小它。GAN 原论文,第 3 节
交替更新时,数据从哪里来
论文算法先进行若干步判别器更新:抽取真实样本和噪声,用 G(z) 构造生成样本,更新 D;随后重新抽取噪声,通过 D(G(z)) 对 G 的参数计算梯度。
生成器的更新并不是简单“把真实图片喂给 G 做分类”。此时需要通过判别器传播梯度,但这一步优化的是 G 的参数;训练实现应明确哪些参数在当前步骤更新。
初期 G 较弱时,原始生成器目标可能提供较弱梯度,论文还讨论了最大化 log D(G(z)) 的替代目标。比较实现时,要看实际损失,而不能仅凭“都叫 GAN”认定训练相同。
理论平衡不等于实际训练必然成功
在论文所分析的理想条件下,生成分布与数据分布匹配是重要解,判别器无法再据分布区分二者。有限模型、有限样本和实际优化过程并不自动满足这些条件。
训练中还可能遇到覆盖不足、模式坍塌或优化不稳定。生成几张好看的样本,也不证明覆盖了目标分布,需要结合样本多样性、任务指标及失败情况评估。
Wasserstein GAN 等后续方法有不同目标与约束,不能混进原始 GAN 的推导。阅读时把模型结构、训练目标和评价方式分开,会比只记“两个网络对抗”更接近实际机制。