生成对抗网络

1.前言

机器学习可以分为两类模型,一种是判别模型(discrimination model),给定一个输入,模型通过判别输入的类别。另一种是生成模型(generative model),给定输入,通过模型从而逼近数据的原始概率分布。
目前,比较有名的生成模型有:

Deep RBM
VAE
关于VAE,可以参考之前的博文

然而,不管是RBM还是VAE,他们本身要么是通过复杂的马尔科夫链进行逼近(RBM通过马尔科夫链来避免explain away),而VAE则是通过复杂的变分推断从而逼近变分下界。他们的计算都过于麻烦。而生成对抗网络最大的优点,就是避免了复杂的马尔科夫过程。

2. 生成对抗网络

对抗网络是一种深度学习的算法构架,和之前很火的对抗样本是两码事。
生成对抗网络采用了真实样本与生成器之间相互博弈,达到均衡的目的来训练生成网络。整个网络包含两部分,生成器Generative,简称G,和判别网络Discrimination,简称D。
给定数据x,设生成器的概率分布为 pg ,通过一个噪声的 pz(z) 进行控制。这样就可以通过生成器G,将z映射到一个生成的样本x,之后将生成的样本和真实图像输入判别模型D。其整个网络结构如下图所示。

其目标函数为:

minGmaxDV(D,G)=Epdata[logD(x)]+Epz[log(1D(G(z)))]

在文中可以证明:

pg=pdata

整个算法收敛于最优解。整个优化的过程可以看做下图:

当训练完成后,整个判别器对于输入的样本的是否属于生成模型生成的结果的概率停留在50%。这也就达到了博弈的均衡点

你可能感兴趣的:(Python)