老司机养成:教神经网络变身《马里奥赛车》高手 | 论文+代码
时间: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
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 数据结构算法操作试题(C++/Python)——下一个排列
- 最新Spring整合MyBatis详解教程
- 数据结构算法操作试题(C++/Python)——搜索插入位置
- 数据结构算法操作试题(C++/Python)——报数
- Java List.add()方法:向集合列表中添加对象
- Linux下查看NVIDIA的GPU使用情况
- 数据结构算法操作试题(C++/Python)——有效的数独
- Java List.addAll()方法:添加所有元素到列表中
- HDFS的Shell操作(开发重点)
- 数据结构算法操作试题(C++/Python)——字符串相乘
- Java基础知识笔记四(详细)
- [推荐]Linux入门系列(三)Vim编辑器(Vim工作模式+代码演示)
- 机器学习性能评价指标汇总
- [推荐]Linux入门系列(四)系统用户账号管理(代码图文示例)
- 逆波兰表达式