两个网络解决的是一场博弈
设真实样本服从 pdata,噪声 z∼pz,生成器把噪声映射为 x=Gθ(z),诱导出生成分布 pg。判别器 Dϕ(x)∈(0,1) 表示在训练采样先验下把 x 判为真实的概率。原始目标为
θminϕmaxV(Dϕ,Gθ)=Ex∼pdatalogDϕ(x)+Ez∼pzlog(1−Dϕ(Gθ(z))).
判别器提高两个对数项,生成器只通过第二项改变假样本。极小和极大不能合并成“两个网络共同最小化一个损失”:同一标量对两组参数的方向相反。实践常把判别器写成最小化二元交叉熵,并把生成器写成另一个最小化损失;必须同时记录符号和冻结的参数,才能确认实现对应哪场博弈。
生成器通常只提供采样过程,不必给出可计算的 pg(x)。这是隐式生成的优势,也意味着不能直接用精确对数似然评价它。判别器学到的是当前真实与当前生成样本之间的分类边界,不是对“真实性”的普遍测量仪器。
判别器最优响应需要明确条件
先固定生成分布。假设 pdata 与 pg 都相对于同一支配测度有密度,并允许判别器在每个 x 独立选择任意 D(x)∈(0,1)。在一个点上令 a=pdata(x)、b=pg(x),需最大化
alogD+blog(1−D).
当 a+b>0 时,一阶条件为 a/D−b/(1−D)=0,得到
D∗(x)=pdata(x)+pg(x)pdata(x).
二阶导数为 −a/D2−b/(1−D)2<0,所以是唯一点态最大值;当两密度都为零时该点不影响期望。这个结论依赖等量抽取真实与生成样本。若类别采样先验不同,分子和分母要乘相应先验。有限神经网络、有限数据和未收敛优化只能近似该响应。
例 1:离散两点上的最优判别器与博弈值
样本空间只有 a,b 两点,真实分布为 (0.75,0.25),生成分布为 (0.25,0.75)。逐点代入可得 D∗(a)=0.75/(0.75+0.25)=0.75,D∗(b)=0.25。
真实项为 0.75log0.75+0.25log0.25≈−0.5623;生成项为 0.25log(1−0.75)+0.75log(1−0.25)≈−0.5623,所以 V(D∗,G)≈−1.1247。这比两分布相等时的 −log4≈−1.3863 更大,符合判别器能利用分布差异的事实。
Jensen–Shannon表达不是任意训练轨迹的描述
令混合分布 m=(pdata+pg)/2。把 D∗ 代回可得
V(D∗,G)=∫pdatalogpdata+pgpdata+pglogpdata+pgpgdx=−log4+KL(pdata∥m)+KL(pg∥m)=−log4+2JS(pdata∥pg).
因此在判别器每次都达到无限容量最优响应、密度条件成立时,生成器的理想外层问题以两分布相等为全局最优。有限步交替训练时,Dϕ 通常不是 D∗,生成器沿当前神经判别器提供的梯度移动,不能说每一步都在精确下降Jensen–Shannon散度。
若两分布支持集几乎不相交,理想判别器可在真实处接近一、生成处接近零,Jensen–Shannon值在局部可能缺少有用变化。现实梯度还取决于判别器函数在生成样本附近怎样延伸,所以“散度有理论最优”并不自动解决优化。
非饱和损失改变梯度而不改变目标平衡点
原始极小极大生成器最小化
LGminimax=Ezlog(1−D(G(z))).
若判别器logit为 s 且 D=σ(s),单样本损失对 s 的导数为 −D。训练早期判别器很容易拒绝假样本,D≈0,于是生成器收到的logit梯度很小。常用非饱和替代为
LGNS=−EzlogD(G(z)),
其对 s 的导数为 −(1−D),在 D≈0 时仍接近负一。两者都鼓励生成样本被判为真实,并在 pg=pdata 的理想平衡处相容,但训练向量场与数值尺度不同,不能把非饱和损失继续等同于前节的精确Jensen–Shannon外层目标。
例 2:判别器很强时两种生成器梯度
某假样本的判别器logit为 s=−4,故 D=σ(−4)≈0.018。极小极大损失给出 ∂LG/∂s=−D≈−0.018;非饱和损失给出 −(1−D)≈−0.982。
若该样本满足 ∂s/∂θ=2,学习率为 0.1,则两种参数梯度约为 −0.036 与 −1.964,梯度下降步长分别让 θ 增加 0.0036 与 0.1964。例子只隔离饱和效应;实际网络还会乘生成器和判别器中间层Jacobian,过大的梯度同样需要监测。
交替优化必须隔离两套参数
一次判别器步骤从真实批量和新生成批量估计 LD,假样本在此步骤从生成器计算图断开,只更新 ϕ。一次生成器步骤重新采样噪声或明确复用样本,冻结判别器参数但保留从判别器输入到生成器输出的梯度,只更新 θ。判别器步数、生成器步数、两个优化器状态和学习率都是博弈算法的一部分。
不能在生成器步骤把判别器输出也断开,否则生成器没有梯度;也不能让判别器优化器在生成器步骤偷偷更新,否则目标被改写。批量真实与假样本比例会改变隐含类别先验。批量归一化等有运行状态的层还要明确处于哪种模式,仅把参数梯度关闭不一定冻结运行统计。
例 3:一轮标量交替更新
取真实样本 xr=1、生成样本 xf=θ=−1,判别器 Dw(x)=σ(wx),初值 w=0。判别器最小化平均二元交叉熵。真实项对 w 的梯度为 −(1−D(1))⋅1/2=−0.25;假样本项为 D(−1)⋅(−1)/2=−0.25,总梯度为 −0.5。学习率 0.1 后 w=0.05。
随后冻结 w,用非饱和损失更新生成器。此时 Dw(θ)=σ(−0.05)≈0.4875,∂LG/∂θ=−(1−D)w≈−0.0256。同样学习率下,θ 从 −1 变为约 −0.9974,朝真实样本方向移动。若在第一步未断开假样本,旧的生成器梯度可能被意外累积;若第二步断开判别器输入,最后一项会变成零。
模式崩溃是覆盖失败而非单纯画面重复
模式崩溃指多个不同噪声被映射到少数输出区域,使个别样本看起来清晰,但生成分布漏掉真实分布的重要模式。其原因可能是当前判别边界给某一模式提供一致的有利梯度、生成器更新过快、判别器忘记旧失败区域,或有限批量没有暴露覆盖缺口。仅观察一小块样本图容易漏掉低频模式。
诊断应在可解释数据上统计类别或聚类覆盖、每个模式频率和模式内多样性;在连续数据上可比较特征空间精确度与召回式指标,并检查不同噪声之间的输出距离。条件生成还要分别核对条件正确性与条件内多样性。固定噪声面板适合追踪同一潜变量的时间变化,但不能代替随机大样本的覆盖统计。
例 4:用频数识别覆盖缺口
真实数据有四个等概率模式,抽取八百个生成样本后,分类器计数为 (392,388,12,8)。经验频率约为 (0.49,0.485,0.015,0.01),而真实目标为每类 0.25。前两类样本即使很清晰,也不能弥补后两类几乎缺失。
先核对分类器在真实留出集上的混淆矩阵,避免把分类错误当覆盖失败;再按多个随机种子重复计数,并检查每类内部是否只是训练样本近邻。若只报告八张恰好来自前两类的样本,无法发现频率偏差。
稳定诊断不能只看谁的损失下降
普通最小化希望目标持续下降,而GAN中一方变强会改变另一方看到的目标,损失可振荡,判别器准确率长期五成也可能来自两分布接近、两方都很弱或批量构造错误。应同时记录真实和假样本logit分布、两方梯度范数、参数更新比、判别器在训练与留出真实样本上的差距、固定噪声轨迹及覆盖统计。
判别器准确率迅速到一且生成器梯度接近零,提示两方失衡或支持分离;准确率五成但所有logit几乎为零,可能是判别器没有学习;生成样本突然失去多样性而判别损失无显著异常,说明损失标量不足以诊断模式。检查必须绑定同一预处理和冻结的评价网络,不能让指标定义随训练改变。
数值实现还要使用稳定的logit二元交叉熵,避免先取接近零的概率再求对数。出现非有限值时应保留触发批量、两个优化器状态和随机种子,而不是只从最新检查点继续。
还应把训练时间轴纳入诊断:在固定间隔保存同一组指标和样本,而不是事后挑选最美观的轮次。若选择检查点所用数据又参与最终报告,评价会受到重复选择影响,必须保留独立测试集。
评价要拆开质量、覆盖、记忆和用途
特征分布距离常把样本送入固定特征提取器,再比较均值和协方差。它能汇总某些质量与覆盖变化,却依赖特征域、样本量和协方差估计;把非高斯特征压成前两阶矩也会遗漏结构。指标较低不证明生成分布等于真实分布,更不证明单个样本正确、安全或具有许可。
例 5:相同均值方差仍可是不同分布
在一维恒等特征中,真实经验分布在 −1,+1 各占一半,均值为零、方差为一。生成经验分布在 −2,0,0,+2 各占四分之一,均值同样为零,方差为 (2+0+0+2)/4=1。
只使用高斯均值和协方差的距离会得到零,但两个分布的支持点和零点概率明显不同。故矩指标必须配合覆盖、近邻记忆检查和领域任务评价。样本量有限时还应为同一指标报告重复抽样波动。
最近邻检查可发现生成样本是否贴近训练样本,但特征和阈值选择会影响结论;人工评价能检查领域语义,却要控制盲法、样本抽取和评价者差异;下游任务分数只回答指定用途。GAN没有精确似然时尤其需要多项证据,任何单一排行榜数字都不能完整代表分布质量。
练习
练习 1:最优判别器
- 所属知识
- 点态优化
- 难度
- 3/5
推导固定生成分布时的判别器最优响应。
查看提示
固定生成器后,对
alogD+blog(1−D) 求一阶导并检查二阶导。
查看解答
当a+b大于零时,一阶条件给出
D=a/(a+b),二阶导严格为负;若真实与生成采样先验不同,应先用先验分别乘a和b。
练习 2:散度条件
- 所属知识
- Jensen–Shannon
- 难度
- 4/5
说明原始博弈值何时能写成 Jensen–Shannon 表达。
查看提示
令m为两分布平均,把分母
pdata+pg写成2m。
查看解答
代入
D∗ 后两项分别化为
KL(pdata∥m)−log2 和
KL(pg∥m)−log2,总和为
−log4+2JS;该式要求密度、无限容量和判别器点态最优,不能描述任意有限训练步。
练习 3:生成器饱和
- 所属知识
- 替代损失
- 难度
- 3/5
比较两种生成器损失在强判别器下的梯度。
查看提示
先对判别器logit求导,再考察D趋近零。
查看解答
极小极大生成器损失对logit导数为-D,D接近零时梯度很小;非饱和损失导数为-(1-D),此时接近负一,两者平衡点相容但更新场不同。
练习 4:交替更新边界
- 所属知识
- 实现
- 难度
- 4/5
写出一轮不会串扰参数的交替优化流程。
查看提示
逐步列出哪些参数冻结、哪些计算图保留。
查看解答
判别器步断开G生成的假样本并只更新判别器;生成器步冻结判别器参数但保留对其输入的梯度并只更新生成器,同时管理运行统计和分别清零优化器梯度。
练习 5:模式覆盖
- 所属知识
- 模式崩溃
- 难度
- 4/5
设计四模式数据上的崩溃诊断。
查看提示
样本清晰度之外,统计模式频率和模式内差异。
查看解答
用经真实留出集核对的分类或聚类器统计各模式频率,跨种子报告缺失率,并在每个模式内比较多样性和训练集近邻;固定小面板不能替代大样本覆盖。
练习 6:评价结论
- 所属知识
- 指标边界
- 难度
- 4/5
解释为什么一个较低的特征矩距离不能证明生成正确。
查看提示
分别考虑前两阶矩、特征域、有限样本和记忆。
查看解答
相同特征均值协方差的不同分布可得到相同矩距离;还需报告覆盖、精确度式指标、近邻记忆、领域任务与抽样波动,且结论只适用于所用特征和数据域。
概念关系
资源
论文 · 2014Generative Adversarial Nets
Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio
用于核对原始对抗目标、最优判别器分析和实验结论范围。
打开官方来源
书籍 · 2016Deep Learning
Ian Goodfellow, Yoshua Bengio, Aaron Courville
适合作为反向传播和优化章节的完整参考。
打开官方来源