zoukankan      html  css  js  c++  java
  • GAN网络之入门教程(一)之GAN网络介绍

    GAN网络从入门教程(一)之GAN网络介绍

    稍微的开一个新坑,同样也是入门教程(因此教程的内容不会是从入门到精通,而是从入门到入土)。主要是为了完成数据挖掘的课程设计,然后就把挖掘榔头挖到了GAN网络这里来了。当然,我也是新手上路,如有任何问题,欢迎在评论区留言。

    生成式对抗网络是20年来机器学习领域最酷的想法。 ——Yann LeCun

    GAN网络概要

    GAN网络全称generative adversarial network,翻译为生成式对抗网络,是一种机器学习方法。由Ian J. Goodfello 等人于2014年在Generative Adversarial Nets 论文中提出。其中在GAN网络中,有两个模型——生成模型( generative model G),判别模型(discriminative model D)。

    a generative model G that captures the data distribution, and a discriminative model D that estimates the probability that a sample came from the training data rather than G

    我们以生成图片为例子,本教程的最终的目标是实现使用GAN网络生成动漫头像。

    • G就是一个生成图片的网络,它接受一个随机的噪声(z),然后通过这个噪声生成图片,生成的数据记做(G(z))

    • D是一个判别网络,判别一张图片是不是“真实的”(是否是捏造的)。它的输入参数是(x)(x)代表一张图片,输出(D(x))代表(x)为真实图片的概率,如果为1,就代表绝逼是真实的图片,而输出为0,就代表不可能是真实的图片。

    在训练的过程中,生成网络G的目标就是生成假的图片去骗过判别网络D,而判别网络D的目标就是能够分辨出某一张图片是不是由(G)生成的。这就变成了一个博弈的过程。同时G和D的能力也在训练的过程中逐渐提高。在最理想的情况下, 则就是(D(G(z)) = 0.5)

    看到一个比较形象的说法:一个生成器(“艺术家”)学习创造看起来真实的图像,而判别器(“艺术评论家”)学习区分真假图像。训练过程中,生成器在生成逼真图像方面逐渐变强,而判别器在辨别这些图像的能力上逐渐变强。当判别器不再能够区分真实图片和伪造图片时,训练过程达到平衡。

    因此,在训练的过程中,我们会对判别器和生成器进行学习。

    判别器的学习

    首先我们初始化生成器 G,然后输入一组随机向量(Randomly sample a vactor),生成器会根据输入的向量产生一些图片,我们把这些图片标注成 0(假图片)。同时把已有训练集中真实的图片标注成 1(真图片)。两者同时丢进判别器 D 中,以此来训练判别器 D。使得当输入是真图片的时候,判别器给高分(分数接近于1),而输入假图片的时候,判别器给低分(接近于 0 )。

    了解深度学习的同学应该就知道了,我们有标记为1的真实图片和标注为0的假的图片,这个时候,我们就可以很轻易的对(D)进行训练(有了(x)(y))。

    生成器的学习

    针对于(D)我们有标记为1和0的数据,因此我们可以对其进行训练。那么对于生成器,有(x)(也就是随机噪声(z)),那么(y)在哪里呢?

    对于生成器,我们的目的是使得其能够生成真实的图片,换句话说,我们是希望生成的图片能够骗过(D)。那么如何通过判别器来产生所谓的(y)??我们可以这样做:

    我们通过随机向量(噪声数据)经由生成网络产生一组假图片,我们将这些假图片都标记为 1(也就是说,人为的把假的图片当作真实的),然后将这些假图片输入到判别器中,判别器在对这些图片进行判别的时候,会发现这些图片是假的图片,然后给出低分,这样就产生了误差(因为标记的为1,但是判别器给了低分)。

    因此,在训练生成器的时候,这个网络是串接的。而在训练生成器的时候,一个很重要的操作就是保持判别器网络的参数不发生改变,只是把误差一直方向传播,传到生成网络那块后更新生成网络的参数,这样就完成了生成网络的训练了。

    在完成生成器的训练之后,我们又可以产生新的假的图片去对判别器进行训练。我们把这个过程称作为单独交替训练。同时要定义一个迭代次数,交替迭代到一定次数后停止即可。

    总结

    GAN网络的入门介绍就到这里,下一篇博客将会对GAN网络的原理进行介绍。数据挖掘杀我!!!

    参考

  • 相关阅读:
    hdu 5696 区间的价值 单调栈+rmq
    bzoj 3039: 玉蟾宫 单调栈或者悬线法求最大子矩阵和
    bzoj 2435: [Noi2011]道路修建 dfs
    Codeforces gym 100971 D. Laying Cables 单调栈
    codeforces GYM 100971F 公式题或者三分
    UVA 10539
    BZOJ 1079: [SCOI2008]着色方案 DP
    UVA 11426
    UVA 11728
    UVA 10090
  • 原文地址:https://www.cnblogs.com/xiaohuiduan/p/13237486.html
Copyright © 2011-2022 走看看