让机器有创造力,一直是人工智能的最高理想之一。所以,生成任务就成了衡量机器创造力的标准。这些生成任务既包括生成文字(问答、对话、诗歌、小说),也包括生成图片和视频。在本期,我们就将介绍一下最近刷屏的人工智能作画背后的技术。
图片来源:pixabay
一、对抗式网络模型(GAN)的诞生
直到几年前,AI在生成任务上的表现都很糟糕。它们要么严格按照模板和规则复述,要么只能天马行空地胡言乱语。直到对抗生成网络模型的诞生,我们才能既让人工智能产生创意,又能让这些创意的质量得到控制。对抗生成网络英文简写是GAN。
它包括了一个生成器(G)和一个对抗(分类)器(A)。生成器需要不断训练自己,得到逼真的图片,骗过分类器;而分类器则要尽量将生成的图片和真实的图片区分开来。
GAN的作者伊恩·古德费洛(Ian Goodfellow)在原始论文里用一个假想的警察和假钞犯来举例子。分类器是警察,生成器是假钞工厂。一开始警察只会通过大致的图案分辨真假钞票,所以假钞工厂只要印出钞票的主要图案就能蒙混过关。为了解决假钞问题,警察开始检查钞票上的底纹、微缩文字和水印。于是,一大批无法仿造出带有这些特征的假钞工厂只能关门大吉,而剩下来的钞票显然伪造能力更强,也能造出更逼真的钞票。为了继续分辨出这些假钞,警察们发现这些假钞的用纸和真钞有所不同,手感也不一样,于是做假钞的人又要开始琢磨如何更精确地配比模仿真钞纸浆的化合物比例,做出手感一样的钞票……以此往复,验钞机的能力越来越强,但也在让假钞机的模仿能力变得更强。
二、在对抗中“学习”
具体来说,GAN中的生成器和分类器是两个神经网络。神经网络是机器学习中的一种基本技术,可以把它理解成一种“机器”:在吃进一个需要处理的数据后,吐出我们想要得到的结果。如果我们想要判断图片是狗还是猫,吐出的结果就是一个数字:1(代表狗)或0(代表猫);如果我们想要用人工智能翻译,输入是一种语言的文字,输出就是另一种语言的文字。
在未经训练的时候,神经网络只能输出完全不靠谱或随机的结果。但如果能找到大量已知正确输出的数据,就能让神经网络得到训练,从而得到正确答案。我们把这一过程叫做“学习”。GAN的分类器也有类似的机制,可以分辨一张图片是真的还是生成的。而生成器则能根据一个数字或向量生成一张图片。
刚开始的时候,生成器没有任何目标,只能生成随机的数据,例如模糊的影像甚至是一些纯粹的噪音。分类器可以经过简单的训练后,就能轻松地区分这些糟糕的图片和真实的图片。这时,生成器就要训练自己,尽量骗过简单的分类器。
随后,这一过程会不断重复。首先,分类器要学会如何辨别出增强版生成器吐出的图片,而生成器也要改进自己,从而骗过增强版的分类器。如此迭代数万乃至数十万次,生成器就能变得强大起来,生成较为逼真的图片。
虽然原理比较简单,但GAN的训练非常困难。在原始的GAN论文中,生成的图片其实质量也不高。但随后大量研究团队从不同方向上做了改进,让GAN产生了很多变体。其中,相当有名的是StyleGAN,它能生成极为逼真的人脸。这些人脸和任何已有的人脸都不相同,是由计算机全新创作出的面孔。
作为图片生成模型,GAN仍然有很多缺点。首先,GAN训练时很不稳定,有时整个模型都会在训练中崩溃。其次,不同的场景需要训练不同的GAN模型:如果想要生成猫的图片,就需要找一大堆猫的照片用于训练;如果要生成人脸的图片,就要想办法搞到大量人脸的图片。
但需求的种类是无限的,有些场景也会非常复杂,比如“我想生成一只猫在追一条狗”,这样的需求就很难通过GAN来解决。或者说,GAN只能理解专门用于某个场景的训练图片数据,而无法理解人类的语言,因此不能通过文字控制图片的生成。这两个问题被OpenAI的DALLE模型很大程度上解决了。我们将在下期视频中详细地介绍。
文章由科普中国-星空计划(创作培育)出品,转载请注明来源。
作者:管心宇 科普作者
审核:于旸 腾讯玄武实验室负责人