近期,由英伟达的AI团队为GAN创造了一种新的生成器,连GAN之父Goodfellow也忍不住发出称赞。从下图我们可以看到很多的清晰的人像,但这些并不是照片,而是一组完全由计算机生成的图片。
这个结构不需要人类监督,可以自动分离图像中的各种属性。这样,在或粗糙或精细的不同尺度上,人类便能自如地控制GAN的生成。
英伟达研究人员在论文中写道,他们提出的新架构可以完成自动学习,无监督地分离搞基属性以及生成图像中的随机变化,并且可以合成进行更直观且特定于比例的控制。也就是说,这种新的生成器在生成和混合图像,特别是人脸图像时,可以更好地感知图像之间有意义的变化,并且在各种尺度上针对这些变化做出引导。
研究人员使用的旧系统可能产生两个“不同”的面部,这两个面部其实大致相同,只是一个人的耳朵被抹去了,两个人的衬衫是不同的颜色,而这些并不是真正的面部特异性特征,不过系统并不知道这些是无需重点关注的变化,而当成了两个人来处理。
1.Generation
什么是生成(generation)?就是模型通过学习一些数据,然后生成类似的数据。让机器看一些动物图片,然后自己来产生动物的图片,这就是生成。
以前就有很多可以用来生成的技术了,比如 auto-encoder(自编码器),结构如下图:
你训练一个 encoder,把 input 转换成 code,然后训练一个 decoder,把 code 转换成一个 image,然后计算得到的 image 和 input 之间的 MSE(mean square error),训练完这个 model 之后,取出后半部分 NN Decoder,输入一个随机的 code,就能 generate 一个 image。
但是 auto-encoder 生成 image 的效果,当然看着很别扭啦,一眼就能看出真假。所以后来还提出了比如VAE这样的生成模型,我对此也不是很了解,在这就不细说。
上述的这些生成模型,其实有一个非常严重的弊端。比如 VAE,它生成的 image 是希望和 input 越相似越好,但是 model 是如何来衡量这个相似呢?model 会计算一个 loss,采用的大多是 MSE,即每一个像素上的均方差。
第一张,我们认为是好的生成图片,第二张是差的生成图片,但是对于上述的人来说,这两张图片计算出来的 loss 是一样大的,所以会认为是一样好的图片。
这就是上述生成模型的弊端,用来衡量生成图片好坏的标准并不能很好的完成想要实现的目的。于是就有了下面要讲的 GAN。
2.GAN
GAN 是如何生成图片的呢?首先大家都知道 GAN 有两个网络,一个是 generator,一个是 discriminator,从二人零和博弈中受启发,通过两个网络互相对抗来达到最好的生成效果。流程如下:
主要流程类似上面这个图。首先,有一个一代的 generator,它能生成一些很差的图片,然后有一个一代的 discriminator,它能准确的把生成的图片,和真实的图片分类,简而言之,这个 discriminator 就是一个二分类器,对生成的图片输出 0,对真实的图片输出 1。
接着,开始训练出二代的 generator,它能生成稍好一点的图片,能够让一代的 discriminator 认为这些生成的图片是真实的图片。然后会训练出一个二代的 discriminator,它能准确的识别出真实的图片,和二代 generator 生成的图片。以此类推,会有三代,四代......n 代的 generator 和 discriminator,最后 discriminator 无法分辨生成的图片和真实图片,这个网络就拟合了。
3.GAN2.0到GAN3.0
使用基于风格的生成器的GAN2.0,在各个方面都优于传统的GAN。英特尔团队相信,对高阶属性与随机效应分离的研究,以及中间隐空间(intermediate latent space)的线性,将会对提高GAN合成的理解和可控性有很大的帮助。平均路径长度度量可以很容易地用作训练中的正则化器,也许线性可分度量的某些变体也可以作为一个正则化器。
除了人像,GAN 2.0还可以生成房间、汽车等各种场景。有了这样的技术,未来再也不用发愁图像数据集。毕竟这些计算机生成的“人”,已经如此的真实。总的来说,在训练期间直接塑造中间隐空间(intermediate latent space)的方法将为未来的工作提供有趣的途径。而未来,GAN3.0将会突破瓶颈,达到更令人瞩目的视觉成就。
4.结语
目前国内做计算机视觉的以旷视科技Face++、商汤科技、极链科技Video++为代表的AI头部企业为代表,以算法为核心竞争力的AI初创企业,扎根于技术,都在计算机视觉上做出了卓越的成就。计算机视觉的研究和发展具有极其重要的意义,不但满足人工智能应用的需要,如在计算机实现人工的视觉系统的需要。其次这些成果可以安装在计算机和各种机器上,使计算机和机器人能够具有“看”和创作图像的能力。视觉计算模型的研究结果反过来对于我们进一步认识和研究人类视觉系统本身的机理,甚至人脑的机理,也同样具有相当大的参考意义。