WGAN
E
x
∼
P
g
[
log
(
1
−
D
(
x
)
)
]
E
x
∼
P
g
[
−
log
D
(
x
)
]
\begin{aligned} & \mathbb{E}_{x \sim P_g}[\log (1-D(x))] \\ & \mathbb{E}_{x \sim P_g}[-\log D(x)] \end{aligned}
Ex∼Pg[log(1−D(x))]Ex∼Pg[−logD(x)]
原始 GAN 中判别器; 在 WGAN 两篇论文中称为 “the - log D alternative” 或 “the - log D trick”。WGAN 前作分别分析了这两种形式的原始 GAN 各自的问题所在 .
第一种原始 GAN 形式的问题
原始 GAN 中判别器要最小化如下损失函数,尽可能把真实样本分为正例,生成样本分为负例:
−
E
x
∼
P
r
[
log
D
(
x
)
]
−
E
x
∼
P
g
[
log
(
1
−
D
(
x
)
)
]
-\mathbb{E}_{x \sim P_r}[\log D(x)]-\mathbb{E}_{x \sim P_g}[\log (1-D(x))]
−Ex∼Pr[logD(x)]−Ex∼Pg[log(1−D(x))]
一句话概括:判别器越好,生成器梯度消失越严重。
在生成器 G 固定参数时最优的判别器 D 应该是什么,对于一个具体样本
x
x
x 它对公式 1 损失函数的贡献是
−
P
r
(
x
)
log
D
(
x
)
−
P
g
(
x
)
log
[
1
−
D
(
x
)
]
-P_r(x) \log D(x)-P_g(x) \log [1-D(x)]
−Pr(x)logD(x)−Pg(x)log[1−D(x)]
− P r ( x ) D ( x ) + P g ( x ) 1 − D ( x ) = 0 -\frac{P_r(x)}{D(x)}+\frac{P_g(x)}{1-D(x)}=0 −D(x)Pr(x)+1−D(x)Pg(x)=0
D ∗ ( x ) = P r ( x ) P r ( x ) + P g ( x ) D^*(x)=\frac{P_r(x)}{P_r(x)+P_g(x)} D∗(x)=Pr(x)+Pg(x)Pr(x)
如果 P r ( x ) = 0 P_r(x)=0 Pr(x)=0且 P g ( x ) ≠ 0 P_g(x)\neq0 Pg(x)=0 最优判别器就应该非常自信地给出概率 0;如果 P r ( x ) = P g ( x ) P_r(x)=P_g(x) Pr(x)=Pg(x)
说明该样本是真是假的可能性刚好一半一半,此时最优判别器也应该给出概率 0.5。
GAN 训练有一个 trick,就是别把判别器训练得太好,否则在实验中生成器会完全学不动(loss 降不下去),为了探究背后的原因,我们就可以看看在极端情况 —— 判别器最优时,生成器的损失函数变成什么。给公式 2 加上一个不依赖于生成器的项,使之变成
D
∗
(
x
)
D^*(x)
D∗(x) 带入 公式1 得到
E
x
∼
P
r
log
P
r
(
x
)
1
2
[
P
r
(
x
)
+
P
g
(
x
)
]
+
E
x
∼
P
g
log
P
g
(
x
)
1
2
[
P
r
(
x
)
+
P
g
(
x
)
]
−
2
log
2
\mathbb{E}_{x \sim P_r} \log \frac{P_r(x)}{\frac{1}{2}\left[P_r(x)+P_g(x)\right]}+\mathbb{E}_{x \sim P_g} \log \frac{P_g(x)}{\frac{1}{2}\left[P_r(x)+P_g(x)\right]}-2 \log 2
Ex∼Prlog21[Pr(x)+Pg(x)]Pr(x)+Ex∼Pglog21[Pr(x)+Pg(x)]Pg(x)−2log2
K
L
(
P
1
∥
P
2
)
=
E
x
∼
P
1
log
P
1
P
2
J
S
(
P
1
∥
P
2
)
=
1
2
K
L
(
P
1
∥
P
1
+
P
2
2
)
+
1
2
K
L
(
P
2
∥
P
1
+
P
2
2
)
\begin{aligned} & K L\left(P_1 \| P_2\right)=\mathbb{E}_{x \sim P_1} \log \frac{P_1}{P_2} \\ & J S\left(P_1 \| P_2\right)=\frac{1}{2} K L\left(P_1 \| \frac{P_1+P_2}{2}\right)+\frac{1}{2} K L\left(P_2 \| \frac{P_1+P_2}{2}\right) \end{aligned}
KL(P1∥P2)=Ex∼P1logP2P1JS(P1∥P2)=21