生成式对抗网络


简介

示例

  • 图像着色
  • 图像超像素
  • 背景模糊
  • 人脸生成
  • 人脸定制
  • 文本生成图片
  • 字体变换
    *风格变换
  • 图像修复
    ……

基础

生成模型和GAN


生成模型不严谨的定义:一个能够生成我们想要的数据的模型(图模型、函数、神经网络)
生成式对抗网络(GAN)的目的是训练这样一个生成模型,生成我们想要的数据。
生成式对抗网络中生成一词的由来。

GAN

框架

工作原理

随机噪声z:从一个先验分布(人为定义,一般是均匀分布或者正态分布)中随机采样的向量。
就像下面这样的分布:

真实样本x:从数据库中采样的样本;合成样本G(z):生成模型G输出的样本。
判别器(Discrimination):区分真实(real)样本和虚假(fake)样本。对于真实样本,尽可能给出高的评分1;对于虚假数据,尽可能给出低的评分0.

生成器(Generator):欺骗判别器 。生成虚假数据,使得判别器D能够尽可能给出高的评分1 .

目标函数

训练算法

1.随机初始化生成器和判别器
2.交替训练判别器D和生成器G,直到收敛
(1)步骤1:固定生成器G,训练判别器D区分真实图像与合成图像。

生成器无需优化可以mask掉
**简单:用监督训练的方式学习一个两类别的分类器! **
步骤2:固定判别器D,训练生成器G欺骗判别器D。
更新生成器参数,使其合成的图片被生成器D赋予高分

训练策略

KL散度和JS散度

数据分布

极大似然估计


极大似然估计 等价于 最小化生成数据分布和真实分布的KL散度
高斯分布去拟合数据分布,结果并不满意。需要一个更通用的模型!

cGAN条件生成式对抗网络

为什么要控制生成数据的类型?
很多有意义的任务都需要学习条件生成模型!

很难刚好生成对应类型的数据,为什么呢?
条件是狐狸,但生成狐狸或狗时都能欺骗成功。

GAN V.S cGAN

DCGAN

原始GAN,使用全连接网络作为判别器和生成器

  • 不利于建模图像信息
  • 参数量大,难以优化
    DCGAN,使用卷积神经网络作为判别器和生成器

判别器:滑动卷积

生成器:滑动反卷积

批归一化

激活函数



免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM