雷锋网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像素的点阵图来构建。而由于它所具有的高解析度,这些模型很容易会生成一些连续的图像结构,比如会画出三只眼睛的猫,或是几个头的狗。
Ian Goodfellow在NIPS 2016 Tutorial展示GANs时所采用的图片采用128*128ImageNet数据集训练的GANs模型,可能会产生像上图这样的诡异情况。
而在谷歌大脑研究者的工作中,他们受人类绘画的启发,采用了更低维的、基于向量的方式。Sketch-rnn基于seq2seq(雷锋网注:前段时间雷锋网做过覆盖和报道)的自动编码框架,结合变分推断并采用了超网络作为RNN的核心。
seq2seq的作用在于训练潜在向量(latent vector),即一个能够将输入序列编码为浮点数向量的网络,以此在尽可能逼真地模拟输入序列的情况下,利用解码器重构输出序列。
实验过程
在模型中,研究者故意往latent vector中加入了一些噪声,而实验结果呈现,模型在噪声的干扰下不能非常准确地重现输入的内容,但依然捕捉到了连同噪声在内的关键信息。解码器将潜在向量进行处理,并产生了一个能构建简笔画的动态序列。研究者们输入了几个小猫的简笔画内容,而机器进行后重构产生的图画又是怎样的呢?答案就是像下面这样:
模型通过训练人类所画的小猫简笔画而重构的图画值得强调的是,模型并不是简单地照猫画虎,面是学习了输入特征后,重新按照理解再画图的。也就是说,模型是学会了“画猫的方式”后,根据自己的理解再作图的。
比如,当研究者故意画了一个三只眼睛的猫作为输入,模型基于对常识的认知,生成的依然是两只眼的猫。而为了拓宽系统认识物体的多样性,研究者加入了迥然不同的内容,比如一把牙刷。从图中可以发现,系统依然将牙刷抽象成了一只猫的样子(比如尖耳朵和触须)。这一结果表明,神经网络已经学会了从输入中抽象出猫的概念,也能根据潜在向量重构新的简笔画。
如果你还是将信将疑的话,下面这个小猪的例子或许可以说服你。八条腿的小猪和卡车“乱入”了训练数据中,但在神经网络的理解中,小猪只有四条腿,而卡车看起来也具有小猪的样子(比如有条小尾巴)。
为了了解为何潜在向量是如何抽象出动物的体征概念,研究者首先采用了两幅不同的小猪画(一幅只有头,一幅是全身)作为不同的潜在向量。可以看到,潜在向量掌握了鼻子与头的相对位置,并且在逐步的尝试后形成了身体和腿的概念。
那么,如果是不同的动物进行融合,如何整合它们的特征?研究者分别输入了一个猫头和一个全身小猪的图像,从左往右看可以发现,小猫开始长出尾巴和身子,最后猫的头逐步被抽象化,最后变成一只小猪。当然,反过来试验的结果也是一样的。
这个实验意味着潜在向量确实对抽象的概念特征进行了解码,但我们是否能采用这些特征扩大绘画的灵活性,比如给小猫的头加上身子?
在学习中,系统懂得了一些“公式”研究者发现可将身体的部分进行分类,采用一些公式性的编码让系统理解内容,比如将不同的潜在向量加在“猫头”上,就能得到想要的结果(猫头 身子=全身猫)。这一举措得以让研究者更好地探究模型是如何组织它的潜在空间(latent space),以表达不同的概念的。
创造性应用
研究者不仅为实验结果而振奋,也同时为sketch-rnn未来可能的应用方向而高兴。比如图案设计者们能够用该网络生成非常多看起来相似,但实际上又有各自特色、能用于不同场景的设计图案。
从框内图案生成的相似但各具风格的小猫而就像我们先前看到的一样,画小猪的模型如果加入了卡车的图画,也能够画出有着小猪特征的卡车。研究者将这一结果拓展开来,认为这能够给目标客户提供抽象设计的灵感。
在向小猫模型中输入了四把姿态各异的椅子图案之后,模型学习了椅子的特征,进而生成了各种具有椅子特征的小猫,并产生了多种设计方案。研究者相信,将不同种类的事物交给神经网络,可能产生意想不到的交互和想象。
此外,研究者们还将sketch-rnn的模块解码成单独模型,让系统尝试在不完整图画的基础上“脑补”内容。下图是系统脑补出的一些灵感闪现的图案。
甚至,同一个模型也能充分发挥机器的想象力。研究者用圆形和正方形的图案让系统自由作画,进而有了火烈鸟、蚂蚁、猫头鹰、直升机等等结果。设计者在研究这些机器产生的图案时在,也能够设计出富有创造力的作品。
Sketch-rnn能够让机器作为人类灵感的来源,也可以有非常多的应用。而机器与人类的交互与沟通,在未来的想象空间是无穷的。