GAN
GAN主要包括判别器(Discriminator)和生成器(Generator)。
判别器用来区分真实样本和虚假样本。输入图片,输出图片是真实图片的概率。接收生成器的虚假样本G(z)和真实样本x。
生成器通过随机噪声z生成虚假样本,欺骗判别器,使判别器D尽可能给出高的评分1。
此时模型就变成了生成器和判别器的博弈,模式如下:
生成器生成图片->判别器判断真伪->生成器根据判别结果改进自己,生成新图片…
GAN的目标函数如下:
训练过程
1.随机初始化生成器和判别器。
2.交替训练判别器D和生成器G,直到收敛。
(1)固定生成器,训练判别器D区分真实图像与合成图像
(2)固定判别器 ,训练生成器G欺骗判别器D
KL散度:衡量两个概率分布匹配程度的指标
极大似然估计=最小化KL
极大似然估计等价于最小化生成数据分布和真实分布的KL散度
cGAN(条件生成对抗网络)
cGAN在GAN的基础上引入了条件变量,实现条件生成模型。条件可以是类别标签或是其他辅助信息,对生成器的数据生成起指导作用。
其实现只需在GAN的生成器的判别器中,加入额外的条件信息即可。
在上图中改变的仅是输入数据的维数.
DCGAN
判别器:滑动卷积,步长大于1,以此来取消pooling。
使用Leaky ReLu
除了最后一层不使用全连接层
生成器:滑动反卷积
使用ReLu
最后一层使用tanh
批归一化BN
加速神经网络收敛
减小神经网络参数对初始化的依赖