谷歌大脑教机器画简笔画 来看神经网络的大作长啥样

雷锋网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 能够让机器作为人类灵感的来源,也可以有非常多的应用。而机器与人类的交互与沟通,在未来的想象空间是无穷的。

极客网企业会员

免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。

2017-04-14
谷歌大脑教机器画简笔画 来看神经网络的大作长啥样
虽然简笔画与实物的逼真程度相去甚远,但即便是一个小孩也能轻易理解图案中的内容。原因其实很简单,因为人类懂得通过判断图案中的关键特征,与现实物体进行匹配。那么,如

长按扫码 阅读全文