GAN的一些证明

主要介绍了一点关于GAN的理论推导,对于之后WGAN的理解比较有帮助。

首先,我们需要的是判别器D能够识别出数据集的数据,所以我们定义如下的期望:
$$E_{x∼p_{data}(x)}log(D(x))$$

最大化这一项代表我们能够准确的预测服从x~$p_{data}(x)$的数据

接下来我们定义生成器能够产生“欺骗”判别器的期望。

$$E_{z∼p_{z}(z)}log(1−D(G(z)))$$

如果这一项被最大化了,那么就意味着D(G(z))≈0,也就是说对于从生成器产生的数据不能“欺骗”判别器。

将这两项的值相加,判别器的目标即最大化下面的值:

$$E_{x∼p_{data}}(x)log(D(x))+E_{z∼p{z}(z)}log(1−D(G(z)))$$

给定生成器G,意味着D要能够正确地识别真实和虚假的数据点。最优的判别器记为$D_G^{\ast}$. 定义代价函数:

$$ V(G,D):= E_{x∼p_{data}}(x)log(D(x))+ E_{z∼p{z}}(z)log(1−D(G(z))) $$

此时我们有$D_G^{\ast} = argmax_{D}V(G,D)$. 此时,G的目标是:当$D=D_G^{\ast}$时最优化的G能够最小化之前的等式,即
$$G^{\ast} = argmin_{G}V(G,D_G^{\ast})$$

回顾一下我们的代价函数:

$$ V(G,D):= E_{x∼p_{data}}(x)log(D(x))+ E_{z∼p{z}}(z)log(1−D(G(z))) $$

根据Radon-Nikodym定理,我们可得如下:

$$E_{z∼p_{z}(z)}log(1−D(G(z))) = E_{x∼p_{G}(x)}log(1−D(G(x)))$$

故:

$$ V(G,D):= E_{x∼p_{data}}(x)log(D(x))+E_{x∼p_{G}(x)}log(1−D(G(x)))$$

所以我们可得V的计算公式如下:

$$ V(G,D):= \int_{x} p_{data}(x) logD(x)+ p_{G}(x)log(1-D(x)) dx $$

接下来我们证明最优的判别器和生成器是存在的

最优判别器的存在性

$$ V(G,D):= \int_{x} p_{data}(x) logD(x)+ p_{G}(x)log(1-D(x)) dx $$

取出积分项,令 $y = D(x)$, $a=p_{data}(x)$, $b=p_{G}(x)$,其可以写为:

$$ f(y) = alogy+blog(1-y) $$

找到极值点:

$$ f'(y) = 0 \Rightarrow \frac{a}{y} – \frac{b}{1-y} = 0 \Rightarrow y = \frac{a}{a+b} $$

如果$a+b\neq0$,继续做二阶导函数的检验:

$$ f”(\frac{a}{a+b}) = -\frac{a}{{(\frac{a}{a+b}})^2} -\frac{b}{{(1-\frac{a}{a+b}})^2} < 0 $$

其中$a,b\in(0,1)$, 因此 $\frac{a}{a+b}$ 是最大值

因此最优的判别器为: $$ D(x) = \frac{p_{data}}{p_{data}+p_{G}} $$

最优生成器的存在性

GAN的最终目标是 $p_G = p_{data}$. 这对于我们的判别器意味着什么呢?带入之前的最优生成器$D^{\ast}_G$。

就可得$D_G^{\ast} = \frac{p_{data}}{p_{data} +p_G} = \frac{1}{2}$

利用这个想法,作者利用这证明了这个G是极大极小对策的解决方案。我们需要证明的如下:

“当且仅当$p_G = p_{data}$时,我们能够得到$C(G)=\max_D V(G,D)$”

当$p_G = p_{data}$,我们可以计算得到此时的代价函数的值为:

$$ V(G, D_G^{\ast}) = \int_{x} p_{data}(x)\log \frac{1}{2} + p_G(x) \log \big ( 1- \frac{1}{2}\big) \, \mathrm{d}x \
= -\log2\int_{x} p_{G}(x) + p_{data}(x)\, \mathrm{d}x $$
$$= -\log2 ( 1 + 1) $$ $$= -\log4 $$

