李宏毅《GAN Lecture》学习笔记6 - WGAN和EBGAN

GAN的提升方法

本节主要介绍对GAN的改进方法~

Wasserstein GAN(WGAN)

JS Divergence并不适用!为什么这样说?下面给出解释~

在很多情况下,Pg和Pdata是没有重合的。原因有两个:

  1. 数据本身的特性决定的,地位空间的数据在高维空间的manifold,所以,能够出现重叠的地方,几乎可以忽略;
  2. 采样问题,训练过程中,其实是随机采样,而采样的数量相对于分布,可以说是微乎其微,能够有重合的比例也是小的可以忽略不计。(个人觉得这个理由更合理一些~)
    在这里插入图片描述
    对于没有重合的情况下,JS divergence的值都是log2。所以,下面不同分布,在没有重合前,都是log2。这样,就没法判断谁好谁坏了。
    在这里插入图片描述
    对原始GAN 的改进方法之一:在训练Discriminator的时候,使用linear function代替sigmoid。
    在这里插入图片描述
    左下的图是原始的GAN中binary classifier的sigmoid,由于两边的梯度几乎为0,所以,根据梯度调整,几乎就无法移动。

另一种现在比较常用的改进方法:WGAN
定义Wasserstein Distance如下,类比的例子就是推土机移动P到Q。
在这里插入图片描述
挪动方法会有多种,那么,最小的平均距离就是Wasserstein Distance.
在这里插入图片描述
更准确的数学定义如下:
在这里插入图片描述
Wasserstein Distance与JSD的差异
在这里插入图片描述

下面看看具体的数学定义

其中,目标函数有些变化:(1)期望函数只是D;(2)D需要符合1-Lipschitz 约束条件
在这里插入图片描述
在D没有约束的情况下,D会使得real data的值越来越大,使得generated data越来越小。

在WGAN的原论文中,使用weight clipping的方法来实现1-Lipschitz约束,不过,这种方式是没有用的。
在这里插入图片描述
后来,有了利用Gradient Penalty来等价实现1-Lipschitz约束。
使用的方法也就是下面WGAN-GP中介绍的方法,相应的论文:
https://arxiv.org/abs/1704.00028
在这里插入图片描述
给目标函数增加了一个正则项,用于完成1-Lipschitz约束。

这里,有一个问题,Ppenalty是怎么抽样的呢?
从Pdata和Pg中各选一个点,在两者连线上选取一个点,作为Ppenalty的抽样。
在这里插入图片描述
在实现过程中,稍微有些差异。
在这里插入图片描述
WGAN的算法:
在这里插入图片描述

Energe-based GAN(EBGAN)

其中,Discriminator是用autoencoder实现的。
这种GAN 的好处是训练D的时候,不需要使用generated examples,直接使用真实的image即可。而且,初始时,D的能力比较强大,所以,G的生成过程中,才开始就会有较为清晰的图像生成。
在这里插入图片描述
为了控制D,不要将generated example判断的分值过于小,引入了margin的概率,只要分值小于margin即可,不要再小了。
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章