新智元报道
来源:motherboard
编辑:三石
【新智元导读】机器学习领域之间的知识迁移是现在AI中存在的一个重要问题。来自IBM Research的Kamil Rocki最近开发了一款“超级计算机”,每秒可处理10亿帧,能帮助开发出更高效的机器学习算法和更强健的人工智能记忆。
总是有些聪明人,能解决那么棘手的问题。
机器学习算法能够在最困难的棋盘游戏、经典的电子游戏甚至一些现代游戏中战胜人类。
但是它们仍然有一些很大的局限性,主要与“记忆”有关——或者更确切地说,与缺乏记忆有关。
在IBM Research从事人工智能研究的计算机科学家Kamil Rocki最近开发了一款“超级计算机”,用于从数千个虚拟Game Boy身上开发机器学习应用程序。Rocki希望这个项目能帮助开发出更高效的机器学习算法和更强健的人工智能记忆。
不同ML领域间的知识迁移是难点
计算机科学家训练了一个人工神经网络(一种松散地以人脑为基础的计算架构),以便它能够执行特定的任务,比如打败特定的游戏。
然而,如果一个已经掌握了俄罗斯方块的神经网络想要学习一款更复杂的游戏,比如《超级马里奥兄弟》,那么这个神经网络基本上是从零开始,无法利用它在俄罗斯方块上的经验更快地学习《超级马里奥兄弟》。
Rocki的Game Boy计算集群是一个工具,他希望能够借此帮助解决现在人工智能研究中的一个主要问题:机器学习领域之间的知识迁移。
2015年,谷歌的DeepMind证明了单个神经网络能够掌握几种不同的Atari 2600游戏。这是迈向神经网络记忆的一步,然而正如罗基在博客中描述他的“超级计算机”时所解释的那样,这些游戏在复杂性方面并没有太大的差异。
《太空入侵者》的播放频率为100MHz,是FPGA全速的四分之一。
在DeepMind的神经网络所掌握的大多数Atari游戏中,玩家与操纵杆的动作及其在屏幕上的结果之间的关系都是通过即时反馈来明确的。
这与《波斯王子》(Prince of Persia)等游戏截然不同。在这些游戏中,玩家的行为可能不会立即产生反馈,而且屏幕上也不会一直显示分数。
Rocki在他的博客中解释说,要用人工智能处理这些游戏,他觉得需要一个神经网络,它必须能够快速地进行游戏,并且同时运行几个游戏。
Rocki写道:“想象一下,你可以在百分之一的时间内完成《波斯王子》,同时运行10万款游戏。”
神经网络还必须在一个游戏机上实现。
游戏机上有各种各样的游戏可供选择,这些游戏并不需要耗费大量资源才能运行,这样才能测试它在更复杂游戏上使用先验知识的能力。
Rocki在他的研究中考虑了几种不同的游戏机,包括街机版的太空入侵者、Atari2600、任天堂娱乐系统(NES)和Game Boy Classic。
但问题是,这些系统中速度的峰值都是每秒3000帧。如果Rocki想真正提高机器学习的速度,他必须弄清楚如何在这些平台上以每秒数亿帧的速度运行。
最终,Rocki决定使用Game Boy,因为该游戏机拥有超过1,000款可供选择的游戏,在复杂性方面存在很多差异。 Game Boy Classic的160×144两位(bit)彩色屏幕也易于处理,这使得运行游戏的系统变得更加容易。
Rocki试图根据自己的主观判断,通过游戏的复杂性来组织Game Boy游戏。像《太空入侵者》这样的游戏在左边,不那么复杂,而《Pokemon》和《波斯王子》则在右上角,更加复杂。
为此,Rocki在现场可编程门阵列(FPGA)中模拟了大多数游戏机核心的英特尔8080 CPU。FPGA是一种强大、专业的计算机芯片,可用于大规模模拟其他硬件。
例如,在最初的《太空入侵者》街机控制台中使用的8080 CPU以每秒100万次(1 MHz)的速度运行。
然而,当这个CPU在FPGA中模拟时,它的时钟频率可高达400 MHz,这就像以每秒24,000帧的速度运行游戏一样。
不仅如此,单个FPGA一次可以模拟100个这样的CPU,在单个FPGA芯片上每秒总共可以产生240万帧。
Rocki在一封电子邮件中说,有1296个FPGA芯片连接在一起,每秒可以从数百个模拟Game Boys中产生大约10亿帧。 (理论上,这可以在50块FPGA芯片上实现,但Rocki说,他和同事们并没有“把它们推到极限”。)
硬件加速的俄罗斯方块,以100MHz的速度播放,大约是全速的四分之一。
正如Rocki在他的博客中所写,使用他的Gameboy超级计算机进行的测试到目前为止相当成功。
他认为这款工具是更广泛的趋势之一,在未来十年内将AI算法与先进的硬件解决方案相结合。
这可能最终会让我们走上更强大的人工智能之路。
原文链接:
https://motherboard.vice.com/en_us/article/qvqamb/this-guy-made-a-game-boy-supercomputer-that-can-handle-1-billion-frames-per-second