神经网络持续在游戏界立功,这次拿下的是经典游戏:《马里奥赛车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