GAN入门

  • Basic Idea of GAN

    • Generator
      • 通过矩阵的形式让Generator产生图片,句子等(也可以认为是矩阵)。
        GAN入门
      • 通过修改向量的参数来更改图片的不同部分。
        GAN入门
    • Discriminator
      • 判断给出的图片等与真实的差别,与真实情况越靠近,判别值越接近1,反之越接近0。
        GAN入门
    • Adversarial
      • 通过Generator不断产生数据,之后喂给Discriminator的,进行参数的优化,其实模拟了两人的博弈。Generator的目的是以假乱真,而Discriminator的目的是不让Generator得逞。最终实现两人的共同进化。
        GAN入门
  • Algorithum

    • 学习过程
      • Step1:Fix generator G, and update discriminator D。在这个环节,D学着给real更高的分数,给fake更低的分数。
        GAN入门
      • Step2:Fix discriminator D, and update generator G。在这个环节G试着学习产生一张图片让D给出更高的分数。
        GAN入门
      • 在Step1与Step2之间更新G与D的值,之后再继续循环。
    • 具体的学习方式
      • Discriminator(参数为θd\theta_d) x2x^2
      1. 从真实的图片中取样m个喂给D {x1,x2,xm}\{x^1 ,x^2\dots ,x^m\}
      2. 从噪声中随机制造m个假数据,{z1,z2,zm}\{z^1 ,z^2\dots ,z^m\}
      3. 将m个假数据喂给Generator,相应的产生m个数据
         {x~1,x~2,x~m}\ \{ \widetilde x^1,\widetilde x^2\dots,\widetilde x^m\},其中x~i=G(zi)\widetilde x^i = G(z^i)
      4. 更新θd\theta_d的值(V~\widetilde{V}的最大值)
        • V~=1mi=1mlogD(xi)+1mi=1mlog(1D(xi~))\widetilde{V} = {1\over{m}}\sum^m_{i=1}logD(x^i)+{1\over{m}}\sum^m_{i=1}log(1-D(\widetilde{x^i}))

        • θdθd+ηV~(θd)\theta_d\leftarrow\theta_d+\eta\nabla\widetilde{V}(\theta_d)
          解释:V~\widetilde{V}最大,就是一方面保证真实的数据xix^i经过D判断后比较大,另一方面保证G生成的数据xi~\widetilde{x^i}经过D后比较小。

      • Generator(参数为θg\theta_g)
      1. 从噪声中随机制造m个假数据,{z1,z2,zm}\{z^1 ,z^2\dots ,z^m\}
      2. 更新θg\theta_g的值(V~\widetilde{V}的最小值)
        • V~=1mi=1mlog(D(G(zi)))\widetilde{V} = {1\over{m}}\sum^m_{i=1}log(D(G(z^i)))
        • θgθg+ηV~(θg)\theta_g\leftarrow\theta_g+\eta\nabla\widetilde{V}(\theta_g)
          解释:V~\widetilde{V}最小,就是保证G生成的数据xi~\widetilde{x^i}经过D后比较小。
  • GAN as structured learning

    • Generator着眼于局部,而Discriminator着眼于大局。
      GAN入门
  • Can Generator learn by itself?

    • Auto-encoder具有类似的功能。
      GAN入门
      一张图片进入encoder进行编码,之后再从decoder进行解码。而这里的decoder就相当于Generator的作用。
    • 存在问题:
      • 如果我们想生成如下的图片:GAN入门
        但是生成了:GAN入门
        我们就会发现仅从G的角度来说,1与2和目标的重合度更高,但实际上3,4更符合要求。
      • 这是由于G仅能考虑Layer与Layer间的关系而考虑不到Layer内部的关系。GAN入门
  • Can Discriminator generate?

    • Discriminiator可以保证全局更优,但是D在被训练时既需要好的真实的数据,也需要不好的假数据。
      然而也会伴随问题:当一个评分比较高的,比如0.9分的图片会被认为成真实的,然而这个0.9分的图片显然不满足要求。
      GAN入门
    • 因此需要Fake图片随机产生时的配合,Fake产生的一个图片总让D认为评分较低。
      GAN入门
      GAN入门
      GAN入门
  • Generator + Discriminator

    G用来产生较好的Fake数据,D用来分辨Fake数据。

相关文章:

  • 2021-05-05
  • 2022-12-23
  • 2021-09-16
  • 2021-04-05
  • 2022-12-23
  • 2021-04-19
  • 2022-01-02
  • 2021-05-08
猜你喜欢
  • 2021-10-25
  • 2021-06-04
  • 2021-08-04
  • 2021-04-12
  • 2021-11-18
  • 2021-07-04
相关资源
相似解决方案