A09 · 第 3 章 · 第二编 隐式与可逆生成

生成对抗学习

从二人极小极大目标出发,在明确密度与容量条件下推导判别器最优响应和 Jensen–Shannon 关系,比较饱和与非饱和生成器损失,并用交替更新、模式覆盖诊断和多维评价界定生成对抗学习的能力。

报告页面错误
预备知识变分自编码器与证据下界损失函数约束优化、KKT 条件与对偶性神经网络与反向传播综合复习

本章目标

  1. 写出原始GAN的极小极大目标,区分判别器与生成器各自优化的变量和数据来源。
  2. 在共同支配测度、无限容量和点态最优条件下推导最优判别器及Jensen–Shannon表达。
  3. 比较极小极大与非饱和生成器损失在判别器很强时的logit梯度。
  4. 设计不混入陈旧梯度的交替更新,并用固定输入、覆盖、梯度和留出判别诊断训练。
  5. 解释模式崩溃与样本质量、覆盖、记忆和领域指标之间的评价边界。
页面阅读位置0% · 仅保存在此浏览器
章节未开始
本册完成进度0/6 章 · 0%
本页目录

两个网络解决的是一场博弈

设真实样本服从 pdatap_{\mathrm{data}},噪声 zpzz\sim p_z,生成器把噪声映射为 x=Gθ(z)x=G_\theta(z),诱导出生成分布 pgp_g。判别器 Dϕ(x)(0,1)D_\phi(x)\in(0,1) 表示在训练采样先验下把 xx 判为真实的概率。原始目标为

minθmaxϕV(Dϕ,Gθ)=ExpdatalogDϕ(x)+Ezpzlog(1Dϕ(Gθ(z))).\min_\theta\max_\phi V(D_\phi,G_\theta) =\mathbb E_{x\sim p_{\mathrm{data}}}\log D_\phi(x) +\mathbb E_{z\sim p_z}\log\bigl(1-D_\phi(G_\theta(z))\bigr).

判别器提高两个对数项,生成器只通过第二项改变假样本。极小和极大不能合并成“两个网络共同最小化一个损失”:同一标量对两组参数的方向相反。实践常把判别器写成最小化二元交叉熵,并把生成器写成另一个最小化损失;必须同时记录符号和冻结的参数,才能确认实现对应哪场博弈。

生成器通常只提供采样过程,不必给出可计算的 pg(x)p_g(x)。这是隐式生成的优势,也意味着不能直接用精确对数似然评价它。判别器学到的是当前真实与当前生成样本之间的分类边界,不是对“真实性”的普遍测量仪器。

判别器最优响应需要明确条件

先固定生成分布。假设 pdatap_{\mathrm{data}}pgp_g 都相对于同一支配测度有密度,并允许判别器在每个 xx 独立选择任意 D(x)(0,1)D(x)\in(0,1)。在一个点上令 a=pdata(x)a=p_{\mathrm{data}}(x)b=pg(x)b=p_g(x),需最大化

alogD+blog(1D).a\log D+b\log(1-D).

a+b>0a+b>0 时,一阶条件为 a/Db/(1D)=0a/D-b/(1-D)=0,得到

D(x)=pdata(x)pdata(x)+pg(x).D^*(x)=\frac{p_{\mathrm{data}}(x)}{p_{\mathrm{data}}(x)+p_g(x)}.

二阶导数为 a/D2b/(1D)2<0-a/D^2-b/(1-D)^2<0,所以是唯一点态最大值;当两密度都为零时该点不影响期望。这个结论依赖等量抽取真实与生成样本。若类别采样先验不同,分子和分母要乘相应先验。有限神经网络、有限数据和未收敛优化只能近似该响应。

例 1:离散两点上的最优判别器与博弈值

样本空间只有 a,ba,b 两点,真实分布为 (0.75,0.25)(0.75,0.25),生成分布为 (0.25,0.75)(0.25,0.75)。逐点代入可得 D(a)=0.75/(0.75+0.25)=0.75D^*(a)=0.75/(0.75+0.25)=0.75D(b)=0.25D^*(b)=0.25