这个值是最小值的候选之一(因为它是在 $p_G=p_{data}$时发生的). 我们现在证明这个值就是最小值

因此我们现在考虑一般化的生成器(即没有$p_G=p_{data}$这个条件),将$D^{\ast}_{G}$带入$C(G)=\max_D V(G,D)$得到

$$C(G) = \int_{x} p_{data}(x)\log \big (\frac{p_{data}(x)}{p_{G}(x)+p_{data}(x)} \big ) + p_G(x) \log\big ( \frac{p_{G}(x)}{p_{G}(x)+p_{data}(x)}\big ) \, \mathrm{d}x.$$

因为知道了-log 4 是全局最小值的一个候选者,我们想要在等式中插入这一项。因此,我从每个积分中添加和减去log2,并乘以概率密度。 因为添加的值是0,因此等式依然是成立的。

$$ C(G) = \int_{x} (\log2 -\log2)p_{data}(x) + p_{data}(x)\log \big (\frac{p_{data}(x)}{p_{G}(x)+p_{data}(x)} \big )
\quad+(\log2 – \log2)p_G(x) + p_G(x) \log\big ( \frac{p_G(x)}{p_G(x)+p_{data}(x)}\big ) \, \mathrm{d}x. $$
$$ \Longrightarrow C(G) = – \log2\int_{x} p_{G}(x) + p_{data}(x)\, \mathrm{d}x
+\int_{x}p_{data}(x)\Big(\log2 + \log \big (\frac{p_{data}(x)}{p_{G}(x)+p_{data}(x)} \big ) \big)
+ p_G(x)\Big (\log2 + \log\big ( \frac{p_{G}(x)}{p_{G}(x)+p_{data}(x)}\big ) \Big ) \, \mathrm{d}x. $$

由于概率密度的定义,因此 $p_G$ and $p_{data}$ 全域积分值为1,故:
\begin{equation} -\log2\int_{x} p_{G}(x) + p_{data}(x)\, \mathrm{d}x = -\log2 ( 1 + 1) = -2\log2 = -\log4. \end{equation}

考虑log的基本性质,可得:

\begin{equation} \log2 + \log \big (\frac{p_{data}(x)}{p_{G}(x)+p_{data}(x)} \big ) = \log \big ( 2\frac{p_{data}(x)}{p_{G}(x)+p_{data}(x)} \big )\ = \log \big (\frac{p_{data}(x)}{(p_{G}(x)+p_{data}(x))/2} \big ). \end{equation}

因此,将上面等式带入之前的结果,可得: $$ C(G) = – \log4 + \int_{x}p_{data}(x)\log \big (\frac{p_{data}(x)}{(p_{G}(x)+p_{data}(x))/2} \big )\,\mathrm{d}x \ + \int_x p_G(x)\log\big ( \frac{p_{G}(x)}{(p_{G}(x)+p_{data}(x))/2}\big ) \, \mathrm{d}x. $$

我们发现后面的两项都是KL散度!具体而言:

\begin{equation} C(G) = – \log4 + KL\big (p_{data} \big | \frac{p_{data}+p_{G}}{2} \big ) + KL\big(p_{G} \big | \frac{p_{data}+p_{G}}{2}\big) . \end{equation}

KL散度有一项性质是它永远是非负的,因此我们知道-log4就是C(G)的全局最小值。如果我们证明只有一个G能够达到此值,那么我们就能够证明完毕因为此时$p_G=p_{data}$将是$C(G)=-\log 4$的唯一点。为了证明这个,我们需要做如下变化:

\begin{equation} C(G) = – \log4 + 2\cdot JSD \big (p_{data} | p_{G}\big ) . \end{equation}

其中的JSD项即JS散度(Jensen-Shannon)。它等于0当且仅当$p_{data}=p_{G}$,得证。

Ref

主要是这篇文献,我觉得写得很好,An Annotated Proof of Generative Adversarial Networks with Implementation Notes

关于这几个散度的介绍:KL散度、JS散度、Wasserstein距离

微软亚研院对于GAN的介绍:到底什么是生成式对抗网络GAN?

待阅读

OpenAI对于GAN当前发展的介绍:GAN models

深度解读:GAN模型及其在2016年度的进展

GAN学习指南:从原理入门到制作生成Demo

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注