第十一讲 · 生成对抗网络 GAN

Views: --

前面的分类、检测和分割都在理解已有图像;GAN 把问题转了过来:机器能否学会真实图像的分布,再生成一张从未存在过、却像真的一样的图?

一、判别模型与生成模型

判别模型直接学习从输入到标签的关系,例如 p(yx)p(y\mid x) 或分类边界;生成模型试图描述数据本身怎样产生,例如 p(x)p(x) 或联合分布 p(x,y)p(x,y)

类型核心问题例子
判别模型给定样本,它属于哪一类Logistic、SVM、分类 CNN
生成模型真实样本整体服从什么分布VAE、GAN、Diffusion

生成比分类更难,因为输出不再是少数几个标签,而是一张包含大量相关像素的完整图像。

二、生成器与判别器的二元博弈

GAN 包含两个神经网络:

  • 生成器 GG:把随机噪声 zpzz\sim p_z 映射为假样本 G(z)G(z)
  • 判别器 DD:输入一个样本,输出它来自真实数据的概率。

可以把 GG 看作造假者,把 DD 看作鉴别者。DD 越擅长找出假样本,GG 就越必须生成更逼真的样本;GG 越逼真,DD 又越必须学到更细微的真假差别。

三、极小极大目标函数

经典 GAN 的价值函数是

minGmaxDV(D,G)=Expdata[logD(x)]+Ezpz[log(1D(G(z)))].\min_G\max_D V(D,G) =\mathbb{E}_{x\sim p_{data}}[\log D(x)] +\mathbb{E}_{z\sim p_z}[\log(1-D(G(z)))].

从判别器视角看:

  • 对真样本,希望 D(x)1D(x)\to1
  • 对假样本,希望 D(G(z))0D(G(z))\to0
  • 因此 DD 要最大化整个目标。

从生成器视角看,它只能改变 G(z)G(z),希望假样本最终让 D(G(z))1D(G(z))\to1,因此与判别器方向相反。

四、理想均衡是什么

固定生成器时,最优判别器为

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

若生成分布已经等于真实分布,即 pg=pdatap_g=p_{data},则

D(x)=12.D^*(x)=\frac12.

这不是说判别器“坏掉了”,而是因为真假分布完全相同,它再也没有任何依据可以区分。

五、为什么要交替训练

实际训练无法一次求出整个博弈的均衡,只能轮流更新:

  1. 固定 GG,采样真数据和假数据,更新 DD,提高真假区分能力;
  2. 固定 DD,重新采样噪声,更新 GG,让假样本更容易被判真;
  3. 重复这两个步骤。

判别器常训练 kk 次后再训练一次生成器,但两边不能失衡:判别器太弱,生成器收不到有用反馈;判别器过强,生成器又可能得到几乎为零的梯度。

生成分布在判别器反馈下逐渐靠近真实分布

六、生成器为什么常换一个等价目标

原始生成器最小化

Ez[log(1D(G(z)))].\mathbb{E}_z[\log(1-D(G(z)))].

训练早期 D(G(z))D(G(z)) 往往非常小,此时上式可能饱和,生成器梯度太弱。实践中常改为最大化

Ez[logD(G(z))].\mathbb{E}_z[\log D(G(z))].

两者理想最优点相同,但后者在训练早期能够提供更强梯度,这称为 non-saturating loss。

七、GAN 为什么不稳定

GAN 并不是单个模型最小化固定损失,而是两个不断变化的模型相互追逐,因此容易出现:

  • 梯度消失:判别器过强,生成器得不到有效更新;
  • 模式崩溃:生成器只会产生少数几类看似真实的样本;
  • 训练振荡:双方围绕均衡旋转,难以真正收敛;
  • 对超参数和更新比例敏感。

从分布角度看,当真实分布和生成分布支撑集几乎不重合时,原始 GAN 使用的 JS 散度会饱和,无法告诉生成器“应该朝哪个方向移动”。WGAN 等后续方法尝试用更平滑的距离改善这个问题。

八、怎样评价生成模型

课件目录列出了 GAN 变体和评价指标,但当前正式页面没有继续展开对应内容。理解评价时至少要区分两个维度:

  • 质量:单张生成图是否清晰、逼真;
  • 多样性:模型是否覆盖了真实数据的各种模式。

只看清晰度会纵容模式崩溃,只看多样性又可能包含大量低质量样本。生成模型评价必须兼顾二者。

本讲速记

  • GAN 是生成模型,包含生成器 GG 和判别器 DD
  • DD 最大化真判真、假判假;GG 让假样本被判真,形成 minimax 博弈。
  • 理想收敛时 pg=pdatap_g=p_{data},最优判别器对任何样本都输出 1/21/2
  • 训练时先更新判别器,再更新生成器,双方能力需要保持平衡。
  • non-saturating 目标与原目标最优点相同,但早期梯度更强。
  • GAN 的典型问题是训练不稳定和模式崩溃。

评论