谷歌大脑团队研究员David Ha和Douglas Eck今天在博客中宣布,他们用“Quick,Draw!”游戏的玩家涂鸦作品教会了人工智能像人类一样画画,并发表了论文《A Neural Representation of Sketch Drawings》来详细解释这个名为Sketch-RNN的项目。 为训练Sketch-RNN网络,研究员们收集了人类在“Quick,Draw!”中画的75类、70000幅涂鸦,直播,还记录了人类画画的整个过程:画笔的运动轨迹、何时落笔何时停止等等。 在训练过程中,AI还对自己所画的东西产生了抽象概念,比如说,它知道猫应该有两只眼睛,不会画出这样的惊悚作品: 两位研究员的博客全文 抽象的可视通信是人们相互之间表达思想的重要部分。从儿童时代开始,人类就开始形成用画笔描绘对象、甚至情绪的能力。这种简单的涂鸦可能与真实照片有很大差异,但却能告诉我们,人类如何对周围世界的画面进行展现和重建。 △Sketch-RNN生成的绘画 在我们近期的论文《A Neural Representation of Sketch Drawings》中,展示了一种生成性的循环神经网络(RNN),可以绘制普通物体的涂鸦,其目标是训练机器以类似人类的方式来画画,并概括抽象的概念。我们使用由手绘涂鸦构成的数据集去训练我们的模型,而这些涂鸦的绘制由一系列控制画笔的肢体运动组成:画笔运动的方向,何时提笔,何时停止绘画。通过这样的训练,我们创造了一种可能有多种用途的模型,例如协助艺术家的创意过程,以及指导学生学习绘画。 尽管基于神经网络的图像生成模型已获得了大量研究,但大部分这类工作都专注于由二维像素网格构成的图像建模。目前,这些模型被用于生成具有真实感的图像,但这样做的关键挑战在于,如何生成结构协调的图像。例如,这些模型生成的宠物猫有时会出现三只眼睛,而生成宠物狗可能有好几个脑袋。 △Ian Goodfellow,NIPS 2016 Tutorial 在这项工作中,我们基于人类的绘画方式研究了较低维度、基于向量的表现方式。我们的模型Sketch-RNN基于seq2seq自动编码框架,利用了变分推断,并使用超网络(hypernetworks)作为可重复的神经网络单元。使用seq2seq自动编码器的目的是训练神经网络将输入语句编码为一个浮点数向量,即隐藏向量,并利用这一隐藏向量和解码器去生成输出序列,以尽可能接近的方式重建输入序列。 △Sketch-RNN原理图解 在我们的模型中,我们有意向隐藏向量加入了噪声信号。在论文中,我们展示了,通过在编码器和解码器之间的通信信道中引入噪声,这一模型无法再准确重建输入涂鸦,而是必须学会捕捉输入涂鸦的本质。我们的解码器获取这一隐藏向量,生成动作序列,用于绘制新涂鸦。在以下图片中,我们将多幅猫涂鸦输入至编码器,并利用解码器生成了重建的涂鸦。 需要强调的一点在于,重建的猫涂鸦并不是输入涂鸦的直接模仿,而是与输入对象类似的新涂鸦。为了证明,这一模型并非简单地模仿输入序列,而是学会了人类涂鸦的方式,我们可以向编码器输入非标准的涂鸦。 当我们向编码器输入三只眼睛的猫涂鸦时,模型生成了外形类似,但只有两只眼睛的猫涂鸦。这表明,模型已经知道,猫只有两只眼睛。 为了证明,我们的模型并不是从大量已记忆的猫涂鸦中选择了最接近的一个,我们可以输入完全不同的内容,例如一把牙刷的涂鸦。我们看到,这一神经网络生成了类似猫的涂鸦,但胡须很长,像是这把牙刷。这表明,神经网络学会将输入涂鸦编码为一系列抽象的猫概念,并嵌入至隐藏向量中,随后基于隐藏向量重建全新的涂鸦。 我们重复了试验,让这一模型学习猪的涂鸦,并取得了类似结果。在输入8条腿的猪涂鸦时,这一模型生成了外形类似,但只有4条腿的猪涂鸦。如果我们向其中输入卡车涂鸦,那么模型会生成看起来像是卡车的猪涂鸦。 (责任编辑:本港台直播) |