美文网首页深度学习-推荐系统-CV-NLP
深入浅出对抗生成网络(GAN)

深入浅出对抗生成网络(GAN)

作者: 浮云匿晨晖 | 来源:发表于2017-06-03 10:37 被阅读402次

    GAN是机器学习的大牛Ian Goodfellow于2014年提出,是一种无监督学习的实现方案。GAN一个比较接地气的应用就是生成较真实的图片,例如:风景和人脸。NIPS2016年有个Tutorial就是介绍GAN的最新进展,这里是Tutorial的文字版,这里是一篇很好的中文的解释

    GAN应用

    超分辨

    生成网络:输入低分辨率图像,输出高分辨率的清晰图像。尽量地把生成的结果伪装成高分辨率的清晰图像。生成网络模型被大大地简化,目的性变得很明确。因为生成网络的目的变为竟可能地伪装欺骗人眼,所以生成的结果的效果也相对更好,能提供更多的细节。判别网络:判断输入的图像是否是“真实的高分辨率图像”。

    参考这篇文章(作者为fada_away),再给一个直观的解释:老张造假币,警察打假。老张想造假币谋生,一开始他造的假币很快就被实习警察识破了;然后老张回去研究一番后造出新的假币,实习生分辨不出,但被小警员给识破了;老张又回去研究,骗过了小警员,但被警察长给识破了;经过反复研究识破,最后老张造的假币警察已经识别不出来了,和真的一样!这就是GAN的很直观的原理,其中造假币的老张叫generator,警察叫discriminator,他们两个不断博弈对抗,最后让generator学会了以假乱真,达到所谓的纳什均衡。

    生成模型和判别模型 GAN实现超分辨(Ledig et al 2016) Image Morphing (BEGAN, Berthelot et al. 2017)

    生成模型(Generative Modeling)

    密度估计(Density estimation)是一种常见的生成模型,而密度估计的方法中最常见的是KDE(核密度估计)。如果不知道数据的分布,可以假设一个分布,然后通过密度图的情况,获知高密度的区域。KDE其实就是大家熟知的热度图的一个统计学的表达。传统概率生成模型需要进行复杂的马尔科夫链的计算,而GAN避免了这个复杂计算过程,易用于实际的应用场景。

    核密度估计(KDE)


    生成模型如何工作?

    生成模型的主要理论支撑是最大似然估计(Maximum Likelihood),这是概率论与数理统计课程的一个重要知识点,如果不了解,可以看看我写的另一篇文章

    最大似然估计

    最简单的GAN框架

    一个最简单的GAN框架,是利用已知的数据分布的结果(图中蓝色部分),在使用某种模型的基础上(比如高斯分布模型),反推最有可能导致这样结果的模型参数值(高斯分布的参数)。图中绿色为算出的生成概率分布。整个过程类似最大似然估计的过程。通过最优化方法,可以调节概率生成模型的参数,使得生成的概率分布尽可能逼近真实数据的分布。这里需要定义一个损失函数。传统方法通常使用似然估计的方法,而GAN引入了判别模型(SVM或CNN)。GAN是通过对抗学习这种方式来近似求解一些不可直接解的损失函数。

    原始数据分布和生成概率分布

    相关文章

      网友评论

        本文标题:深入浅出对抗生成网络(GAN)

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