Auto Byte
专注未来出行及智能汽车科技
微信扫一扫获取更多资讯
Science AI
关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展
微信扫一扫获取更多资讯
很多同学在学了 AI 之后,都会「支使」AI 去做各种事情,玩游戏也不例外。《赛道狂飙》是一款经典的娱乐型竞速游戏,已经有着十几年的发展历史。赛车游戏大多比拼的是如何最快从起点抵达终点,但《赛道狂飙》的赛道设计更加多元,极其考验玩家的技术水平,这也是它的独特魅力所在。Youtube 博主 yoshtm 是这一经典游戏的玩家之一。他一直在思考,能否让 AI 玩这个游戏?最近,他成功将模型训练了出来,而且在《赛道狂飙》的新旧版本上都试了一下,效果还可以:他用的是非常简单的监督学习模型,只有 2 个隐藏层(64+16 个神经元),包含 16 个输入(15 个赛道间距数据和 1 个车速数据)和 4 个输出(前、后、左、右)。虽然技术上比较简单,但由于娱乐性较强而且容易上手,yoshtm 的项目还是在 Reddit 上收获了上千的点赞。既然是监督学习,首先要解决的问题必然是标注数据。在第一版的视频中,yoshtm 介绍道,他创建了一个包含上百个转弯的训练地图,然后自己「驾驶」赛车在地图上跑。此外,他还创建了一个程序,用来逐帧检测赛车与墙之间的距离、车速以及自己的操作(上下左右)等信息。收集到足够多的数据之后,yoshtm 创建了一个 AI 算法来学习地图环境与操作之间的对应关系。在实际运行过程中,算法可以根据实时检测到的间距、车速等信息来预测合适的操作。有人可能会好奇,为什么这些受同一个 AI 系统控制的车辆行驶轨迹却不一样?原因在于 AI 捕捉到的帧也并不相同,因为屏幕捕获频率并不是连续的,而且使用的算法也存在少量的随机性。今年 7 月,育碧发布了新版《赛道狂飙》(《赛道狂飙:永恒国度》的重制版)之后,yoshtm 想看看:在上一版游戏中搭建的 AI 系统,是否也能在新版本游戏中使用。由于两个版本非常相似,yoshtm 只做了一些细微的改进。数据收集方式和之前差别不大(这次在新地图上行驶了 1 个小时,收集了 5 万个数据),但是加入了斜坡和飞跃:在之前的版本中,yoshtm 主要用图像检测方法来记录每一帧的速度。但在新的版本中,由于游戏页面发生变化,图像检测已不可行,所以他改用 Openplanet 直接访问游戏 API。在地图中的简易环节,AI 仍然比大部分的人类玩家要慢,但至少比初学者要强一些。在一些转弯的地方,AI 可能会遇到麻烦,特别是在必须使用刹车的情况下。这里演示了上百次赛车经过转弯处的情况,多数情况下赛车很难顺利通过地图的这一部分:此外,这个模型还有很多缺陷,比如间距测量不够准确、缺乏记忆等。
但因为很有趣,该创意在 Reddit 机器学习社区引发了许多关注。不过作者也表示,这个模型存在一些待解决的问题,比如说在没有墙壁的情况下,表现确实不够灵活。目前,该项目的代码尚未开源,之后作者可能会用强化学习算法改进该模型。对于机器学习从业者来说,这可能只是一个 toy 项目。但由于计算量比较小,模型设计也比较简单,初学者或者对机器学习感兴趣的同学可以动手尝试一下。