真实项为 0.75log0.75+0.25log0.250.56230.75\log0.75+0.25\log0.25\approx-0.5623;生成项为 0.25log(10.75)+0.75log(10.25)0.56230.25\log(1-0.75)+0.75\log(1-0.25)\approx-0.5623,所以 V(D,G)1.1247V(D^*,G)\approx-1.1247。这比两分布相等时的 log41.3863-\log4\approx-1.3863 更大,符合判别器能利用分布差异的事实。

Jensen–Shannon表达不是任意训练轨迹的描述

令混合分布 m=(pdata+pg)/2m=(p_{\mathrm{data}}+p_g)/2。把 DD^* 代回可得

V(D,G)=pdatalogpdatapdata+pg+pglogpgpdata+pgdx=log4+KL(pdatam)+KL(pgm)=log4+2JS(pdatapg).\begin{aligned} V(D^*,G) &=\int p_{\mathrm{data}}\log\frac{p_{\mathrm{data}}}{p_{\mathrm{data}}+p_g} +p_g\log\frac{p_g}{p_{\mathrm{data}}+p_g}\,dx\\ &=-\log4+\operatorname{KL}(p_{\mathrm{data}}\|m) +\operatorname{KL}(p_g\|m)\\ &=-\log4+2\operatorname{JS}(p_{\mathrm{data}}\|p_g). \end{aligned}

因此在判别器每次都达到无限容量最优响应、密度条件成立时,生成器的理想外层问题以两分布相等为全局最优。有限步交替训练时,DϕD_\phi 通常不是 DD^*,生成器沿当前神经判别器提供的梯度移动,不能说每一步都在精确下降Jensen–Shannon散度。

若两分布支持集几乎不相交,理想判别器可在真实处接近一、生成处接近零,Jensen–Shannon值在局部可能缺少有用变化。现实梯度还取决于判别器函数在生成样本附近怎样延伸,所以“散度有理论最优”并不自动解决优化。

非饱和损失改变梯度而不改变目标平衡点

原始极小极大生成器最小化

LGminimax=Ezlog(1D(G(z))).L_G^{\mathrm{minimax}}=\mathbb E_z\log(1-D(G(z))).

若判别器logit为 ssD=σ(s)D=\sigma(s),单样本损失对 ss 的导数为 D-D。训练早期判别器很容易拒绝假样本,D0D\approx0,于是生成器收到的logit梯度很小。常用非饱和替代为

LGNS=EzlogD(G(z)),L_G^{\mathrm{NS}}=-\mathbb E_z\log D(G(z)),

其对 ss 的导数为 (1D)-(1-D),在 D0D\approx0 时仍接近负一。两者都鼓励生成样本被判为真实,并在 pg=pdatap_g=p_{\mathrm{data}} 的理想平衡处相容,但训练向量场与数值尺度不同,不能把非饱和损失继续等同于前节的精确Jensen–Shannon外层目标。

例 2:判别器很强时两种生成器梯度

某假样本的判别器logit为 s=4s=-4,故 D=σ(4)0.018D=\sigma(-4)\approx0.018。极小极大损失给出 LG/s=D0.018\partial L_G/\partial s=-D\approx-0.018;非饱和损失给出 (1D)0.982-(1-D)\approx-0.982

若该样本满足 s/θ=2\partial s/\partial\theta=2,学习率为 0.10.1,则两种参数梯度约为 0.036-0.0361.964-1.964,梯度下降步长分别让 θ\theta 增加 0.00360.00360.19640.1964。例子只隔离饱和效应;实际网络还会乘生成器和判别器中间层Jacobian,过大的梯度同样需要监测。

交替优化必须隔离两套参数

一次判别器步骤从真实批量和新生成批量估计 LDL_D,假样本在此步骤从生成器计算图断开,只更新 ϕ\phi。一次生成器步骤重新采样噪声或明确复用样本,冻结判别器参数但保留从判别器输入到生成器输出的梯度,只更新 θ\theta。判别器步数、生成器步数、两个优化器状态和学习率都是博弈算法的一部分。

