简介
示例
- 图像着色
- 图像超像素
- 背景模糊
- 人脸生成
- 人脸定制
- 文本生成图片
- 字体变换
*风格变换 - 图像修复
……
基础
生成模型和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,使用卷积神经网络作为判别器和生成器
判别器:滑动卷积
生成器:滑动反卷积
批归一化
激活函数