WGAN是GAN(对抗生成网络)的一种,在 WGAN 中,D 的任务不再是尽力区分生成样本与真实样本,而是尽量拟合出样本间的 Wasserstein 距离,从分类任务转化成回归任务。而 G 的任务则变成了尽力缩短样本间的 Wasserstein 距离。
故 WGAN 对原始 GAN 做出了如下改变:
- D 的最后一层取消 sigmoid
- D 的 w 取值限制在 [-c,c] 区间内。
- 使用 RMSProp 或 SGD 并以较低的学习率进行优化 (论文作者在实验中得出的 trick)
-
weight clipping存在的问题
- 第一个问题: 在WGAN的loss 中,如果是任由weight clipping去独立的限制网络参数的取值范围,有一种可能是大多数网络权重参数会集中在最大值和最小值附近而并不是一个比较好的连续分布,论文的作者通过实验也确实发现是这样一种情况。这毫无疑问带来的结果就是使得discriminator更倾向于拟合一种简单的描述函数,这种函数的泛化能力以及判断能力毫无疑问是非常弱的,那么经过这种discriminator回传的梯度信息的质量也是很差的
- 第二个问题: weight clipping的处理很容易导致梯度消失或者梯度爆炸,因为discriminator虽然相对于generator来说结构较为简单,但其实也是一个多层结构,如果weight clipping的约束比较小的话,那么经过每一层网络,梯度都会变小,多层之后的情况就类似于一个指数衰减了,这样得到的结果就会导致梯度消失,反之则是梯度爆炸,这实际上weight clipping的设置就非常的微妙了。下图是论文作者实验所得结果,确