文献阅读·13-WGAN

简介

  Wasserstein Generative Adversarial Networks.ICML-2017,Cited-3690.放个pytorch的开源:wgan,这大佬的仓库里一堆的gan及变种,Star-5.5k。

关键字

  GAN,WGAN,EM距离,生成模型,深度学习,机器学习

正文

1. 存在问题和解决思路

  GAN存在难以训练,模式坍缩等问题,追溯其根本原因在于判别器给出的度量是JS散度,JS散度用来计算两个分布的差异,当分布不重叠时这个散度值可能为0或趋近无穷大,也就是变得不连续。假设生成器是x=G(z),生成样本x和真实样本的分布重叠可能性很小(zx所处高维空间的一个低维流形,生成的x与真实样本在高维空间的重合的支持集测度为0的概率是1),故而GAN的训练会常常出现问题。

  既然根本原因是JS散度不连续造成的,那么换一个处处连续的分布差异度量就可以解决这个问题,最优传输距离就满足处处连续的条件。WGAN就是把JS散度换成EM距离(最优传输的2阶形式,也叫推土机距离)来达到这个目的的。由于是用判别器来衡量这个度量的,判别器是神经网络,因此计算这个距离的过程(函数)需要满足可微的条件,这篇文献重点就是找出问题,提出思路,变换计算方式使得可微,当然最后还要给出实验效果来进一步说明。

2. 方法及基本原理

  (1)EM距离定义

W(P_r,P_g)=\inf _{\gamma \in \prod (P_r,P_g)}E_{(x,y)\sim \gamma}[\mid\mid x-y \mid\mid ]

  这里的\gamma是满足边缘分布为P_r,P_g的联合分布,意思是把P_r改造成P_g需要移动的所有样本距离和的最小值。

  (2)EM距离形式变换

  上面的式子没法用网络计算,也没法微分,那就需要变换成可以计算及微分的形式,有个Kantorovich-Rubinstein对偶性变换可以把距离计算表达成:

W(P_r,P_g)=\sup_{\mid\mid f\mid \mid _L \le 1}E_{x\sim P_r}[f(x)]-E_{x\sim P_g}[f(x)]

  里面有个条件,需要f满足利普西茨常数K\le 1利普西茨条件

  (3)目标函数

  最后近似表达为可以计算及微分的形式:
\max _{w\in W} E_{x\sim P_r}[f_w(x)]- E_{x\sim P_g}[f_w(g_\theta (x))]

  里边的w就是判别器参数,\theta是生成器参数,要求f满足利普西茨常数K的限制,K具体为多少不明确,只要不是无限大就行,反正我们的要求是可微分,梯度要有明显变换就行。

  怎么达到上面的要求呢,上面的f就是判别器D,也就是要求D对自身参数w的梯度要有有限的利普西茨常数,文献里做了个简单的处理,在每次梯度变换是要求参数的值限制在某个常数范围内就行了(-c,c),嗯,就这样。

3. 算法

  贴个文献的图(来自文献Alogorithm1):

算法.png

  备注:这个流程和GAN大体一样,除了上面提到权重限制在(-c,c)以外,还有就是:1)最后去掉sigmoide层,不加log进行计算,这有点像回归计算,应该是为了进一步加快训练速度;2)从实验中得出不使用Adam,而是使用RMSProp来优化。最后推荐台大李宏毅老师的视频,真的是深入浅出啊。

参考资料

[1] Arjovsky, Martin, Soumith Chintala, and Léon Bottou. "Wasserstein Generative Adversarial Networks." International Conference on Machine Learning. 2017.
[2] https://blog.csdn.net/yiqisetian/article/details/100511478
[3] https://zhuanlan.zhihu.com/p/25071913
[4] https://www.jianshu.com/p/c000b27775cc

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。