老司机养成:教神经网络变身《马里奥赛车》高手 | 论文+代码

时间:2022-05-06
本文章向大家介绍老司机养成:教神经网络变身《马里奥赛车》高手 | 论文+代码,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
问耕 编译整理 量子位 出品 | 公众号 QbitAI

神经网络持续在游戏界立功,这次拿下的是经典游戏:《马里奥赛车64》,而且只需要很小的计算力就能完成。

先来看看成果,这段视频是训练两天半之后的表现,神经网络已经变成老司机了,漂移、撞车都玩得666~

视频内容

这套玩转《马里奥赛车64》的AI,是一个在BizHawk模拟器中基于NEAT算法搭建的神经网络,使用Lua语言。

所谓NEAT算法,全名是NeuroEvolution of Augmenting Topologies,增强拓扑神经网络。这是一种使用遗传算法进化人工神经网络的方法。NEAT的理念是从小型、简单的网络开始,然后逐渐向复杂的网络进化升级。

NEAT的交流讨论页在此:

https://www.cs.ucf.edu/~kstanley/neat.html

关于NEAT的更多细节,可以参考这篇论文《Evolving Neural Networks through Augmenting Topologies》:

http://nn.cs.utexas.edu/downloads/papers/stanley.ec02.pdf

回到这次的《马里奥赛车64》,作者还把代码公开在GitHub上了。要想尝试这个代码,需要在某一等级的开头创建一个存档,代码默认存档名称为“BB150.state”,不过你可以通过改变第54行代码(state_file = "BB150.state")进行调整。

记得确保存储状态的文件在Lua文件夹里哈。

GitHub代码在此:

https://github.com/nicknlsn/MarioKart64NEAT