机器学习系列 | 利用生成式对抗神经网络(GANs),生成二次元萌妹老婆不是梦?

Posted 程序鱼视觉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习系列 | 利用生成式对抗神经网络(GANs),生成二次元萌妹老婆不是梦?相关的知识,希望对你有一定的参考价值。



文章部分内容摘自makegirlsmoe&机器之心


图源于网络




1. 先吹吹水


我们首先来看一张图:


图1 一堆大头照


        一眼看过去,这是一幅再普通不过的外国友人的贴脸特写照片。


        假如让你根据这一列的人脸所属性别、肤色、发色、胡须甚至表情仔细研究,你会发现一些说不出来的感觉吗?


        来揭晓谜底,图1中,第一行所有的照片都是计算机通过PG-GAN根据真实人脸图像学习而虚空生成出来的样本(假样本),第二行才是在现实生活中真实存在的人(即真样本)!


PG-GAN: 

Progressive Growing of GANS for Improved Quality, Stability, and Vvariation 

中文名:渐进式增长的生成式对抗网络

        可能上面的例子令你难以置信,可这就是GAN(生成式对抗网络)的力量所在。


        GAN从被提出到现在为止,已经有过百种的改进方法,如PG-GAN、C-GAN、E-GAN等等。本文暂不对各种改进式的GAN进行讲解,我们可以先来了解一下最基础的GAN。




2. 到底什么是生成式对抗网络?


假设有一对情侣,男生叫小李,女生叫小欣。男生小李是一名菜鸟摄影师。


另外还有一个工具人名为小余。小余是一名摄影名手。(小余:“淦淋娘!”)


于是有一天,就出现了以下对话:


小李:哎,你看我给你拍的好不好?

小欣:这是什么鬼,你不能学学小余的构图吗?

小李:哦

……

小李:这次你看我拍的行不行?

小欣:你看看你的后期,再看看小余的后期吧,呵呵

小李:哦

……

小李:这次好点了吧?

小欣:呵呵,我看你这辈子是学不会摄影了

……

小李:这张抓拍你的图片,你觉得怎么样?

小欣:欸,是小余拍的吗?拍的不错呀,我拿去当头像了。

小李:其实是我拍的

小欣:??你摄影技术变这么好了?

机器学习系列 | 利用生成式对抗神经网络(GANs),生成二次元萌妹老婆不是梦?

图2 

        上面这段对话讲述了一位“男朋友摄影师”的成长历程。


        文章开头描述的场景中有两个参与者,一个是摄影师(小李),一个是摄影师的女朋友(小欣)。男生一直试图拍出像众多优秀摄影师一样的好照片,而女生一直以挑剔的眼光找出“自己男朋友”拍的照片和“别人家的男朋友”拍的照片的区别。


于是两者的交流过程类似于:

  1. 男生拍照片 ->女生分辨男友拍的照片和自己喜欢的照片的区别->男生根据反馈改进自己的技术,拍新的照片->女生根据新的照片继续提出改进意见->……

  2. 这个过程直到均衡出现:即女生不能再分辨出“自己男朋友”拍的照片和“别人家的男朋友”拍的照片的区别。这个时候,女生就糊涂了~


生成式对抗网络的原理和这个过程是类似的!

  1. 我们将视线回看到生成模型,以图像生成模型举例。假设我们有一个图片生成模型(generator),它的目标是生成一张真实的图片。与此同时我们有一个图像判别模型(discriminator),它的目标是能够正确判别一张图片是生成出来的还是真实存在的。那么如果我们把刚才的场景映射成图片生成模型和判别模型之间的博弈,就变成了如下模式:生成模型生成一些图片->判别模型学习区分生成的图片和真实图片->生成模型根据判别模型改进自己,生成新的图片->····

  2. 这个场景直至生成模型与判别模型无法提高自己——即判别模型无法判断一张图片是生成出来的还是真实的而结束,此时生成模型就会成为一个完美的模型。这种相互学习的过程听起来是不是很有趣?


