专栏首页AI启蒙研究院从“猜画小歌”背后的AI原理,教大家如何得高分

从“猜画小歌”背后的AI原理,教大家如何得高分

作者:邵宇,清华大学计算机专业博士

近期谷歌的“猜画小歌”小程序在微信里很风靡,大家对它又恨又爱,原来电脑这么好玩,画得这么乱都能识别出来,但是有时候明明画得很像,为什么就不能正确识别呢?

谷歌在2017年5月发布的文章《ANeural Representation of Sketch Drawings》中,详细介绍了如何对这类简笔画进行建模,以及如何用电脑自动生成简笔画。

如果想自己动手玩,网址是:https://magenta.tensorflow.org/sketch-rnn-demo

0. 这篇文章有哪些好玩的结果?

答:(1)模仿人画画。上面一排是人画的,下面一排是AI在人画的基础上,重建的简笔画

(2)能画出“狮身人面像”。如输入一个牙刷到猫模型里面,就出现了具有牙刷样子的猫

(3)能帮人纠错。如果输入了八条腿的猪,输出会纠正为四条腿。

(4)能做变换。从一个物体变到另一个物体,如从自行车渐变到瑜伽,从猫变到一头猪。

(5)能做预测。预测人未来可能画画的步骤,如下图红色的人画的,其它颜色是AI预测的。

(6)能从一个简单的输入,得到不同的简笔画。如输入一个圆圈和正方形,在不同的模型中,得到了蚂蚁、自行车、直升飞机等等不一样的输出。

1. 电脑AI识别简笔画具体的模型?

答:该模型谷歌将其称为:sketch-rnn。

蓝色的部分是将简笔画进行编码,生成一个图像的特征向量,自动编码框架的目标是训练一个将输入序列编码为浮点数向量的神经网络,这个向量称为latent vector。而粉红色的部分是是利用特征向量生成简笔画,使用解码器从latentvector重构输出序列。

该模型的训练过程非常好理解,就是深度学习里的自动编码器原理。由于这篇文章是开创性的,考虑到画画是一个序列过程,因此这篇文章很自然的:在编码和解码都用到了RNN,后续也有其他学者对其进行来改进,如用 CNN-RNN来进行编码。

2. GAN模型也能让AI自动画画,为什么不用GAN模型?

答:GAN往往是基于像素来生成,会出现很奇怪、很吓人的结果,如三个头的猴子。而sketch-rnn是基于笔画建模的,最终AI画画的结果是向量图。

3. 为什么这个自动编码器能这么成功?

