Generative Adversarial Network 生成式对抗网络 (GAN)

introduction

输出不是具体的数,而是一个分布,这个network就是generator

Untitled

why distribution

video prediction

Untitled

常规方法如上,会出现同时左右转的情况

Untitled

但是GAN可以解决

  • 同样的输入需要不同的输出,需要创造力。比如画画,聊天机器人

GAN

unconditional generation

去掉输入x

Untitled

从z中sample一个低维度的vector,对应输出要是一个高维度的vector

discriminator

Untitled

输入图片,输出一个数值表示图片接近真实的程度

Untitled

this is where the term adversarial comes from

algorithm

  1. 固定G,更新D

    1. D学会分辨图像,可以是分类问题,可以是回归问题

    Untitled

  2. 固定D,更新G

    1. 把两者合并成一个大模型,其中的一个hidden layer是输出图像的数据

    Untitled

  3. 循环上述过程

theroy behind GAN

让输出的分布和数据集已知分布越接近越好

Untitled

但是这个divergence并不知道怎么计算,但我们知道如何sample,之后可以通过D来计算两个分布的差异

Untitled

Untitled

同时输入预测数据和已知数据,并进行分类,V就是交叉熵取符号,交叉熵取最小效果最好,V取最大效果最好

后经推导发现V和 JS divergence有关,就转而计算V了

tips for train

WGAN
  • JS divergence的缺陷

    1. 预测和真实重叠很小
      1. 多为高维上的低维,比如平面中只是两条线
      2. sample时取的值不够多,不够密
    2. 当没重叠时JS结果始终为log2,并不能反应两者越来越近或越来越远的变化
    3. 如果不重叠,binary classfier的结果永远是100%,loss没有任何意义
  • wasserstein distancce

    推土机把土从起点搬运到目的地

    move plan有很多,有smallest average distance的为WzD

    Untitled

    • 计算WD

      • D必须要平滑,式子中的x为神经网络的预测值,之前的y

      Untitled

      • 不平滑会这样,在生成数据处无限小,真实数据处无限大

      Untitled

    • 保证D平滑的方法

      • original WGAN

      Untitled

      • improved WGAN

      Untitled

      • spectral normalization(效果好)
        • keep gradient norm smaller than 1 everywhere

GAN for sequence generation

当decoder有很小的变化时,因为输出是概率最大的值,所以没有影响discriminator,进而无法update

Untitled

所以使用reinforcement learning (RL)硬train,因为两者都很难训练,所以合起来困难

evaluation

quality of image

跑一个图像分类器,判断是图像的几率

Untitled

diversity of image
  • mode collapse

    Untitled

    生成的图像就是那几张

    • 尚且没有完美的解决办法
  • mode dropping

    Untitled

    真实的有左右两部分,但是模型只有左边半部分,而且左边没有mode collapse的情况

    • mode dropping更难发现,也没有很好的解决办法
  • 判断多样性

    Untitled

    分类器判断大部分是class2,多样性不好

    Untitled

    各个类别都有,多样性可以

evaluate

quality and diversity的评判标准有些矛盾,所以用IS(inception score)来进行判断

IS越大越好

  • FID也是一种方法,越小越好

Untitled

取在进入分类器之前的向量,这样可以获得更多细节(后续被分到同一个类中可能会有肤色的差异,但都得不到考虑),计算与真实数据的FID以评估

Untitled

conditional generation

  • introduction and application

    Untitled

    应用:文本转图片

    Untitled

    • 此时discriminator需要考虑输入,提供的数据是pairs并且各种类型都包括

    Untitled

    其他应用

    1. image translation or pix2pix

      输入图片转化为其他图片:白天变夜晚,设计图变3d

      Untitled

      • GAN会凭空创造出不想要的东西,比如GAN图的左上角
      • supervised模糊原因:同一个输入对应不同的输出,就会模糊以满足
    2. sound to image

    Untitled

    1. talking head generation

    Untitled

learning from unpaired data

输入没有关系

Untitled

eg.image style tranfer

Untitled

unsupervised conditional generation

设计思路

Untitled

  • cycle GAN

    Untitled

    Dy判断像不像二次元,Dx判断像不像真人 ,在转换为二次元后还要转换为真人,看二次转换后的图片和输入是否相似

    • star GAN可以在多种风格间转换

    • 类似的还有text style transfer

      Untitled

    • other application

    Untitled

    Untitled

    image-20240803225013475