GAN

对抗生成网络中,输入噪声的维度,以 mnist为例,是28*28=784的图像

gan的本质是将一个均匀随机分布映射到mnist上,假设mnist是任意图像,不仅仅是手写数字,理论上噪声维度需要784以上才能完成这个任务

但大部分数据是冗余的,可以使用更低维度的数据重建它

算法具体步骤

初始化 generator 和 discriminator

在每一轮迭代中,step 1,固定 generator G,更新 discriminator D 

        step 2,固定discriminator D, 更新 generator G

discriminator 的作用是 给来自于 Database 的样本图片给高分

          给来自于 generator G 生成的图片给低分

generator 的作用是,fool D ,希望 G 产生的图片 D 能够给它高分

所以 G 和 D 合起来相当于一个巨大的 network,假设 G 和 D 分别是五层,固定住后面五层,去训练前面的五层,让 D 的输出越大越好

GAN 的公式理解

V(G, D) = Ex~data(logD(x)) + Ex~G log(1-D(x))      # 为什么要用对数公式表示呢,,,在数学知识里面写了,信息熵要满足两个条件,(一)不确定性是概率的减函数,用反比例函数

(二) 两个不确定性事件等于各自不确定性之和,因此用对数函数来表示 log(ab)=log(a)+log(b)。。。反比例函数和对数函数的复合函数还是减函数

GAN 的目的就是使上面这个公式最大化【当 x~data时,logD(x) 越大越好,当x~G 时,log(D(x)) 越小越好,因此 log(1-D(x)) 越大越好】综上,用优化方法使上式越大越好

原文地址:https://www.cnblogs.com/DoctorZhao/p/13221459.html