GAN--6 WGAN EBGAN
JS divergence 不合适
大多数情况下,PG和Pdata不重合
1.PG和Pdata是高维空间的低维流形,他们之间的重叠可以忽略。
2.尽管PG和Pdata有重叠,如果不取足够多的点,重叠也可以忽略。
JS divergence的问题
不管PGx和Pdata相隔的近或远,JS都是log2。
那么对generator来说PG0和PG1一样差,那么PGx就不会更新
只有PG和Pdata完全重合的时候JS才等于0
结论:在原始GAN中,当训练一个二元分类器时比较困难,因为对GAN来说,case1和case2是一样差的。
Wasserstein GAN(WGAN):Earth Mover’s Distance
P和Q是两堆土,把P移到Q,那么P和Q间的距离就是WGAN
WGAN的优点:
从PG0到PG50,数据接近的同时,d也变小,即d50<d0,对WGAN来说,d50比d0要好,所以对generator就会更新参数。
评估Pdata和PG之间的WGAN距离:
lipschitz约束要求斜率不能太大,K=1时为一维lipschitz,每一段output的变化都小于input的变化
一个方法:weight clipping。通过这个限制让D比较平滑,但是D还不是1-Lipschitz
让D属于1-Lipschitz的方法:让所有的x都满足
但对所有的x进行积分很难实现,做不到
解决方法:假设x是从一个事先定好的Ppenalty中取出来的,只需保证Ppenalty中取出的x满足
Ppenalty的区域:
从Pdata中取一个点,从PG中取一个点,两点连接成一条线,这条线上的点就是Ppenalty的区域
GAN算法
D,通常跑k次
取m张照片,取m个向量,Generator从用个向量生成m张照片,更新θd,最大化下面的式子
G,只跑一次。
取m个噪声,更新θg,最小化下面的式子
WGAN对GAN做出的改变:
公式中的log去掉,输出取消sigmoid,加上weight clipping或者gradient penalty。