机器学习"玩"起来:自制两个小游戏
2019年06月17日 由 sunlei 发表
25477
0
[caption id="attachment_41302" align="aligncenter" width="1320"]
这就是我创建的游戏截图。左边的是runn,右边的是sornting。[/caption]
人工智能和机器学习绝对是强大的技术。然而,对于那些没有太多相关背景知识的人(大概是所有人了)来说,有些行业术语通常是抽象的和模糊的。
去年,我开始在中国科学院的音乐和人工智能实验室研究音乐机器学习。虽然取得了令人兴奋的进展,但研究重点主要集中在模型开发部分,而不是生成结果的呈现。
我发现我的很多艺术家和音乐家的朋友,都有意愿想去更多地了解这些技术。然而,面对生涩的知识,他们仍然很难迈出第一步。
机器学习的游戏化
我想揭开用机器学习创作音乐的抽象概念的神秘面纱。玩游戏是向人们介绍新技术的一种更有趣、更吸引人的方式。我认为游戏化与适当的设计可以使音乐机器学习更容易理解。
在我调查之前是否有相关作品的时候,我发现了一个叫做Semantris的项目。它是由谷歌人工智能开发的,以展示他们的自然语言处理(NLP)算法。
[caption id="attachment_41303" align="aligncenter" width="640"]
Semantris[/caption]
这是一个由这项技术支持的单词联想游戏。当你输入一个单词或短语时,游戏会对屏幕上的所有单词进行排序,并根据它们对你输入内容的反应程度对它们进行评分。
——谷歌人工智能
我被他出色的表现所鼓舞,并开始为音乐机器学习算法开发我的程序。
Source Code | Demo
一些机器学习算法可以学习如何用较低的维数再现数据集中的数据。使用相同的映射,算法可以以某种方式猜测两个现有数据之间的样本是什么样子的,这就是“插值”。我在音乐机器学习中使用游戏化的第一个项目是Sornting。这是一个基于音乐机器学习算法的益智游戏,可以插入不同的歌曲。玩家必须计算出两种不同旋律之间插值的原始顺序,随着游戏的进行难度也会增加。
[caption id="attachment_41305" align="aligncenter" width="849"]
基于机器学习算法的人脸插值(来源)[/caption]
我不想证明插值的结果是完美的。用户在玩游戏和仔细听旋律的时候会发现一些奇怪的插值效果。它不仅可以帮助用户了解模型,而且可以帮助用户发现模型的弱点。
[video width="862" height="720" mp4="http://imgcdn.atyun.com/2019/06/机器学习游戏.mp4"][/video]
Sornting
另一方面,游戏也可以作为研究人员的分析工具。例如,如果更多的玩家能够找到答案,这可能意味着插值对人类来说更有音乐意义,反之亦然。同时,对于一些认为自己有很好的听力技巧的音乐家来说,这个游戏也是一个挑战。
. source code:
https://github.com/vibertthio/runn
. demo:
https://vibertthio.com/runn/
Source Code | Demo
[caption id="attachment_41310" align="aligncenter" width="712"]
runn[/caption]
然而,对于大多数人来说,仍然会有一个障碍来阻止他们享受Sornting。他们必须知道一些插值并对听音乐有信心。这让我思考了一个问题:如何让每个人都想听机器生成的音乐?当我和我的一个朋友克里斯·多纳休(Chris Donahue)讨论时,他告诉我,音乐的分数与横屏游戏相似。我想这可能是一种把新音乐介绍给能玩横屏游戏的人的方式,几乎所有人都能玩横屏游戏。我把这个想法分享给了台湾人工智能实验室的同事们,他们也给了我很多有用的反馈。
第二个项目是RUNN。它是“运行”(横屏游戏)加上RNN(循环神经网络)。RNN用于生成序列数据,如语言和音乐。用户可以使用生成的输出播放,而无需事先了解任何关于音乐机器学习的知识。每个人都可以玩游戏,享受生成的音乐。此外,他们可以通过控制他们的化身来保持良好的氛围(背景节拍)。所有级别都是使用MusicRNN模型实时生成的。
. source code:
https://github.com/vibertthio/runn
. demo:
https://vibertthio.com/runn/
结论
这两个项目并不局限于特定的机器学习模型。此外,有许多形式的游戏可能都抱有类似的目的。我想让每个人都能用音乐来表达自己。游戏化的理念只是一种接近视觉的实验方法。如果你对未来的音乐技术和可能性有任何想法,可以留言告诉我。