本文是作者最近发布的Google QuickDraw数据集一系列笔记中的第三部分,使用的最近发布的SketchRNN模型。下面介绍QuickDraw数据集及SketchRNN模型。
QuickDraw数据集是由世界各地1500多万人参与的“快速绘画” AI实验后收集数百万幅图画建成,要求参与者在20秒内绘制出属于某个类(例如“猫”)的图像。如下图所示,选择一个类别,可以看见数据库中该类所有的形状。
当然,如果数据集中没有和你想象一样的形状,你也可以帮助向该数据库中增添一些涂鸦,进行个人绘画表演。
SketchRNN是基于上述数据集训练的生成模型,被训练成能够生成矢量图,它巧妙地集合了机器学习中最近开发的许多最新的工具和技术,例如Variational Autoencoders、HyperLSTMs(一个用于LSTM的HyperNetwork)、自回归模型 ,Layer Normalization、Recurrent Dropout、Adam optimizer等。
SketchRNN系统是由谷歌探究AI能否创作艺术的新项目的一部分,类似于教AI去绘画,另外不仅仅是让人工智能学习如何画画,还要能够“用类似于人类的方式概括归纳抽象的概念”,比如去画“猪”的广义概念,而不是画特定的动物,这显然不是一件简单的事情(下图 SketchRNN系统画的“猪”)。
该模型能够将你的灵魂画作对应成实际的物品,当然,如果画作太过于抽象,暂时是无法识别或者是识别错误,毕竟它还没有学会读心术(自己画的自行车,系统无法识别)。
本文代码舍弃了那些旨在解释或演示的代码块,只保留了运行实验所需的代码。“潜在空间中的主成分分析 ”部分的所有内容是直接从以前的博客中摘取。随意跳过该部分,因为接下来是真正有趣的分析。这里是第一篇和第二篇博客的链接,之前所讲述的一切都是一些实用功能,以便于现在的可视化分析。