美文网首页AI
GAN知识总结

GAN知识总结

作者: 樱桃小丸子zz | 来源:发表于2018-08-08 15:53 被阅读113次

    1、基础定义:GAN 是根据给定的先验分布生成数据的另一种方式,包括同时进行的两部分:判别器和生成器。判别器用于对「真」图像和「伪」图像进行分类,生成器从随机噪声中生成图像(随机噪声通常叫作本征向量或代码,该噪声通常从均匀分布(uniform distribution)或高斯分布中获取)。生成器的任务是生成可以以假乱真的图像,令判别器也无法区分出来。也就是说,生成器和判别器是互相对抗的。判别器非常努力地尝试区分真伪图像,同时生成器尽力生成更加逼真的图像,使判别器将这些图像也分类为「真」图像。

    2、相关GAN各种变体:
    ● DCGAN:deep convolutional generative adversarial network深度卷积生成对抗网络
    ● SSGAN:Semi-Supervised Learning Generative Adversarial network 半监督学习GAN
    ● CCGAN:Cycle Consistent Generative Network 循环一致生成网络-----进行图像风格的跨域转换。
    ● CGAN :Conditional GAN ,条件GAN
    ● WGAN :Wasserstein GAN 沃瑟斯坦GAN
    ● WGAN-GP (improved wgan):WGAN增强版
    ● BEGAN:Boundary_Equilibrium_GAN 边界均衡GAN ,生成高清图像
    ● LSGAN:Least Squares Generative Adversarial Networks 最小二乘GAN
    ● MMGAN: Mainflod-Matching GAN
    ● StackGAN : Stacked GAN 通过文本生成逼真的图像
    ● DiscoGAN: DiscoveryGAN 探索GAN, 探索跨域的关系。
    ● SRGAN:Super Resolution GAN 超清晰GAN, 生成高清晰度图像

    3、WGAN
    原始GAN的缺陷:原始GAN的loss function是有缺陷的, 当判别器训练的较好时,生成器的loss会无法下降。因为最优判别器时,生成器loss等价于真实分布和生成分布之间的JS散度。JS散度是针对于两个分布需要有所重叠,但是在实际情况中,两个分布很有可能没有重叠,这样会导致JS散度为一个定值,从而无法下降。

    而为什么两个分布很有可能没有重叠呢?
    原因是:当Pr和Pg的支撑集(support)是高维空间中的低维流形(manifold)时,Pr和Pg重叠部分测度(measure)为0的概率为1.

    对应在GAN的结构中,GAN的生成器一般是从某个低维(比如100维)的随机分布中采样出一个编码向量,再经过一个神经网络生成出一个高维样本(譬如64*64的图片就有4096维)。当生成器的参数固定时,生成样本的概率分布虽然是定义在4096维的空间上,但它本身所有可能产生的变化已经被那个100维的随机分布限定了,其本质维度就是100,再考虑到神经网络带来的映射降维,最终可能比100还小,所以生成样本分布的支撑集就在4096维空间中构成一个最多100维的低维流形,“撑不满”整个高维空间。

    因此:无论真实分布跟生成分布是远在天边,还是近在眼前,只要它们俩没有一点重叠或者重叠部分可忽略,JS散度就固定是常数log2,而这对于梯度下降方法意味着——梯度为0!此时对于最优判别器来说,生成器肯定是得不到一丁点梯度信息的;即使对于接近最优的判别器来说,生成器也有很大机会面临梯度消失的问题。

    WGAN相比原始GAN的算法实现流程的改进点:
    ● 判别器最后一层去掉sigmoid
    ● 生成器和判别器的loss不取log
    ● 每次更新判别器的参数之后把它们的绝对值截断到不超过一个固定常数c
    ● 不要用基于动量的优化算法(包括momentum和Adam),推荐RMSProp,SGD。

    相关文章

      网友评论

        本文标题:GAN知识总结

        本文链接:https://www.haomeiwen.com/subject/eodjvftx.html