13. 生成式对抗网络

13.1 初始 GANs 的秘密 ****

1. GANs 的基本思想 *

  • 生成器(Generator)、判别器(Discriminator)

  • 对抗策略:交替优化

2. 值函数 ***

双人 MiniMax 游戏,理想情况达到 纳什均衡点

  • D 二分类,损失函数 Negative Log-Likelihook,也称 Categorical Cross-entropy Loss

    • L(D)=12(Expdata(x)logD(x)+Expg(x)log(1D(x)))\mathcal L(D)=-\frac12 (\mathbb E_{x\sim p_{data}(x)}\log D(x)+\mathbb E_{x\sim p_g(x)}\log(1-D(x)))

  • 值函数 minGmaxDV(G,D)=Expdata(x)logD(x)+Expg(x)log(1D(x))\min_G \max_D V(G,D)=\mathbb E_{x\sim p_{data}(x)}\log D(x)+\mathbb E_{x\sim p_g(x)}\log(1-D(x))

    • 优化 G,是在 最小化 生成样本分布 与 真实样本分布 的 JS 距离

    • 优化 G 的过程是让 G 远离前一步的 G',同时接近分布 (pdata+pg)/2(p_{data}+p_{g'})/2

    • 达到均衡点时,pg=pdatap_{g'}=p_{data}

3. 如何避免大量概率推断计算 **

  • GANs 刻画概率生成模型时,并不对概率密度函数 p(X)p(X) 直接建模,而是通过制造样本 xx,间接体现

  • 如果随机变量 Z 和 X 之间满足映射 X=f(Z)X=f(Z)

    • 则它们的概率分布 pX(X)p_X(X)pZ(Z)p_Z(Z) 也存在某种映射关系

    • 已知 Z 的分布,对 ff 建模,就唯一确定了 X 的分布

4. 实际训练问题 ****

  • 优化饱和:早期 G 很差,D 容易识别,使得回传给 G 的梯度小

    • log(1D(G(z;θg)))\log(1-D(G(z;\theta_g))) 变为 log(D(G(z;θg)))\log(D(G(z;\theta_g))),后者最大==前者最小

13.2 WGAN:抓住低维的幽灵 *****

  • 生成器不稳定,模式坍缩,高维空间大部分多余,真实数据蜷缩在低维子空间的流形上

    • JS(PrPg)=12(KL(PrPr+Pg2)+KL(PgPr+Pg2))JS(\mathbb P_r||\mathbb P_g)=\frac12(KL(\mathbb P_r||\frac{\mathbb P_r+\mathbb P_g}{2})+KL(\mathbb P_g||\frac{\mathbb P_r+\mathbb P_g}{2})),是两个 KL 距离的平均

  • Wasserstein 距离,也称推土机距离 W(PrPg)=infγ(Pr,Pg)E(x,y)γxyW(\mathbb P_r||\mathbb P_g)=\inf_{\gamma\sim\prod(\mathbb P_r,\mathbb P_g)}\mathbb E_{(x,y)\sim\gamma}||x-y||

    • G 分布随参数 θ\theta 变化而连续变化时,Wasserstein 距离也随 θ\theta 变化而连续变化

    • 有效锁定低维子空间中的真实数据分布

  • WGAN 使用 Wasserstein 距离的对偶式

    • Expdata(x)f(x)+Expg(x)f(x)\mathbb E_{x\sim p_{data}(x)}f(x)+\mathbb E_{x\sim p_g(x)}f(x),判别器变为 评分器(Critic)

13.3 DCGAN:当 GANs 遇上卷积 ***

  • CNN 丢失大量信息,难以输出高分辨率图片

  • 生成器 G

    • 两点原则

    • 保证信息在逐层计算中逐渐增多

    • 不损失位置信息,并不断产生更细节的位置信息

    • 具体做法

      • 去掉会丢掉位置信息的结构,如 pool

      • 使用分数步进卷积层(Fractional-Strided Convolutions),补0后卷积

      • 去掉最后的全连接层

      • Batchnorm 和 ReLU,只在输出层用 tanh

  • 判别器 D

    • 图片分类任务,但注重 细节差异,而不是 宏观语义差异

    • 抛弃 pool,替换为 step>1 的卷积层

    • 不接全连接层,内部使用 LReLU,Batchnorm 层

13.4 ALI:包揽推断业务 ***

Adversarially Learned Inference

  • 生成网络 和 推断网络 的融合

    • 模拟样本真实分布,模拟样本的隐空间表示真实分布的隐空间表示

    • 生成网络 Gx(z)G_x(z):将 隐空间 的 随机样本 映射到 数据空间

    • 推断网络 Gz(x)G_z(x):将 数据空间 的 训练样本 映射到 隐空间

    • 判别网络 D(x,z)D(x,z):分辨 联合样本 是来自 生成网络 还是 推断网络

13.5 IRGAN:生成离散样本 *****

从文档集合中,选出迷惑性强的 负样本

  • 用 GAN 产生负样本(查询词为 q,文档为 d)

    • 生成式检索模型 pθ(dq)p_\theta(d|q)

    • 判别式检索模型 fθ(q,d)f_\theta(q,d)

13.6 SeqGAN:生成文本序列 *****

  • 生成器 G,生成文字组成的序列,表示句子

    • RNN(LSTM、GRU、Attention),每个条件概率选一个词,依次进行

  • 优化目标

    • G:生成文字序列,高度地模仿真实句子

    • D:区分 真实句子 vs. 生成句子

    • 生成器优化目标 J(θ)=y1YGθ(y1s0)Qθ(s0,y1)J(\theta)=\sum_{y_1\in \mathcal Y}G_\theta(y_1|s_0)Q^{\theta}(s_0,y_1)

Last updated