异常检测 and GAN网络(1)


前言

  这一节主要介绍什么是GAN网络,边学习边记录,总结了一些我认为比较重要的知识点,有不对的地方欢迎大家指正~


一、什么是GAN网络?

  GAN全称为Generative Adversarial Network,翻译过来就是生成对抗网络,是一个博弈过程。因此其包含有两个模型,一个是生成模型(generative model),一个是判别模型(discriminative model)生成模型的任务是生成看起来自然真实的、和原始数据相似的实例判别模型的任务是判断给定的实例看起来是自然真实的还是人为伪造的(真实实例来源于数据集,伪造实例来源于生成模型)。

  采用通俗的例子来进行解释:“一个造假团伙,试图生产和使用假币”,而判别模型像“检测假币的警察”。生成器(generator)试图欺骗判别器(discriminator),判别器则努力不被生成器欺骗。模型经过交替优化训练,两种模型都能得到提升,但最终我们要得到的是效果提升到很高很好的生成模型(造假团伙),这个生成模型(造假团伙)所生成的产品能达到真假难分的地步。同时,如我们所想,判别模型也提升到了很高的水平。

  GAN网络整体示意如下:
在这里插入图片描述
  从图中可以看到,GAN网络有Generator和Discriminator两个网络。在训练过程中,生成器在生成逼真数据方面逐渐变强,而判别器在辨别这些数据的能力上逐渐变强。当判别器不再能够区分真实数据和伪造数据时,训练过程达到平衡

  同时,需要提一下的是,G网络和F网络时同时又单独交替迭代进行训练的

  交替迭代训练中,先训练判别器网络,固定生成器网络。假设已有生成器网络(当然性能不是最好的),给它一堆随机向量,就会生成一堆假样本。此时因为生成器性能不是很好,导致生成的假样本不是太好,很容易被判别器网络判别为假。如今我们有了这个假样本集,而真样本集是一直都有的,我们再人为给真、假样本集打上真假标签,比如真样本集的 label 都为1,而假样本集的 label 都为0。现在,有了两个经过标记的真假样本集,对于判别器网络来说,问题就变成了有监督的二分类问题了,将两个样本集直接送进判别器网络中进行训练即可。我们希望训练完的判别器判别真样本时,输出尽可能接近1,判别假样本时,输出尽可能接近0。

  判别器网络训练好了,接下来训练生成器网络,固定判别器网络。对于生成器网络,我们希望它能生成尽可能逼真的样本。但是,这个“逼真”要怎样来进行量化评价呢?到底有多逼真呢?我们可以借助判别器网络。生成器网络生成的样本的真实程度只能通过判别器才能知道,所以在训练生成器网络时,需要联合判别器网络,生成器网络才能真正训练。所以,生成器网络的训练其实是对“生成器-判别器串接网络”的训练。如上图所示,如果只使用生成器网络,那么就无法得到误差,也就无法训练。

  同样重要的是,我们要知道,GAN网络的生成器网络的训练过程中,不需要真样本集

  首先,给生成器一堆随机向量,生成器再次生成一堆假样本。此时,要注意的是,要把这些假样本的 label 设为1!没错,就是1!即认为这些假样本在生成器网络训练过程中是真样本,因为此时是通过判别器来得到误差的,而误差反向传播的目的是使得生成器生成的假样本逐渐逼近为真样本当假样本是假的,label 却为1,而判别器判别假样本的输出接近于0,所以会形成很大的误差,误差反向传播,对生成器网络的参数进行大更新;反之,如果生成器生成的假样本足够真实,label 为1时,判别器判别假样本的输出就会接近1,所以误差很小,误差反向传播,生成器网络的参数只是微调,趋于稳定,这就完成了假样本向真样本逐渐逼近的过程,起到了迷惑判别器网络的目的。因此可以看出,只需要生成器网络自身生成的假样本集,因为有判别器网络这位“老师”,它会告诉生成器网络生成的样本的逼真程度。

综上,GAN 设计的巧妙之处,在于假样本在交替迭代训练过程中的真假变换,这也是博弈得以进行的关键之处。

二、GAN网络的优缺点

优点:

  • 能更好建模数据分布(图像更锐利、清晰)
  • 理论上,GANs 能训练任何一种生成器网络。其他的框架需要生成器网络有一些特定的函数形式,比如输出层是高斯的。
  • 无需利用马尔科夫链反复采样,无需在学习过程中进行推断,没有复杂的变分下界,避开近似计算棘手的概率的难题。

缺点:

  • 难训练,不稳定。生成器和判别器之间需要很好的同步,但是在实际训练中很容易D收敛,G发散。D/G 的训练需要精心的设计。
  • 模式缺失(Mode Collapse)问题。GANs的学习过程可能出现模式缺失,生成器开始退化,总是生成同样的样本点,无法继续学习。

总结

  GAN网络的学习资料有很多,也有很多学者在不断优化GAN网络生成一些其他GAN网络,大家如果还有什么疑惑,可以在评论区进行评论或者在网上进行查阅~

  参考网址如下:
  生成对抗网络(GAN)
  《大白话讲解 GAN 的训练机制(for 初学者)》
  生成对抗网络 – Generative Adversarial Networks | GAN

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值