第六周:生成式对抗网络
一、视频学习
生成式对抗网络GAN-基础
1.背景
作者Lan Goodfellow于2014年NIPS首次提出了GAN的概念。
2.GAN案例
-
图像着色 用途:旧图像修复
-
图像超像素 用途:手机相机
-
背景模糊
-
人脸生成 用途:娱乐软件
-
帧预测、文本生成图片
-
字体变换、风格变换
3.生成模型和GAN
假设我们的生成模型是g(z),其中z是一个随机噪声,而g将这个随机噪声转化为数据类型x,仍拿图片问题举例,这里g的输出就是一张图片。D是一个判别模型,对任何输入x,D(x)的输出是0-1范围内的一个实数,用来判断这个图片是一个真实图片的概率是多大。
核心思想:判别器区分真假样本;生成器欺骗判别器。生成器和判别器之间存在对抗的关系,这也是生成式对抗网络中对抗一词的由来。训练算法:
-
随机初始化生成器和判别器;
-
交替训练判别器D和生成器G,直到收敛;
- 步骤1:固定生成器G,训练判别器D区分真实图像与合成图像。赋予真实图像高分,赋予合成图像低分。 只需要优化判别器, 这样以来,就可以用监督训练的方式学习一个二分类的分类器。
- 步骤2:固定判别器D,训练生成器G欺骗判别器D。更新生成器的参数,使其合成的图片被生成器D赋予高分。
训练策略:
4.cGAN(条件生成式对抗网络)
5.DcGAN(深度卷积生成式对抗网络)
网络结构(判别器)使用滑动卷积(strided convolution),除了输入层,全部使用批归一化
,使用Leaky ReLu激活函数,除了最后一层,不使用全连接层。
滑动卷积、滑动反卷积:
使得判别器和生成器可以学习自己的上采样和下采样策略
批归一化:
训练更稳定
Tanh激活函数:
更快的学习到真实数据的颜色空间
训练策略
- 数据预处理:所有输入数据归一化到[-1,1]
- 激活函数:Leaky ReLu的斜率设置为0.2
- 初始化:使用均值为0,标准差为0.02的正态分布初始化网络参数
- 优化器:使用Adam优化器,学习率为0.0002,betal=0.5,beta2=0.999