Bootstrap

生成对抗网络GANs(笔记一)主线

生成式对抗网络(Generative Adversarial Nets, GAN)

一、发展历程:

最开始接触GANs是因为想了解有关于在少量数据的情况下如何做数据增广。然后就了解到了DCGAN生成手写数字的案例,简直是惊为天人,然今才逐渐开始了解生成对抗网络的思想。到了后来一直想用生成对抗网络的思想做语音识别和语音合成这一方面,一直找到合适的资料。再后来,鬼使神差的想结合GANs来做毕业论文,摸摸索索的缓慢向前进发,苦于身边也没有什么人敢这一方面的东西,基本上所有事情都只能靠自己。

这里记录下关于GANs的前世今生:

http://www.lancezhange.com/2015/11/19/adversarial-samples/ 这个博文讲了生成式对抗网络的一个产生过程(姑且看作产生过程)。。。。对抗样本指的是真实样本加上一定的扰动而构成的合成样本,这样的样本看似和真实样本差别不大,但是却可以在通过分类器后产生不同的结果。举例来说,真实样本是一本书,但是对抗样本可能会得到字典的结果。再比如真实样本是一只猴子,但是分类结果可能会是长臂猿。当然,上面的举例或许有不合适的地方,而且我的观点是:实际上,分类模型的能力还涉及到许多的知识,有可能分类模型本身就有可能过拟合或者是欠拟合,谁又能说的准,深度学习的模型本来就是一个黑盒子。

Intriguing properties of neural networks, by Christian Szegedy at Google, et al,2014这篇论文的作者把这个思想对准了深度学习,认为深度学习并没有那么牛逼。其实学术界一直以来都有深度学习,人工智能等方面的争议,有人赞成自然就有人反对,本来很多东西就被吃瓜群众过分夸大了,各种泡沫。这里还想多句嘴:整天吹嘘人工智能的那群人,玩着各种思想,各种的拉投资,早就已经赚得个盆满钵满了。二实际上,真正做出来多少成果,自己心里应该都有点b数。

https://www.kdnuggets.com/2015/07/deep-learning-adversarial-examples-misconceptions.html这里一篇论文有关于对抗样本的一些讲解。主要思想是:深度学习被他们证明受对抗样本的干扰最小;线性模型才是造成分类结果不一致的主要原因,而并非是非线性因素;在数据处理的过程中,因为对抗样本在实际情况中不一定会出现,因此在训练阶段拒绝处理对抗样本要比吧对抗样本错误分类要好,但这个结果并不是让人满意的解决方案;对抗样本的产生不一定要访问模型本身才能做到,可以自己训练;对抗样本上使用正则化并不能有效。

思维上的碰撞会使得理论更加的完善,这一点都不假。人们又开始思考机器和人的视觉真正差异的地方,(Deep Learning’s Deep Flaws)’s Deep Flaws, by Zachary Chase Lipton这篇文章继续分析,对抗样本对深度学习模型的表现不只是在深度学习方面才会有,各种机器学习都不会有100%的分类正确率。这些都推动了模型抗干扰能力方面的研究,而开始引用的博文里面有提到:现在相关领域的论文,无深度,不论文,灌水的太多,随便改一改模型的架构,调一调参数就能发表,结果好了也不知道好的原因。所以对抗样本或许可以用来评价这些模型构架,使得可以用对抗样本来训练,或许可以提高模型的能力,这样,提出了对抗训练的概念(adversarial training),通过这种方式提高模型的鲁棒性。

后来,GoodFellow在Generative Adversarial Networks, by Ian Goodfellow, et al中提出了生成式对抗网络的思想用于对抗训练,对抗训练产生的结果可以产生人眼无法分辨的样本,这算得上是对抗训练的开山之作,现在这篇论文的引用好像都过万了,而且根据谷歌公司的统计,最近两年的等会论文,在GANs方面的论文,数量上都有超过深度学习的趋势。在 GANs 中,包含一个生成模型G和一个判别模型D,D要判别样本是来自G还是真实数据集,而G的目标是生成能够骗过D的对抗样本,可以将G看做假币生产者,而D就是警察,通过G和D的不断交手,彼此的技能都会逐渐提高,最终使得G生产的假币能够以假乱真。后来又有人用拉普拉斯金字塔来构建生成模型,都取得了一定的效果。

但是GANs也有很多的不足之处,论文的作者提到了原始的模型有数据坍塌的问题,会生成很多奇奇怪怪的结果。比如猫有4只眼睛这些问题。之后Conditional generative adversarial nets for convolutional face generation 条件生成对抗网络(CGANs)被提出,对于原始的GAN模式有了比较大的改善。同时期还有很多优秀的论文比如DCGAN,WGAN等这里就不一一列举了。

二、文献跟踪

另外,关于GAN的跟踪请看这里:https://github.com/hindupuravinash/the-gan-zoo列出了各种版本的GANs

;