谷歌大脑教机器画简笔画,神经网络的大作都长啥样?

文章正文
发布时间:2024-11-02 00:10

雷锋网AI科技评论按:虽然简笔画与实物的逼真程度相去甚远,但即便是一个小孩也能轻易理解图案中的内容。原因其实很简单,因为人类懂得通过判断图案中的关键特征,与现实物体进行匹配。那么,如果是用 RNN 教机器学会画画,它是否能抽象出画中的概念,并用同样的方式作画呢?谷歌大脑的 David Ha 近日撰文指出了他与 Douglas Eck 在研究 sketch-rnn 时的一些想法和观点。

人们在传递思想、进行交流时有一个非常关键的要素,那就是懂得如何用抽象的视觉内容进行沟通。我们从小就培养孩子用画笔描述事物的能力,画出一个物体甚至表达自己的情绪。这些简笔画并不一定像照片一样逼真,但诚然,它们传递出了人们如何重现与重构身边事物的方法。

谷歌大脑教机器画简笔画,神经网络的大作都长啥样?

一些 sketch-rnn 创作的画

在 David Ha 与 Douglas Eck 合作的论文《A Neural Representation of Sketch Drawings》中,研究者设计了一个名为「sketch-rnn」的生成式 RNN,它能够用简单的笔触描绘出日常物体,系统旨在训练机器如何像人类一样提炼事物的抽象概念。

研究者在一个手绘 sketches 数据集中进行训练,控制提笔落笔的时间及方向,进而创造一个具有可观前景的应用:不仅能帮助艺术家迸发艺术灵感,还能教授学生绘画的基本技巧。

鉴于采用神经网络之时,生成模型用于训练的图像过多,图像以 2D 像素的点阵图来构建。而由于它所具有的高解析度,这些模型很容易会生成一些连续的图像结构,比如会画出三只眼睛的猫,或是几个头的狗。

谷歌大脑教机器画简笔画,神经网络的大作都长啥样?


采用 128*128 ImageNet 数据集训练的 GANs 模型,可能会产生像上图这样的诡异情况。

上图为 Ian Goodfellow 在 NIPS 2016 Tutorial 展示 GANs 时所采用的图片

而在谷歌大脑研究者的工作中,他们受人类绘画的启发,采用了更低维的、基于向量的方式。Sketch-rnn 基于 seq2seq(雷锋网注:前段时间雷锋网做过覆盖和报道)的自动编码框架,结合变分推断并采用了超网络作为 RNN 的核心。

seq2seq 的作用在于训练隐向量(latent vector),即一个能够将输入序列编码为浮点数向量的网络,以此在尽可能逼真地模拟输入序列的情况下,利用解码器重构输出序列。

谷歌大脑教机器画简笔画,神经网络的大作都长啥样?

实验过程

在模型中,研究者故意往 latent vector 中加入了一些噪声,而实验结果呈现,模型在噪声的干扰下不能非常准确地重现输入的内容,但依然捕捉到了连同噪声在内的关键信息。解码器将隐向量进行处理,并产生了一个能构建简笔画的动态序列。研究者们输入了几个小猫的简笔画内容,而机器进行后重构产生的图画又是怎样的呢?答案就是像下面这样:

谷歌大脑教机器画简笔画,神经网络的大作都长啥样?

模型通过训练人类所画的小猫简笔画而重构的图画

值得强调的是,模型并不是简单地照猫画虎,面是学习了输入特征后,重新按照理解再画图的。也就是说,模型是学会了「画猫的方式」后,根据自己的理解再作图的。

比如,当研究者故意画了一个三只眼睛的猫作为输入,模型基于对常识的认知,生成的依然是两只眼的猫。而为了拓宽系统认识物体的多样性,研究者加入了迥然不同的内容,比如一把牙刷。从图中可以发现,系统依然将牙刷抽象成了一只猫的样子(比如尖耳朵和触须)。这一结果表明,神经网络已经学会了从输入中抽象出猫的概念,也能根据隐向量重构新的简笔画。