上述这种博弈式的训练过程,如果采用神经网络作为模型类型,则被称为生成式对抗网络(GAN):

        假设我们有两个网络,G(Generator)和D(Discriminator)。正如它的名字所暗示的那样,它们的功能分别是:


  • G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)。

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


        在训练过程中,生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。而D的目标就是尽量把G生成的图片和真实的图片分别开来。这样,G和D构成了一个动态的“博弈过程”。

        最后博弈的结果是什么?在最理想的状态下,G可以生成足以“以假乱真”的图片G(z)。对于D来说,它难以判定G生成的图片究竟是不是真实的,因此D(G(z)) = 0.5。

        这样我们的目的就达成了:我们得到了一个生成式的模型G,它可以用来生成图片。


机器学习系列 | 利用生成式对抗神经网络(GANs),生成二次元萌妹老婆不是梦?

图3 GAN的流程




3. 生成式对抗网络在未来有什么运用?

GANs被称为是“过去20年内在深习上最酷的想法”,既然是最酷的想法,那就会有最酷的应用,一起来看看吧!

在GAN发展的头几年,取得了令人印象深刻的进展。在2017年,GAN生成的1024×1024的图像就曾经让星探上当。在未来几年,我们可能会看到GANs生成的高质量视频。GAN或许将会被应用至商业!下面来列举一些实际应用吧:

① 创造动漫人物

游戏开发和动画制作成本高昂,需要雇佣许多艺术家来完成相对常规的任务。GAN可以自动生成动画角色并为其上色。

机器学习系列 | 利用生成式对抗神经网络(GANs),生成二次元萌妹老婆不是梦?

图4 GAN生成”虚空“二次元萌妹


        根据图3,我想生成具有相似主要视觉特征的图像(小余:我永远喜欢长发),并与之同时结合不同的属性的妹子,怎么办?

        研究者可以固定随机噪声并且采样随机先验,结果也很不错:

机器学习系列 | 利用生成式对抗神经网络(GANs),生成二次元萌妹老婆不是梦?

图5 GAN生成具有相似视觉特征的二次元萌妹


        另外,通过固定前提和采样随机噪声,该模型可以生成具有不同视觉特征,但具有相同属性的图像:

机器学习系列 | 利用生成式对抗神经网络(GANs),生成二次元萌妹老婆不是梦?

图6 具有不同视觉特征,但具有相同属性的二次元萌妹


参考论文:使用人工智能创造动漫人物!(Create Anime Characters with A.I. !)

链接如下:

https://makegirlsmoe.github.io/assets/pdf/technical_report.pdf


② 人物姿态图像生成

        通过额外的姿态输入,我们可以将图像转换成不同的姿态。例如,右上角的图像是ground truth,右下角的图像是生成的图像。

机器学习系列 | 利用生成式对抗神经网络(GANs),生成二次元萌妹老婆不是梦?

图7

机器学习系列 | 利用生成式对抗神经网络(GANs),生成二次元萌妹老婆不是梦?

图8 生成的图像

③ 图像跨域转换

        跨域转换GANs很可能是第一批的商业应用。这些GANs将图像从一个领域(如真实的风景)变换到另一个领域(莫奈或梵高的绘画。

图9 斑马变成马,马变成斑马




4. 后话

        未来的在”程序鱼视觉“中,我会继续写一些相关的文章给大家分享,考虑到受众在cs领域的了解深浅不一致,所以我还是会以一个”初步探索“的方式去和大家一起分享,好让大家带着闲适的心情去阅读!

        OK,咱们下次再见!

图10 没有福利,放个年初在晒太阳的照片吧!

以上是关于机器学习系列 | 利用生成式对抗神经网络(GANs),生成二次元萌妹老婆不是梦?的主要内容,如果未能解决你的问题,请参考以下文章

经典生成式对抗网络(GANs)的理解

对抗生成网络GANs论文精读及研究方向思考

生成式对抗网络(Generative Adversarial Networks,GANs)

价值连城 生成对抗网络(Gans) 的作者Ian Goodfellow的采访 给深度学习从业者的建议

简述一下生成对抗网络GAN(Generative adversarial nets)模型?

综述 | 生成式对抗网络异常检测