17种GAN变体的Keras实现

更新于 2018年3月2日 机器学习
我来说两句
wx:关注前沿科技   网页版 2018-03-01 19:52
入门 深度学习 视觉 算法 自然语言处理 GPU Ian Goodfellow 分类 聚类 可视化 神经网络 智能汽车
「17种GAN变体的Keras实现请收好 | GitHub热门开源代码」从2014年诞生至今,生成对抗网络(GAN)始终广受关注,已经出现了200多种有名有姓的变体。这项“造假神技”的创作范围,已经从最初的手写数字和几百像素小渣图,拓展到了壁纸级高清照片、明星脸,甚至艺术画作。心痒难耐想赶快入门?通过自己动手、探索模型代码来学习,当然是坠吼的~如果用简单易上手的Keras框架,那就更赞了。一位GitHub群众eriklindernoren就发布了17种GAN的Keras实现,得到Keras亲爸爸François Chollet在Twitter上的热情推荐。干货往下看:带辅助分类器的GAN,全称Auxiliary Classifier GAN。在这类GAN变体中,生成器生成的每张图像,都带有一个类别标签,鉴别器也会同时针对来源和类别标签给出两个概率分布。论文中描述的模型,可以生成符合1000个ImageNet类别的128×128图像。code:paper:这种模型简称AAE,是一种概率性自编码器,运用GAN,通过将自编码器的隐藏编码向量和任意先验分布进行匹配来进行变分推断,可以用于半监督分类、分离图像的风格和内容、无监督聚类、降维、数据可视化等方面。在论文中,研究人员给出了用MNIST和多伦多人脸数据集 (TFD)训练的模型所生成的样本。code:paper:全称Bidirectional GAN,也就是双向GAN。这种变体能学习反向的映射,也就是将数据投射回隐藏空间。Code:Paper:虽然简称和上一类变体只差个i,但这两种GAN完全不同。BGAN的全称是boundary-seeking GAN。原版GAN不适用于离散数据,而BGAN用来自鉴别器的估计差异度量来计算生成样本的重要性权重,为训练生成器来提供策略梯度,因此可以用离散数据进行训练。BGAN里生成样本的重要性权重和鉴别器的判定边界紧密相关,因此叫做“寻找边界的GAN”。Code:Paper:这种模型能用半监督学习的方法,修补图像上缺失的部分。Code:Paper:条件式生成对抗网络,也就是conditional GAN,其中的生成器和鉴别器都以某种外部信息为条件,比如类别标签或者其他形式的数据。Code:Paper:这是一个修补图像的卷积神经网络(CNN),能根据周围像素来生成图像上任意区域的内容。Code:Paper:这类变体全名叫coupled GANs,也就是耦合对抗生成网络,其中包含一对GAN,将两个生成模型前几层、两个辨别模型最后几层的权重分别绑定起来,能学习多个域的图像的联合分布。Code:Paper:这个模型是加州大学伯克利分校的一项研究成果,可以在没有成对训练数据的情况下,实现图像风格的转换。这些例子,你大概不陌生:Code:Paper:论文原作者开源了Torch和PyTorch的实现代码,详情见项目主页:深度卷积生成对抗网络模型是作为无监督学习的一种方法而提出的,GAN在其中是最大似然率技术的一种替代。Code:Paper:这种变体能够用两组不同域的无标签图像来训练图像翻译器,架构中的主要GAN学习将图像从域U翻译到域V,而它的对偶GAN学习一个相反的过程,形成一个闭环。Code:Paper:对,就是Ian Goodfellow那个原版GAN。Code:Paper:这个变体是GAN的信息论扩展(information-theoretic extension),能完全无监督地分别学会不同表示。比如在MNIST数据集上,InfoGAN成功地分别学会了书写风格和数字的形状。Code:Paper:最小平方GAN(Least Squares GAN)的提出,是为了解决GAN无监督学习训练中梯度消失的问题,在鉴别器上使用了最小平方损失函数。Code:Paper:这个模型大家应该相当熟悉了。它和CycleGAN出自同一个伯克利团队,是CGAN的一个应用案例,以整张图像作为CGAN中的条件。在它基础上,衍生出了各种上色Demo,波及猫、人脸、房子、包包、漫画等各类物品,甚至还有人用它来去除(爱情动作片中的)马赛克。Code:Paper:Pix2Pix目前有开源的Torch、PyTorch、TensorFlow、Chainer、Keras模型,详情见项目主页:这个变体的全称非常直白:半监督(Semi-Supervised)生成对抗网络。它通过强制让辨别器输出类别标签,实现了GAN在半监督环境下的训练。Code:Paper:这种变体全称Wasserstein GAN,在学习分布上使用了Wasserstein距离,也叫Earth-Mover距离。新模型提高了学习的稳定性,消除了模型崩溃等问题,并给出了在debug或搜索超参数时有参考意义的学习曲线。本文所介绍repo中的WGAN实现,使用了DCGAN的生成器和辨别器。Code:Paper:最后补充一点,作者为了让没有GPU的人也能测试这些实现,比较倾向于使用密集层(dense layer),只要在模型中能得出合理的结果,就不会去用卷积层。— 完 —加入社群量子位AI社群13群开始招募啦,欢迎对AI感兴趣的同学,加小助手微信qbitbot5入群;此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。进群请加小助手微信号qbitbot5,并务必备注相应群的关键词~通过审核后我们将邀请进群。(专业群审核较严,敬请谅解)诚挚招聘量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。量子位 QbitAI · 头条号签约作者վ’ᴗ’ ի 追踪AI技术和产品新动态 via: http://mp.weixin.qq.com/s?__biz=MzIzNjc1NzUzMw==&mid=2247494969&idx=2&sn=d3584a3987aa66f125c6643fa37546b2&scene=0#wechat_redirect

 

回复