谷歌大脑教机器画简笔画,神经网络的大作都长啥样?

如果你还是将信将疑的话,下面这个小猪的例子或许可以说服你。八条腿的小猪和卡车「乱入」了训练数据中,但在神经网络的理解中,小猪只有四条腿,而卡车看起来也具有小猪的样子(比如有条小尾巴)。

谷歌大脑教机器画简笔画,神经网络的大作都长啥样?

为了了解为何隐向量是如何抽象出动物的体征概念,研究者首先采用了两幅不同的小猪画(一幅只有头,一幅是全身)获得不同的隐向量,并在这两个隐向量计算差值,并在生成简笔画后进行可视化。可以看到,隐向量掌握了鼻子与头的相对位置,并且在逐步的尝试后形成了身体和腿的概念。

谷歌大脑教机器画简笔画,神经网络的大作都长啥样?

那么,如果是不同的动物进行融合,如何整合它们的特征?研究者分别输入了一个猫头和一个全身小猪的图像,从左往右看可以发现,小猫开始长出尾巴和身子,最后猫的头逐步被抽象化,最后变成一只小猪。当然,反过来试验的结果也是一样的。

谷歌大脑教机器画简笔画,神经网络的大作都长啥样?


这个实验意味着隐向量确实对抽象的概念特征进行了解码,但我们是否能采用这些特征扩大绘画的灵活性,比如给小猫的头加上身子?

谷歌大脑教机器画简笔画,神经网络的大作都长啥样?

在学习中,系统懂得了一些「公式」

研究者发现可将身体的部分进行分类,采用一些公式性的编码让系统理解内容,比如将不同的隐向量加在「猫头」上,就能得到想要的结果(猫头+身子=全身猫)。这一举措得以让研究者更好地探究模型是如何组织它的隐空间(latent space),以表达不同的概念。

创造性应用

研究者不仅为实验结果而振奋,也同时为 sketch-rnn 未来可能的应用方向而高兴。比如图案设计者们能够用该网络生成非常多看起来相似,但实际上又有各自特色、能用于不同场景的设计图案。

谷歌大脑教机器画简笔画,神经网络的大作都长啥样?

从框内图案生成的相似但各具风格的小猫

而就像我们先前看到的一样,画小猪的模型如果加入了卡车的图画,也能够画出有着小猪特征的卡车。研究者将这一结果拓展开来,认为这能够给设计者提供抽象设计的灵感。

谷歌大脑教机器画简笔画,神经网络的大作都长啥样?

在向小猫模型中输入了四把姿态各异的椅子图案之后,模型学习了椅子的特征,进而生成了各种具有椅子特征的小猫,并产生了多种设计方案。研究者相信,将不同种类的事物交给神经网络,可能产生意想不到的交互和想象。

谷歌大脑教机器画简笔画,神经网络的大作都长啥样?

此外,研究者们还将 sketch-rnn 的模块解码成单独模型,让系统尝试在不完整图画的基础上「脑补」内容。下图是系统产生出的一些灵感闪现的图案。

谷歌大脑教机器画简笔画,神经网络的大作都长啥样?

甚至,同一个模型也能充分发挥机器的想象力。研究者用圆形和正方形的图案让系统自由作画,进而有了火烈鸟、蚂蚁、猫头鹰、直升机等等结果。设计者在研究这些机器产生的图案时在,也能够设计出富有创造力的作品。

谷歌大脑教机器画简笔画,神经网络的大作都长啥样?

Sketch-rnn 能够让机器作为人类灵感的来源,也可以有非常多的应用。而机器与人类的交互与沟通,在未来的想象空间是无穷的。

雷峰网版权文章,未经授权禁止转载。详情见转载须知。

谷歌大脑教机器画简笔画,神经网络的大作都长啥样?