GAN开山之作

作者: pdnbplus | 发布时间: 2024/06/20 | 阅读量: 153

GAN开山之作 -- 潘登同学的对抗神经网络笔记

GAN网络范式

GAN网络是基于一个生成网络和一个判别网络构成的

在这里插入图片描述

判别网络与生成网络

在这里插入图片描述

判别式网络(Discriminator)的发展已经很完善了,通过特征得到标签已经很完善了; 但是生成网络(Generator),根据随机数生成假数据的网络还是表现的不好;

GAN的loss

符号说明

  1. $Z$ 随机噪声
  2. $P_Z(Z)$ 随机噪声$Z$服从的概率分布
  3. $G(Z;\theta_j)$ 生成器: 输入$Z$后生成的输出
  4. $P_g$ 生成器生成的输出服从的概率分布
  5. $X\sim P_{data}$ 真实数据服从的概率分布
  6. $D(x;\theta_d)$ 判别器: 输入$x$输入来自$X$(真实数据)的概率

$$ \min_G|\max_D V(D,G) = E_{x\sim P_{data}(x)}[\log D(x)] + E_{z\sim p_z(z)}[\log(1-D(G(z)))] $$

解释一下上面的公式,等式右边是两个期望相加

  • 第一个期望: 表示数据传入判别网络中,计算出的值,对于判别网络来说,这个值越大越好 $$ E_{x\sim P_{data}(x)}[\log D(x)] $$
  • 第二个期望: 表示噪声数据经过生成网络生成的数据传入判别网络中,计算出的值的相反数,这个值越大越好 $$ E_{z\sim p_z(z)}[\log(1-D(G(z)))] $$

所以对于判别网络来说, 是最大化上式;对于生成网络来说则相反,所以等式左边反映了这一目标 $$ \min_G|\max_D V(D,G) $$

训练过程

在这里插入图片描述

先训练k次判别器,再训练一次生成器,进行多次迭代

算法伪代码

在这里插入图片描述

GAN的证明

证明1

在这里插入图片描述

证明: 固定G的情况下,最大化目标函数 $$ \max_D V(D,G) = E_{x\sim P_{data}(x)}[\log D(x)] + E_{z\sim p_z(z)}[\log(1-D(G(z)))] \ \begin{aligned} \Leftrightarrow V(D,G) &= \int_x P_{data}(x)\log (D(x))dx + \int_z P_{z}(z)\log (D(g(z)))dz \ &= \int_x [P_{data}(x)\log (D(x))dx + P_{g}(x)\log (D(x))]dx \ \end{aligned} $$ 其中,将积分变量从z转为x的过程是由测度论Radon-Nikodym theorem(无意识统计学家定律)得到的 $$ 当z\to x是单射时,对噪声z采样相当于对假图像采样 \ E_{Z\sim P_Z(Z)}\log(1-D(G(Z))) = E_{X\sim P_G(X)}\log(1-D(X)) $$

对于上式真实数据$P_{data}(x)$,以及生成网络生成出来的数据都是已知的$P_g(X)$,将目标函数简写为下式 $$ f(y) = a \log(y) + b \log(1-y) \ f'(y) = \frac{a}{y} - \frac{b}{1-y} = 0 \ \Rightarrow y = \frac{a}{a+b} \ 且当a+b\neq 0,a,b \in (0,1) \Rightarrow y \in (0,1) \ f''(y) = - \frac{a}{y^2} - \frac{b}{(1-y)^2} <0 \ 二阶导为负,凸函数,当一阶导为0时,达到最大值 $$

证明2

在这里插入图片描述

证明: 在固定D的情况下,生成器的目标函数达到全局最小 $-\log 4$

充分性 $$ 当P_g = P_{data}=\frac{1}{2}时, D_G^(X) = D(X) = D(G(X)) = \frac{1}{2} \ \begin{aligned} \min_G V(D_G^(X),G) &= E_{x\sim P_{data}(x)}[\log D(x)] + E_{z\sim p_z(z)}[\log(1-D(G(z)))] \ &= E_{x\sim P_{data}} [-\log 2] + E_{x\sim P_{g}} [-\log 2] = -\log 4 \end{aligned} $$

必要性 $$ \begin{aligned} C(G) &= V(D_G^(X),G) \ & = -\log 4 + \log 4 + E_{x\sim P_{data}(x)}[\log D_G^(x)] + E_{z\sim p_z(z)}[\log(1-D_G^(G(z)))] \ & = -\log 4 + E_{x\sim P_{data}(x)}[\log \frac{P_{data}(x)}{P_{data}(x)+P_g(x)} + \log 2] + E_{x\sim P_{g}(x)}[\log \frac{P_{g}(x)}{P_{data}(x)+P_g(x)} + \log 2] \ &= -\log 4 + E_{x\sim P_{data}(x)}[\log \frac{P_{data}(x)}{\frac{P_{data}(x)+P_g(x)}{2}}] + E_{x\sim P_{g}(x)}[\log \frac{P_{g}(x)}{\frac{P_{data}(x)+P_g(x)}{2}}] \ &= -\log 4 + KL(P_{data}||\frac{P_{data}(x)+P_g(x)}{2}) + KL(P_{g}||\frac{P_{data}(x)+P_g(x)}{2}) \ &= -\log 4 + 2 JSD(P_{data}||P_g) \ \end{aligned} $$

其中,KL散度用于衡量两个分布的差异 $$ KL(P||Q) = \sum[p(x) \log \frac{p(x)}{q(x)}] \ KL(P||Q) = \sum[q(x) \log \frac{q(x)}{p(x)}] \ $$ KL散度的性质

  • 非负性(利用Jensen不等式) $$ 证明: 设实数域上函数f(x)是一个非负函数,且\int_{-\infty}^{\infty}f(x)dx =1\ 如果g是任意实可测函数且\phi是凸的,那么有Jensen不等式 \ \phi(\int_{-\infty}^{\infty}g(x)f(x)dx) \leq \int_{-\infty}^{\infty}\phi(g(x))f(x)dx \ 令\phi(x) = -\ln(x), g(x) = \frac{q(x)}{p(x)}, f(x) = p(x) \ KL(P||Q) = \int_{-\infty}^{\infty}p(x) \log \frac{p(x)}{q(x)}dx \geq -\ln[\int_{-\infty}^{\infty}q(x)dx] = 0 \ 当且仅当q(x)=p(x)对于所有x都成立时,等号才成立 $$
  • 不对称性,即KL(P||Q)≠KL(Q||P) 正是由于KL散度的不对称性问题使得在训练过程中可能存在一些问题,为了解决这个问题,我们在KL散度基础上引入了JS散度,JS散度是对称的,其取值是 0 到 1 之间。 $$ JSD(P||Q) = KL(P||\frac{P+Q}{2}) + KL(Q||\frac{P+Q}{2}) $$

回到证明2的结论中,所以当且仅当两个数据分布$P_{data}(x),P_g(x)$相同时,C(G)达到最小优化目标,且值为$-\log 4$

证明3

证明3又遇到了函数空间的梯度下降,上次GBDT出现我就不太理解,没想到这次又遇见了,贴一个原文的证明...

在这里插入图片描述