生成模型通常要回答一个艰难问题:怎样让模型学会训练数据的分布,并据此产生新的样本。生成对抗网络给出的路线很特别,它不要求显式写出每个样本的概率,而是安排两个可微函数相互制约。生成器把随机变量变成候选样本,判别器判断输入更像真实数据还是生成结果。两者共享同一场比赛,却优化相反方向;分布学习因此被转化为可以用梯度推进的博弈。
目标函数同时训练一把尺和一个造假者
判别器接收真实样本时希望输出接近一,接收生成样本时希望输出接近零。生成器则希望自己产生的样本让判别器作出真实判断。若把真实数据分布记作 p_data,把噪声分布记作 p_z,生成映射记作 G,判别函数记作 D,经典目标就是让 D 最大化真实项与生成项的对数似然之和,同时让 G 最小化同一个值。这里的关键不在“两个神经网络”这一外观,而在判别器提供了一种会随生成分布变化的训练信号。

固定生成器后,判别器在估计密度比
暂时把 G 看作不动,对每个位置 x,判别器面对的是来自真实分布和生成分布的两类样本。对目标逐点求最优,可得到 D*(x)=p_data(x)/(p_data(x)+p_g(x))。这个结果说明,理想判别器并不是记住样本名单,而是在比较两个分布在当前位置的相对质量。当两个分布相同,它无论看见什么都只能给出二分之一;此时标签已经无法区分来源。
min_G max_D E_x[log D(x)] + E_z[log(1-D(G(z)))]
把最优判别器代回生成器目标,所得量可以写成常数与 Jensen-Shannon 散度之和。散度只有在 p_g 与 p_data 相等时达到最小,因此在函数容量充分、每一步判别器都得到最优解的理想条件下,博弈的全局目标确实对应生成分布追上数据分布。这个理论结论澄清了方向,却不等于有限网络、有限样本和普通优化器一定会顺利抵达该点。
算法实际运行在交替更新,而非一次求解
训练循环从噪声先验采一批 z,经 G 得到伪样本;同时从数据集取一批真实样本。先利用两批数据更新判别器,再重新采噪声更新生成器。原始方案允许每轮对判别器执行 k 次更新,并在实验中使用成本较低的 k=1。梯度方法可以配合动量等常见更新规则。重要的是,两个优化问题的地形在彼此更新后都会改变,所以不能把训练过程等同于一个静态损失上的普通下降。
- 判别器学习当前两种分布的差别,而不是永恒分类规则。
- 生成器只通过判别器的梯度获得方向,不直接读取真实样本概率。
- 两侧能力和更新速度需要保持可用的竞争关系。
- 监测单个损失值不足以判断样本覆盖是否改善。
若直接最小化 log(1-D(G(z))),在训练早期判别器很容易拒绝生成样本,生成器可能得到很弱的梯度。实践中常改为最大化 log D(G(z)),也就是让生成样本被判为真实。它改变了梯度强度,却保留了相同的理想固定点。理解这一点有助于区分“理论目标”与“用于优化的替代形式”,也提醒我们不要仅凭损失符号判断实现是否错误。
动态失衡会制造三种不同假象
判别器过强时,准确率看似优秀,生成器却收不到有区分度的信号;判别器过弱时,生成器损失可能好看,但这只说明尺子失灵;生成器只覆盖少数容易骗过判别器的模式时,单张样本可能逼真,整体多样性却下降。三种情况都可能发生在损失曲线平滑的时候,因此需要同时观察生成质量、覆盖范围、梯度规模以及训练两侧的相对能力。

原始框架的优点来自避开显式推断
与某些需要马尔可夫链采样或在训练中反复近似潜变量后验的生成方法相比,对抗框架可以直接从噪声前向生成样本,并允许 G、D 使用理论上广泛的可微函数。它不要求在生成器内部建立一条显式概率密度公式,也不需要为每次采样运行链式迭代。这让模型设计获得自由,但代价是概率值难以直接评估,两个网络必须同步训练,博弈优化也可能不稳定。
| 观察维度 | 带来的便利 | 需要补偿的缺口 |
|---|---|---|
| 采样 | 噪声一次前向映射即可得到样本 | 生成质量依赖训练平衡 |
| 密度 | 无需显式归一化概率 | 不容易直接比较似然 |
| 网络 | 可使用多种可微结构 | 梯度必须穿过判别器 |
| 优化 | 能沿用小批量梯度工具 | 目标随对手更新而移动 |
原始实验使用视觉数据检验生成样本,并以当时可行的估计手段比较模型,但这些数值属于特定模型和数据设置,不应被当成今天选型时的通用排名。更值得保留的是评估思想:生成模型不能只展示精选样例,还要考察是否覆盖数据中的多种形态,以及评估方式是否与显式概率缺失这一特点相适配。
读懂理论时要记住证明的边界
收敛论证依赖若干理想化前提:生成器和判别器拥有足够容量,判别器在生成器每次更新前能达到最优,并且分布更新可以在函数空间中准确执行。真实训练只做有限步随机更新,参数化网络还带来非凸几何,所以定理证明了目标的正确性,却没有承诺给定训练程序的稳定性。把这两层分开,才能避免用“存在全局最优”解释所有训练失败。
- 先验证真实数据与生成数据的预处理完全一致。
- 分别记录两侧梯度与预测分布,不只看总损失。
- 固定一组噪声追踪样本演化,同时用随机噪声检查覆盖。
- 当一侧迅速饱和时,调整更新频率或容量而非盲目延长训练。
- 用任务相关的质量与多样性指标补充人工观察。
这场博弈真正改变的是建模接口
传统思路常要求研究者直接规定概率分布形式,再处理归一化或推断。对抗学习把“分布像不像”交给一个可训练判别器,使生成器能够通过另一个模型得到误差信号。这种接口后来可以容纳条件信息、不同数据类型和多种损失设计,但任何扩展仍要回答三个基本问题:判别信号代表什么差异,生成器能否获得稳定梯度,评估是否覆盖整体分布而非少数样本。
因此,理解生成对抗网络不应停留在“一个负责生成、一个负责鉴别”的比喻。完整主线是:二分类目标隐含密度比,最优判别器把博弈连接到分布散度,交替梯度用有限计算逼近这个理想,而实际成败取决于动态平衡与可验证评估。把理论保证与工程限制同时放在视野里,才能知道模型何时在学习分布,何时只是在赢下一局短暂的比赛。
本文《两名学习者共享一场博弈:重建生成对抗网络的理论主线》由 xkmchenmu 发布于 xkmchenmu Blog。 转载请保留原文链接并注明出处。
支付宝扫一扫