通过SketchRNN、PCA和t-SNE从Google QuickDraw数据集中显示矢量图的潜在空间|附源码

阅读更多
原文链接 http://click.aliyun.com/m/23528/
79b373d51eb109fd75ac6dd612fe1d96b9107ad9
本文是作者最近发布的Google QuickDraw数据集一系列笔记中的第三部分,使用的最近发布的SketchRNN模型。下面介绍QuickDraw数据集及SketchRNN模型。
        QuickDraw数据集是由世界各地1500多万人参与的“快速绘画” AI实验后收集数百万幅图画建成,要求参与者在20秒内绘制出属于某个类(例如“猫”)的图像。如下图所示,选择一个类别,可以看见数据库中该类所有的形状。

2fe2089ec0ed5b84a527913712fa475ca9591aea

当然,如果数据集中没有和你想象一样的形状,你也可以帮助向该数据库中增添一些涂鸦,进行个人绘画表演。

25e02e433cc92c54480a29cf266faf369ffa9b74 49417fcbdccba38dd7d1d93ee3ca314c04d4d095
        SketchRNN是基于上述数据集训练的生成模型,被训练成能够生成矢量图,它巧妙地集合了机器学习中最近开发的许多最新的工具和技术,例如Variational Autoencoders、HyperLSTMs(一个用于LSTM的HyperNetwork)、自回归模型 ,Layer Normalization、Recurrent Dropout、Adam optimizer等。
        SketchRNN系统是由谷歌探究AI能否创作艺术的新项目的一部分,类似于教AI去绘画,另外不仅仅是让人工智能学习如何画画,还要能够“用类似于人类的方式概括归纳抽象的概念”,比如去画“猪”的广义概念,而不是画特定的动物,这显然不是一件简单的事情(下图 SketchRNN系统画的“猪”)。

70a2d2c1d429e95023c9ba0b0674aa0373548164

该模型能够将你的灵魂画作对应成实际的物品,当然,如果画作太过于抽象,暂时是无法识别或者是识别错误,毕竟它还没有学会读心术(自己画的自行车,系统无法识别)。

e6f82e43b014419c1744cd5f513148c9528ca3762bbd775563fe7e0fa81f490ff7055730bef5f2aa
       本文代码舍弃了那些旨在解释或演示的代码块,只保留了运行实验所需的代码。“潜在空间中的主成分分析 ”部分的所有内容是直接从以前的博客中摘取。随意跳过该部分,因为接下来是真正有趣的分析。这里是第一篇和第二篇博客的链接,之前所讲述的一切都是一些实用功能,以便于现在的可视化分析。

原文链接 http://click.aliyun.com/m/23528/

你可能感兴趣的:(c,JNI)