目录
什么是GAN
GAN:对抗网络
属于生成模型中的一种
生成模型:
给定训练集,模型可以产生与训练集同分布的新样本
(即训练集样本的分布和新样本的分布是一致的)
生成模型的分类:
显示的密度估计:显示的定义并求解分布Pdata
隐式的密度估计:学习一个模型Pmodel,而无需显示的定义它
GAN的原理
简单的理解为两个玩家的博弈战
生成网络的目的:产生尽量真实的图片,进而骗过判别器
判别网络的目的:准确的区分真假图片
模型的训练过程:生成网络接受一维的噪声输入,通过网络的各种变换,输出1*28*28的图片输出;判断器对生成图片进行打分(0-1),打的分数越低说明生成网络的效果越差,进而计算梯度进行生成网络的优化迭代;而判别器同时获得一个真样本和假样本,看它能否判别效果如何。训练过程中,两者互相博弈,达到平衡。
训练目标
参数解释:
G表示生成网络,D表示判断器(输出是0-1),z为噪声输入,x为样本数据
- 先看max函数(此时训练参数是θd)
要想整个式子最大,只能使得,即判断器对真实图片的输入打1分,即对生成的1*28*28的图片打0分。这个过程就是对判别器进行训练,训练他辨别假样本的能力。
- 再看min函数(此时训练参数是θg)
前半个式子中没有涉及到θg,则只要让后面的式子最小即可,那么最好是让越大越好,就是要让生成网络生成的图片越真越好,使得判别器对他的打分越接近于1.