WGAN = Wasserstein GAN
1. WGAN的主要改进
更新G的参数过程中,用Earth Mover's Divergence代表JS Divergence WGAN可以解决不overlap情况下Divergence不变的问题。
更新D的参数过程中,增加1-Lipschitz限制,得到PG到Pdata可以平滑过渡
1.1. Earth Mover's Divergence
1.1.1. case 1
W(P, Q) = d
1.1.2. case 2
分布如图P、Q所有,可以构造不同的move plan把P变成Q,不同的move plan会得到不同的距离,例如:
因此需要穷举所有的move plan找到最小的move plan。
定义某个move plan为,为对应的距离:
例如这里个case中最好的move plan是这样的:
W可以解决JS在不overlap情况下距离不变的问题。
1.2. 1-Lipschitz限制
1.2.1. 为什么限制
D的目标增加Pdata的D(x),减小PG的D(x)。
但只是这样的目标,可能永远无法收敛,因为左边可以无限下降而右边可以无限上升。
到最后左边跟右边之间差距非常大而形式悬崖,悬崖导致难以从左边优化到右边。
因此增加D的形状限制,要求D是平滑的。1-Lipschitz就是一种平滑限制。
Lipschitz平滑定义为:
当K为1时,称为1-Lipschitz平滑。
1.2.2. 怎么限制
论文作者没有很的方案,只是建议weight clipping。
这种方法不一定能真的实现1-Lipschitz限制。
2. WGAN-GP的主要改进
2.1. 改进一
在WGAN的基础上,提供了一种实现1-Lipschitz限制的方法。
原理:
1-Lipschitz等价于for all x
for all x意味着要遍历所有的可能,即:
公式中\int_x即代表遍历所有的可能,但这是不可行的,因此公式改为:
什么是?
- 在PG和Pdata中各任意取2个点。
- 两个点分别连线
- 连线上随机sample的点就是penalty
2.2. 改进二
WGAN中为了让D平滑,只惩罚了梯度>1的情况,而不care梯度<的情况。
实验结果表明,梯度越接近1效果越好。因为V(G,D)公式改为:
3. Spectrum Norm
Keep gradient norm smaller than 1 everywhere
4. 怎么把GAN改成WGAN