一、背景

基本结构:
生成对抗网络GAN基础系列(一)
2014年GAN的概念首次提出,上图为GAN的基础模型,z为随机噪声经过生成器G,输出生成数据G(z),真实数据和生成数据分别输入判别器D,判别器需要分辨他们是real还是fake,对于真实数据,判别器给它一个高分,对于生成的fake数据,则是低分。
类似于其他的神经网络利用损失函数进行优化网络,gan同样具有目标函数:生成对抗网络GAN基础系列(一)其核心思想是最大化真实数据输入时函数的值,同时降低fake数据输入时最小化函数值。

二、结构

生产抵抗网络主要有以下几种结构:
1.generative adversial nets
2.conditional gan
3.deep convlutional gan
4.wassertein gan with weighted clipping/gradient penalty

三、训练算法

1随机初始化生成器和判别器
2交替训练判别器D和生成器G,直到收敛
(1)固定生成器G,训练判别器D区分真实图像与合成图像,给真实图像高分,生成图像低分。
(2)固定判别器D,训练生成器G欺骗判别器D,更新生成器的参数,使其合成的图片被生成器D赋予高分。

实现GAN:
准备工作:
定义网络结构:判别器和生成器的网络结构
定义目标函数:根据预测标签和真实标签,计算损失
定义优化器:优化器,自动计算梯度并优化网络权重
数据加载:加载数据集

训练直到收敛
加载数据:
提取一个batch的真实数据
生成一个batch的虚假数据

计算损失并优化模型:
计算判别器损失,并优化判别器
计算生成器损失,并优化生成器

四、指标

KL散度:衡量两个概率分布的匹配程度的目标
生成对抗网络GAN基础系列(一)特点:P1=P2时,KL散度为零,且KL散度具有非负性。但是对于数据分布P(x)和Q(x),KL(P(x)||Q(x))和KL(Q(x)||P(x))并不相等,因此KL散度不对称。
因此引入了JS散度:生成对抗网络GAN基础系列(一)JS散度具有非负性以及对称性。
GAN的生成模型就是在学习找到数据的分布。