一些 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 的模块解码成单独模型,让系统尝试在不完整图画的基础上「脑补」内容。下图是系统产生出的一些灵感闪现的图案。
甚至,同一个模型也能充分的发挥机器的想象力。研究者用圆形和正方形的图案让系统自由作画,进而有了火烈鸟、蚂蚁、猫头鹰、直升机等等结果。设计者在研究这些机器产生的图案时在,也能够设计出富有创造力的作品。