不能在生成器步骤把判别器输出也断开,否则生成器没有梯度;也不能让判别器优化器在生成器步骤偷偷更新,否则目标被改写。批量真实与假样本比例会改变隐含类别先验。批量归一化等有运行状态的层还要明确处于哪种模式,仅把参数梯度关闭不一定冻结运行统计。

例 3:一轮标量交替更新

取真实样本 xr=1x_r=1、生成样本 xf=θ=1x_f=\theta=-1,判别器 Dw(x)=σ(wx)D_w(x)=\sigma(wx),初值 w=0w=0。判别器最小化平均二元交叉熵。真实项对 ww 的梯度为 (1D(1))1/2=0.25-(1-D(1))\cdot1/2=-0.25;假样本项为 D(1)(1)/2=0.25D(-1)\cdot(-1)/2=-0.25,总梯度为 0.5-0.5。学习率 0.10.1w=0.05w=0.05

随后冻结 ww,用非饱和损失更新生成器。此时 Dw(θ)=σ(0.05)0.4875D_w(\theta)=\sigma(-0.05)\approx0.4875LG/θ=(1D)w0.0256\partial L_G/\partial\theta=-(1-D)w\approx-0.0256。同样学习率下,θ\theta1-1 变为约 0.9974-0.9974,朝真实样本方向移动。若在第一步未断开假样本,旧的生成器梯度可能被意外累积;若第二步断开判别器输入,最后一项会变成零。

模式崩溃是覆盖失败而非单纯画面重复

模式崩溃指多个不同噪声被映射到少数输出区域,使个别样本看起来清晰,但生成分布漏掉真实分布的重要模式。其原因可能是当前判别边界给某一模式提供一致的有利梯度、生成器更新过快、判别器忘记旧失败区域,或有限批量没有暴露覆盖缺口。仅观察一小块样本图容易漏掉低频模式。

诊断应在可解释数据上统计类别或聚类覆盖、每个模式频率和模式内多样性;在连续数据上可比较特征空间精确度与召回式指标,并检查不同噪声之间的输出距离。条件生成还要分别核对条件正确性与条件内多样性。固定噪声面板适合追踪同一潜变量的时间变化,但不能代替随机大样本的覆盖统计。

例 4:用频数识别覆盖缺口

真实数据有四个等概率模式,抽取八百个生成样本后,分类器计数为 (392,388,12,8)(392,388,12,8)。经验频率约为 (0.49,0.485,0.015,0.01)(0.49,0.485,0.015,0.01),而真实目标为每类 0.250.25。前两类样本即使很清晰,也不能弥补后两类几乎缺失。

先核对分类器在真实留出集上的混淆矩阵,避免把分类错误当覆盖失败;再按多个随机种子重复计数,并检查每类内部是否只是训练样本近邻。若只报告八张恰好来自前两类的样本,无法发现频率偏差。

稳定诊断不能只看谁的损失下降

普通最小化希望目标持续下降,而GAN中一方变强会改变另一方看到的目标,损失可振荡,判别器准确率长期五成也可能来自两分布接近、两方都很弱或批量构造错误。应同时记录真实和假样本logit分布、两方梯度范数、参数更新比、判别器在训练与留出真实样本上的差距、固定噪声轨迹及覆盖统计。

判别器准确率迅速到一且生成器梯度接近零,提示两方失衡或支持分离;准确率五成但所有logit几乎为零,可能是判别器没有学习;生成样本突然失去多样性而判别损失无显著异常,说明损失标量不足以诊断模式。检查必须绑定同一预处理和冻结的评价网络,不能让指标定义随训练改变。

数值实现还要使用稳定的logit二元交叉熵,避免先取接近零的概率再求对数。出现非有限值时应保留触发批量、两个优化器状态和随机种子,而不是只从最新检查点继续。

还应把训练时间轴纳入诊断:在固定间隔保存同一组指标和样本,而不是事后挑选最美观的轮次。若选择检查点所用数据又参与最终报告,评价会受到重复选择影响,必须保留独立测试集。

