生成对抗网络

来源:互联网 发布:linux运维面试会问什么 编辑:程序博客网 时间:2024/05/24 06:46

生成对抗网络


1.两个模型


生成模型G:不断生成和真实样本更为接近的样本

判别模型D:提高区分真实样本和生成模型的能力,输出值是样本为真实样本的概率。

两个模型相互对抗,不断提升。


2. 基本概念


(1) 生成模型G

  • 输入噪声变量z, zpz(z), G(z)即为生成样本。
  • G(z,θg)pg

  • 训练G的目标是要让D难以区分G(z)是不是真实样本,即让D(G(z)) -> 0, 也即让 log(1-D(G(z)))尽可能小。

(2) 判别模型D:

*真实样本
xpdata(x)

*训练判别模型D的目标是尽可能的区分 真实样本 x 和 生成样本 G(z), 则要让 D(x) -> 1, D(G(z)) ->0, 即让 logD(x)+ log(1-D(G(z)))尽可能小.

(3)工作

*定义

V(D,G)=Expdata[logD(x)]+Ezpz(z)[log(1D(G(z)))]

*目标: minGmaxDV(D,G)



3. 算法


for 训练迭代次数 do     for  k steps do        按照分布 p_z(z) 选取{z_1,z_2,...,z_m }        按照分布p_{data}(x) 选取{x_1,x_2,...,x_m}        Update D by        $\nabla_{\theta_g}\frac^{1}_{m} \sum [logD(x_i)+log(1-D(G(z_i)))]$    end for按照分布 p_z(z) 选取{z_1,z_2,...,z_m }Update G by$\nabla_{\theta_g}\frac^{1}_{m} \sum log(1-D(G(z_i)))$


references:

  1. Goodfellow, Ian J., Pouget-Abadie, Jean, Mirza, Mehdi, Xu, Bing, Warde-Farley, David, Ozair, Sherjil, Courville, Aaron C., and Bengio, Yoshua. Generative adversarial nets. NIPS, 2014.
0 0