第六周:生成式对抗网络

一、视频学习

生成式对抗网络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

二、代码练习

posted @ 2020-09-12 21:10  Dingding_lucky  阅读(172)  评论(0编辑  收藏  举报