评价要拆开质量、覆盖、记忆和用途

特征分布距离常把样本送入固定特征提取器,再比较均值和协方差。它能汇总某些质量与覆盖变化,却依赖特征域、样本量和协方差估计;把非高斯特征压成前两阶矩也会遗漏结构。指标较低不证明生成分布等于真实分布,更不证明单个样本正确、安全或具有许可。

例 5:相同均值方差仍可是不同分布

在一维恒等特征中,真实经验分布在 1,+1-1,+1 各占一半,均值为零、方差为一。生成经验分布在 2,0,0,+2-\sqrt2,0,0,+\sqrt2 各占四分之一,均值同样为零,方差为 (2+0+0+2)/4=1(2+0+0+2)/4=1

只使用高斯均值和协方差的距离会得到零,但两个分布的支持点和零点概率明显不同。故矩指标必须配合覆盖、近邻记忆检查和领域任务评价。样本量有限时还应为同一指标报告重复抽样波动。

最近邻检查可发现生成样本是否贴近训练样本,但特征和阈值选择会影响结论;人工评价能检查领域语义,却要控制盲法、样本抽取和评价者差异;下游任务分数只回答指定用途。GAN没有精确似然时尤其需要多项证据,任何单一排行榜数字都不能完整代表分布质量。

练习

练习 1:最优判别器
推导固定生成分布时的判别器最优响应。
查看提示
固定生成器后,对 alogD+blog(1D)a \log D+b \log(1-D) 求一阶导并检查二阶导。
查看解答
当a+b大于零时,一阶条件给出D=a/(a+b)D=a/(a+b),二阶导严格为负;若真实与生成采样先验不同,应先用先验分别乘a和b。
练习 2:散度条件

说明原始博弈值何时能写成 Jensen–Shannon 表达。

查看提示
令m为两分布平均,把分母pdata+pgp_{data}+p_g写成2m。
查看解答
代入 DD^* 后两项分别化为 KL(pdatam)log2\operatorname{KL}(p_{\mathrm{data}}\Vert m)-\log 2KL(pgm)log2\operatorname{KL}(p_g\Vert m)-\log 2,总和为 log4+2JS-\log 4+2\operatorname{JS};该式要求密度、无限容量和判别器点态最优,不能描述任意有限训练步。
练习 3:生成器饱和
比较两种生成器损失在强判别器下的梯度。
查看提示
先对判别器logit求导,再考察D趋近零。
查看解答
极小极大生成器损失对logit导数为-D,D接近零时梯度很小;非饱和损失导数为-(1-D),此时接近负一,两者平衡点相容但更新场不同。
练习 4:交替更新边界
写出一轮不会串扰参数的交替优化流程。
查看提示
逐步列出哪些参数冻结、哪些计算图保留。
查看解答
判别器步断开G生成的假样本并只更新判别器;生成器步冻结判别器参数但保留对其输入的梯度并只更新生成器,同时管理运行统计和分别清零优化器梯度。
练习 5:模式覆盖
设计四模式数据上的崩溃诊断。
查看提示
样本清晰度之外,统计模式频率和模式内差异。
查看解答
用经真实留出集核对的分类或聚类器统计各模式频率,跨种子报告缺失率,并在每个模式内比较多样性和训练集近邻;固定小面板不能替代大样本覆盖。
练习 6:评价结论
解释为什么一个较低的特征矩距离不能证明生成正确。
查看提示
分别考虑前两阶矩、特征域、有限样本和记忆。
查看解答
相同特征均值协方差的不同分布可得到相同矩距离;还需报告覆盖、精确度式指标、近邻记忆、领域任务与抽样波动,且结论只适用于所用特征和数据域。

概念关系

资源

论文 · 2014

Generative Adversarial Nets

Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio

用于核对原始对抗目标、最优判别器分析和实验结论范围。

打开官方来源
书籍 · 2016

Deep Learning

Ian Goodfellow, Yoshua Bengio, Aaron Courville

适合作为反向传播和优化章节的完整参考。

打开官方来源