GAN初探

近期看了李宏毅老师的GAN讲解,收获颇多,记录一些基本概念。

GAN(Generation Adversarial NetWorks)

  • 概念

    生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。原始 GAN 理论中,并不要求 G 和 D 都是神经网络,只需要是能拟合相应生成和判别的函数即可。但实用中一般均使用深度神经网络作为 G 和 D 。一个优秀的GAN应用需要有良好的训练方法,否则可能由于神经网络模型的自由性而导致输出不理想。

  • 训练思想

    一般会将生成网模型和判别模型网络组成一个大的神经网络(NN),在一次训练中会固定一个模型,去调节另一个模型。两个网络交替训练。

    • 对于Generative Model,我们期望其输出可以得分尽量的高,即尽可能接近positive image
    • 对于Discrimnative Model,我们期望他能给position image尽可能高的分数,给generative image尽可能低的分数。
  • 应用
    • 图像生成(如二次元头像生成)
    • 数据增强Speech Enhancement,去噪音之类的

CGAN(Conditional Generative Adversarial NetWorks)

  • 概念

    条件生成式对抗网络(CGAN)是对原始GAN的一个扩展,生成器和判别器都增加额外信息 y为条件, y 可以使任意信息,例如类别信息,或者其他模态的数据。其核心在于将属性信息y融入生成器G和判别器D中,属性y可以是任何标签信息,例如图像的类别、人脸图像的面部表情等。

    • 生成模型中,先验输入噪声 p(z) 和条件信息 y 联合组成了联合隐层表征。
    • 判别模型中,也需要有两个输入,判断额外信息 yimage是否匹配;
      • 高分:描述与图片相符,图片为positive image
      • 低分:
        1. 图片是generative image,描述与图片相符
        2. 图片是generative image,描述与图片不符
        3. 虽然图片是positive image,但描述与图片不符
  • 扩展

    Stack GAN,一种由小图,生成大图的GAN

    Patch GAN,一个针对生成大图的Discriminative Model,并不以整张image作为input,而是每次检查image里的一小块

  • 应用
    • Image to image
    • Speech Enhancement
    • Video Generation

前面的课程内容涉及的都是监督学习(Supervised learning),但有些训练集没有label,根据其需求也不需要进行监督学习(如:画作风格的转变)

Cycle GAN

简而言之,该模型通过从域DA获取输入图像,该输入图像被传递到第一个生成器GeneratorA→B,其任务是将来自域DA的给定图像转换到目标域DB中的图像。然后这个新生成的图像被传递到另一个生成器GeneratorB→A,其任务是在原始域DA转换回图像CyclicA,这里可与自动编码器作对比。

参考资料

StarGAN

上述这些都是论文中提到的经过修改的GAN,这里就不再列出