machine-learning
  • Welcome
  • 动手学深度学习
    • 1. 前言
    • 2. 预备知识
    • 3. 线性神经网络
    • 4. 多层感知机
    • 5. 深度学习计算
    • 6. 卷积神经网络
    • 7. 现代卷积神经网络
    • 8. 循环神经网络
    • 9. 现代循环神经网络
    • 10. 注意力机制
    • 11. 优化算法
    • 12. 计算性能
    • 13. 计算机视觉
    • 14. 自然语言处理:预训练
    • 15. 自然语言处理:应用
    • 16. 附录:深度学习工具
  • 百面机器学习
    • 1. 特征工程
    • 2. 模型评估
    • 3. 经典算法
    • 4. 降维
    • 5. 非监督学习
    • 6. 概率图模型
    • 7. 优化算法
    • 8. 采样
    • 9. 前向神经网络
    • 10. 循环神经网络
    • 11. 强化学习
    • 12. 集成学习
    • 13. 生成式对抗网络
    • 14. 人工智能的热门应用
  • 百面深度学习
    • 1. 卷积神经网络 CNN
    • 2. 循环神经网络 RNN
    • 3. 图神经网络 GNN
    • 4. 生成模型
    • 5. 生成式对抗网络 GAN
    • 6. 强化学习 RL
    • 7. 元学习
    • 8. 自动化机器学习 AutoML
    • 9. 计算机视觉 CV
    • 10. 自然语言处理 NLP
    • 11. 推荐系统
    • 12. 计算广告
    • 13. 视频处理
    • 14. 计算机听觉
    • 15. 自动驾驶
  • 统计学习方法
  • 推荐系统实践
    • 1. 推荐系统
    • 2. 特征工程
    • 3. Embedding
    • 4. 精排
    • 5. 召回
    • 6. 粗排/重排
    • 7. 多任务/多场景
    • 8. 冷启动
    • 9. 评估调试
    • 10. 自我修养
  • 深度学习推荐系统
    • 1. 推荐系统
    • 2. 进化之路
    • 3. 深度学习的应用
    • 4. Embedding
    • 5. 多角度审视
    • 6. 工程实现
    • 7. 评估方法
    • 8. 前沿实践
    • 9. 知识框架
  • 强化学习的数学原理
    • 1. 基础概念
    • 2. 贝尔曼公式
    • 3. 贝尔曼最优公式
    • 4. 值迭代与策略迭代
    • 5. 蒙特卡洛方法
    • 6. 随机近似与随机梯度下降
    • 7. 时序差分方法
    • 8. 值函数近似
    • 9. 策略梯度方法
    • 10. Actor-Critic方法
Powered by GitBook
On this page
  • 13.1 初始 GANs 的秘密 ****
  • 1. GANs 的基本思想 *
  • 2. 值函数 ***
  • 3. 如何避免大量概率推断计算 **
  • 4. 实际训练问题 ****
  • 13.2 WGAN:抓住低维的幽灵 *****
  • 13.3 DCGAN:当 GANs 遇上卷积 ***
  • 13.4 ALI:包揽推断业务 ***
  • 13.5 IRGAN:生成离散样本 *****
  • 13.6 SeqGAN:生成文本序列 *****
  1. 百面机器学习

13. 生成式对抗网络

Previous12. 集成学习Next14. 人工智能的热门应用

Last updated 3 years ago

13.1 初始 GANs 的秘密 ****

1. GANs 的基本思想 *

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

  • 对抗策略:交替优化

2. 值函数 ***

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

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

    • L(D)=−12(Ex∼pdata(x)log⁡D(x)+Ex∼pg(x)log⁡(1−D(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)))L(D)=−21​(Ex∼pdata​(x)​logD(x)+Ex∼pg​(x)​log(1−D(x)))

  • 值函数 min⁡Gmax⁡DV(G,D)=Ex∼pdata(x)log⁡D(x)+Ex∼pg(x)log⁡(1−D(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))minG​maxD​V(G,D)=Ex∼pdata​(x)​logD(x)+Ex∼pg​(x)​log(1−D(x))

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

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

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

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

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

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

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

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

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

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

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

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

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

  • WGAN 使用 Wasserstein 距离的对偶式

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

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

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

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

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

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

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

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

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

  • 优化目标

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

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

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

JS(Pr∣∣Pg)=12(KL(Pr∣∣Pr+Pg2)+KL(Pg∣∣Pr+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}))JS(Pr​∣∣Pg​)=21​(KL(Pr​∣∣2Pr​+Pg​​)+KL(Pg​∣∣2Pr​+Pg​​)),是两个 KL 距离的平均

Wasserstein 距离,也称推土机距离 W(Pr∣∣Pg)=inf⁡γ∼∏(Pr,Pg)E(x,y)∼γ∣∣x−y∣∣W(\mathbb P_r||\mathbb P_g)=\inf_{\gamma\sim\prod(\mathbb P_r,\mathbb P_g)}\mathbb E_{(x,y)\sim\gamma}||x-y||W(Pr​∣∣Pg​)=infγ∼∏(Pr​,Pg​)​E(x,y)∼γ​∣∣x−y∣∣

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

Ex∼pdata(x)f(x)+Ex∼pg(x)f(x)\mathbb E_{x\sim p_{data}(x)}f(x)+\mathbb E_{x\sim p_g(x)}f(x)Ex∼pdata​(x)​f(x)+Ex∼pg​(x)​f(x),判别器变为 评分器(Critic)

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

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

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

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

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

生成器优化目标 J(θ)=∑y1∈YGθ(y1∣s0)Qθ(s0,y1)J(\theta)=\sum_{y_1\in \mathcal Y}G_\theta(y_1|s_0)Q^{\theta}(s_0,y_1)J(θ)=∑y1​∈Y​Gθ​(y1​∣s0​)Qθ(s0​,y1​)