答:所有的深度学习训练过程都用到自动编码,首先将输入的绘画序列变为一个本征向量(参数为。sketch-rnn中的两个金字塔神经网络模型(一个是编码、一个是解码)放在一起竟然能成功!其实谁也不知道为什么,但它就是好用,结果好行。

4. 画画的过程如何变成模型的输入?

答:一般一个简笔画,大概200~300个像素点。第一步:以落笔的第一点为原点,以后的每一点都用5个元素表示(X,Y,P1,P2,P3)来表示,其中X,Y是坐标点,P1,P2,P3是one-hot 向量,也即是这三个中只有一个为1,其余两个为0,其中P1=1表示当前正在画画,P2=1表示笔将离开画板,P3=1表示画画结束。

自动编码器的模型输入是不超过300点的序列。下面这个乌龟,用5个元素的序列表示如下。

5. 训练的样本量有多大?

答:每个类别都有7万个训练样本,以及2500个验证和测试样本。

6. 以上的sketch-rnn模型建模和训练,只能做到让电脑自动画简笔画,那电脑是如何判断我画的画是属于什么类别?

答:谷歌没有披露具体的过程,我猜一个简单的方法:是用sketch-rnn模型训练数据库里所有的数据,然后将模型蓝色部分(也就是编码部分)latentvector作为简笔画的特征,然后基于监督方法训练出一个判别函数,用于判别我画的内容属于哪一类。在实践中,AI可能同时猜出好几个类别出来,这可能是判别函数的输入latent vector上加了一点噪声,使得输出有好几种类别。

当然,也可以用比较复杂的方式实现:对样本中350多个类别,每个类别建立一个sketch-rnn模型,再叠加一个判别函数。

7. 玩“猜画小歌”有什么技巧?

答:(1)不要拖泥带水,简洁最重要。因为程序只能接受大约200个左右的输入点,如果画很多细节,反而认不出来。以下是我画的蝴蝶,够简单吧。那个斑马图输在脖子画太多细节了。

(2)如果第一次画的没有识别出来,迅速擦掉重画,不要希望AI会后期力挽狂澜。从sketch-rnn模型可以看出,画画的路径转换为latent vector,前期的数据比重很重要。

(4)最后一招:谷歌公开了所有类别的训练样本,大家可能上这个网站(https://github.com/googlecreativelab/quickdraw-dataset)下载,看看每个类别“正确”的画法。

8. 为什么要在中国推小程序?

答:因为谷歌的网页版猜画小歌,由于大家都知道的原因,没有中国的数据。这次利用微信小程序刚好收集一下中国的数据。有人还做了不同国家画画的差别,比如日本人画圆是顺时针的,而绝大多数国家是逆时针的,原因是日文中的圆的顺时针写的。韩国和俄罗斯用户脑中,最直觉性的椅子图像是侧放的,而美国、德国、巴西、南非都是正面放置的。后续基于这个大样本,还能分析出很多好玩的东西。

本文分享自微信公众号 - AI启蒙研究院(AIEvolve)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-07-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 耿大侠 Diss国外架构师文章《From CQS to CQRS》

    用户1594945
  • 滴滴如何使用人工智能来欺骗司机和乘客的?

    近期北京打车异常困难,政府严格要求京牌京户,导致合格的网约车数量锐减。我们该如何打车呢?先说结论:从五环外远距离打车去三里屯,是最容易打到车。而晚高峰从金融街往...

    用户1594945
  • 《我不是药神》与AI研制新药

    最近电影《我不是药神》引发热议,原研药贵,且研制过程九死一生。近期Science Advances上发表了《Deep reinforcement learnin...

    用户1594945
  • 我国公共云服务市场尚未成熟

    目前,全球云服务虽然整体产业规模尚小,但是其增长率远高于ICT产业平均水平,已经与移动智能终端一起成为全球ICT产业增长最快的领域。根据报告显示,全球云计算市场...

    静一
  • Python接入mysql数据库 原

    右侧有个database,点开后左上角有个“+”符号,选择Data Source-Mysql

    晓歌
  • windows Server 2008 R2 IE增强安全配置正在阻止来自下列网站的内容

     当在Windows Sever 2008 R2中运动IE8的时候会发现默认情况下IE启用了增强的安全配置,为了方便而且是在内网的情况下我们可以关闭IE8的增强...

    aehyok
  • 13个Tensorflow实践案例,教你入门到进阶

    关于深度学习,每个人都有自己的看法。有人说就是炼丹,得个准确率召回率什么的,拿到实际中,问问为什么,都答不上来。各种连代码都没写过的人,也纷纷表示这东西就是小孩...

    机器学习AI算法工程
  • 13个Tensorflow实践案例,深度学习没有想象中那么难

    关于深度学习,每个人都有自己的看法。有人说就是炼丹,得个准确率召回率什么的,拿到实际中,问问为什么,都答不上来。各种连代码都没写过的人,也纷纷表示这东西就是小孩...

    BestSDK
  • iOS 组件化之路由设计思路分析

    前言 随着用户的需求越来越多,对App的用户体验也变的要求越来越高。为了更好的应对各种需求,开发人员从软件工程的角度,将App架构由原来简单的MVC变成MVVM...

    xiangzhihong
  • tf.contrib.rnn.static_rnn与tf.nn.dynamic_rnn区别

    chunk_size = 256 chunk_n = 160 rnn_size = 256 num_layers = 2 n_output_layer = MA...

    MachineLP

扫码关注云+社区

领取腾讯云代金券