参与:黄小天、李泽南、李亚洲 谷歌 4 月 11 日推出的 AutoDraw 是一个应用人工智能技术把你的随手涂鸦变成绘画的神奇工具。一经推出立刻获得了广泛关注,其背后的原理也引起了人们的好奇。昨天,谷歌研究博客终于发声,对 AutoDraw 背后的技术进行了解读。同时,相关论文也已发表。 论文地址:https://arxiv.org/abs/1704.03477 在线体验:https://aiexperiments.withgoogle.com/autodraw 抽象的视觉交流是人类传达想法的关键之一。孩子们从小就开始发展描绘事物的能力,甚或是简单画上几笔以表达情感。这些简单的绘画不如照片那般写实,但在通过图像表指和重构周遭世界的方面,它们为我们带来了一个有趣的角度。
sketch-rnn 生成的矢量图 在最新论文《简笔画绘制的神经表征》(链接:https://arxiv.org/abs/1704.03477)中,我们提出了一个绘制普通物体简笔画的生成性循环神经网络,直播,其目标是以类似于人类的方式训练机器绘画和概括抽象概念。我们在一个手绘简笔画的数据集上训练模型,其中每张简笔画表示握笔动作的一个序列:往哪个方向移动,什么时候提笔以及停笔。如此,我们创建了一个具有广泛应用潜力的模型,可协助艺术家创作以及帮助老师教学生绘画。 在图像的生成性建模方面,神经网络已做了大量现有工作,其中大部分工作聚焦于把光栅图像(raster image)建模为 2D 像素网格。当这些模型生成逼真图像时,由于 2D 像素网格的高维度,其面临的一个核心挑战是生成具有连贯结构的图像。例如,这些模型有时产生的图像很有趣,比如 3 只或更多眼睛的猫,多只头的狗。
使用 128x128 ImageNet 数据集训练的先前 GAN 模型生成的动物图像错误实例。上图是 Ian Goodfellow 的 NIPS 2016 教程《生成对抗网络》之中的图 29。 在这一工作中我们受到人类绘画方式的启发,对更低维度的向量表征做了审查。我们的模型 sketch-rnn 是基于 seq2seq 自编码器框架,其包含变分推理(variational inference)并将超网络(hypernetwork)用作循环神经网络细胞。seq2seq 自编码器的目标是训练网络把输入序列编码成被称作隐向量(latent vector)的浮点数向量,并通过使用一个尽可能地复制输入序列的解码器从这一隐向量中重建输出序列。
sketch-rnn 的原理图 在我们的模型中,我们刻意向隐向量添加噪音。在论文中,我们展示了通过将噪声引入到编码器和解码器之间的通信通道中,让模型不再能够准确地再现简笔画,而是必须学会以噪音隐向量的形式捕捉简笔画中的特质。我们的解码器会使用这个隐向量,产生用于构建新素描的一系列持续动作。在下图中,我们将一些猫的素描输入给编码器,使用解码器产生了重建的简笔画。
通过模型训练重建猫的简笔画 在这个过程中,必须要提到的是重建的猫简笔画并不是输入简笔画的简单复制体,而是全新的、具有和输入图片相似特征的简笔画。为了证明模型没有简单地复制输入信息,而是已经学会了人类画猫的一些技巧,我们可以尝试将非标准简笔画输入给编码器:
如图所示,当我们输入了一个三眼猫的简笔画后,模型生成的图像是类似的轮廓——但只有两只眼睛,这意味着模型已经明白猫只有两只眼睛。为了证明我们的模型并没有简单地从大量学习数据中挑选类似的正常猫图进行输出,我们可以尝试输入完全不同于猫的物体,如上图所示的牙刷。我们看到网络仍然努力产生了一个猫的形象,拥有长长的胡须,同时尽量遵循牙刷的形状。这表明该网络已经学会了解码输入简笔画的内容,将其转换成抽象的猫的概念,编码成隐向量,同时还有能力从这些向量中重建全新的简笔画。 还是不相信?我们再用模型训练一下猪的简笔画,看看能不能得出同样的结论。当输入八条腿的猪的时候,该模型生成了形状类似的猪——但是只有四条腿。如果向画猪的模型输入一辆卡车的简笔画,它就会画出一头长得像卡车的猪。
让训练后的模型重建猪简笔画 (责任编辑:本港台直播) |