Generative Adversarial Nets
核心思想
GAN是一种生成模型,GAN中除了生成网络外,加入了一个与生成网络对立的判别网络。该网络学习确定样本是来自生成网络还是来自真实数据。 生成网络可以被认为类似于一组伪造者,试图生产假币并在未经检测的情况下使用它,而判别网络类似于警察,试图发现伪钞。 在这场比赛中,竞争促使双方都改进自己的方法,直到假冒伪劣品与真品无法区分为止。
概念
理论证明*
最优性
当G固定时,D的最优解是:
D
G
∗
(
x
)
=
p
d
a
t
a
(
x
)
p
d
a
t
a
(
x
)
+
p
g
(
x
)
D^*_G(x)=\frac{p_{data}(x)}{p_{data}(x)+p_g(x)}
DG∗(x)=pdata(x)+pg(x)pdata(x)
当G固定时,D的训练是最大化V(G,D)。
V
(
G
,
D
)
=
∫
x
p
d
a
t
a
(
x
)
log
(
D
(
x
)
)
d
x
+
∫
z
p
z
(
z
)
l
o
g
(
1
−
D
(
g
(
z
)
)
)
d
z
=
∫
x
p
d
a
t
a
(
x
)
log
(
D
(
x
)
)
+
p
g
(
x
)
log
(
1
−
D
(
x
)
)
d
x
V(G,D)=\int_xp_{data}(x)\log(D(x))dx+\int_zp_z(z)log(1-D(g(z)))dz\\ =\int_xp_{data}(x)\log(D(x))+p_g(x)\log(1-D(x))dx
V(G,D)=∫xpdata(x)log(D(x))dx+∫zpz(z)log(1−D(g(z)))dz=∫xpdata(x)log(D(x))+pg(x)log(1−D(x))dx
收敛性
。。。
方法
对抗训练
生成网络
对于先验的随机噪声z,生成网络G将其映射到数据空间:
z
⟶
G
(
z
;
θ
G
)
z\longrightarrow G(z;\theta_G)
z⟶G(z;θG)
对抗网络
对于一个数据x,判别网络D将其映射为x是真实数据的概率(或x的标签)。
x
⟶
D
(
x
;
θ
D
)
x\longrightarrow D(x;\theta_D)
x⟶D(x;θD)
对抗训练
{
min
D
1
2
(
y
−
D
(
x
)
)
2
min
G
log
(
1
−
D
(
G
(
z
)
)
)
\begin{cases} \min\limits_{D}\frac{1}{2}(y-D(x))^2\\ \min\limits_{G}\log(1-D(G(z))) \end{cases}
⎩⎨⎧Dmin21(y−D(x))2Gminlog(1−D(G(z)))
或
min
G
max
D
V
(
D
,
G
)
=
E
x
p
d
a
t
a
(
x
)
[
log
(
D
(
x
)
)
]
+
E
x
p
z
(
z
)
[
log
(
1
−
D
(
G
(
z
)
)
)
]
…
…
(
1
)
\min\limits_G\max\limits_D V(D,G)=\mathbb{E}_{x~p_{data}(x)}[\log(D(x))]+\mathbb{E}_{x~p_z(z)}[\log(1-D(G(z)))]\;\;……(1)
GminDmaxV(D,G)=Ex pdata(x)[log(D(x))]+Ex pz(z)[log(1−D(G(z)))]……(1)
后期
图一是对抗训练后期,即生成网络分布快要接近能完全模拟生成真实数据的网络分布时的图像。其中黑色点线是生成网络的目标分布,绿色实线是生成网络的分布,蓝色点线是判别器的分布。下方的水平线是生成网络的输出空间,上方水平线是生成网络的输出空间。向上箭头表示随机噪声到生成图片的映射。图(a)到图(d)所描述的过程分别是:
- 刚刚经历了生成网络的训练,此时的生成网络已经接近收敛。但此时的判别网络还没有随之调整。
- 训练判别网络,使其达到目标分布 p d a t a ( x ) p d a t a ( x ) + p g ( x ) \frac{p_{data}(x)}{p_{data}(x)+p_g(x)} pdata(x)+pg(x)pdata(x)。此时生成网络只能把输入映射到判别网络分布密度较低的区域。判别器以较高的置信度判别其为生成数据。
- 继续训练生成网络和判别网络,当生成网络和目标网络重合时, D ( x ) = 1 2 D(x)=\frac{1}{2} D(x)=21,判别器已无法做出判断。
前期
在学习的早期,当G较差时,D可以以很高的置信度拒绝生成数据,因为它们明显不同于训练数据。在这种情况下…