• 德州农工大学教你如何让AI玩转《精灵宝可梦》

    作者:老球盲LM 来源:长沙 浏览: 【】 发布时间:2026-04-23评论数:

    这篇研究来自德州农工大学数据科学研究院与计算机科学系,于2026年4月12日以预印本形式发布,编号为arXiv:2604.10812v1,感兴趣的读者可以通过该编号查阅完整原文。

    说到用AI玩游戏,大多数人脑子里可能浮现的是AI打败围棋世界冠军、或者在《星际争霸》里横扫职业选手的新闻。但你有没有想过,让一个AI玩《精灵宝可梦·红版》这样的经典Game Boy游戏,其实比打围棋还要难得多?这不是在开玩笑——德州农工大学的研究团队亲身经历了这份痛苦,然后把它做成了一篇正经的学术研究。

    这项研究的核心,是让一个AI学会玩《精灵宝可梦·红版》游戏最开头的几段内容:从主角小智的房间里走出去、在彩叶镇转一圈找到高草丛、然后赢得第一场和对手小茂的宝可梦对战。听起来像是小孩子十分钟就能搞定的事情,但对AI来说,这是一场充满陷阱的马拉松。

    一、为什么让AI玩《精灵宝可梦》是一件很头疼的事

    要理解这件事有多难,不妨把AI玩游戏的过程类比成教一个完全不懂规则的新手学下棋。但《精灵宝可梦·红版》甚至比国际象棋还要棘手,因为它不只是一个游戏,而是多个游戏叠加在一起的超复杂任务。

    首先是"奖励稀少"的问题。在游戏里,真正有意义的事件——比如抓到一只宝可梦、赢得一场对战——之间隔着成千上万个操作步骤。对AI来说,这就像是让你走完一个巨型迷宫,但迷宫里几乎没有任何路标,你只有走到终点才能知道自己走对了。大部分时候AI只能在黑暗里乱摸。

    其次是选择太多的问题。游戏刚开始没多久,屏幕上就有几十个格子可以走,有门可以开,有人可以交互。每一步都有很多种选择,AI根本不知道哪条路是对的。

    更麻烦的是,AI只能"看到"当前屏幕上的画面,就像你隔着一扇窗观察房间,你能看到现在窗里的样子,但你不知道隔壁房间发生了什么。角色当前的血量、所在地图的编号、背包里有什么——这些关键信息都藏在游戏的内存深处,不直接显示在画面上。

    还有一个让研究团队头疼不已的细节:《精灵宝可梦·红版》的移动方式有个奇怪的"双按"机制。你按一下方向键,角色只是转个身;再按一下,角色才真正往那个方向走一步。如果AI不了解这个规则,它就会一直在原地转圈,看起来忙忙碌碌,实际上哪儿也没去——这听起来既可笑,又真实发生了。

    正因为这些挑战,德州农工大学的研究团队决定不只是"扔一个AI进去让它自己摸索",而是搭建一套叫做PokeRL的系统,专门针对这些让AI"犯傻"的陷阱逐一设计解决方案。

    二、研究团队搭建了一个什么样的"训练场"

    PokeRL的底层架构,是在PyBoy这个Game Boy模拟器上包了一层自定义的"环境外壳",再连接上一套强化学习框架。可以把这个过程理解为:研究团队给AI建了一个经过特殊改造的游戏机,这台游戏机不只是让AI按键,还会实时记录AI的行为、读取游戏内存里的关键数据、根据AI的表现给出奖励或惩罚,并且装了一套"防抽风"系统防止AI做出奇怪的重复行为。

    AI的"眼睛"是一个被压缩成72×80像素的黑白屏幕画面。为了让AI有短期记忆,系统会把连续四帧画面叠加在一起输入给AI,就像让你同时看到一段短视频的四个截图,而不是只看一张静止图片。此外,还有一个非常巧妙的设计:每张地图都对应一个"已探索遮罩",这是一个跟游戏画面一样大的黑白图层,AI走过的格子会被标记出来。这个遮罩相当于AI的地图笔记,告诉它"这里我已经去过了,那边还没探索"。两个图层叠加之后,最终AI处理的是一个8通道的输入(4帧画面加上4帧对应的探索遮罩),再送进一个卷积神经网络进行分析决策。

    说到AI的"大脑",研究团队使用了一个标准的卷积演员-评论家网络,参数量大约107万个。这个数字在AI领域算相当轻量,训练速度相对较快。整个网络分成两部分:演员部分负责决定下一步按哪个键,评论家部分负责判断当前局面"值不值"。两者共用前面的卷积层和一个512单元的全连接层,最后分叉成两个输出头。

    为了读取游戏内存里的关键数据,研究团队还专门编写了一个内存读取模块,直接从游戏RAM中获取角色坐标、当前地图编号、队伍数量、战斗状态和宝可梦血量等信息。这些信息不会直接给AI看,而是用来计算奖励信号、判断任务完成条件。

    在行动选项上,研究团队把AI的可用按键限制在7个:上下左右四个方向键、A键、B键和"什么都不做"。Start键和Select键被彻底封禁——原因是AI非常容易学会狂按这两个键来打开菜单,不但没有任何进展,还会让游戏卡在菜单界面动弹不得。事实上,研究团队曾观察到AI学会了在走下楼之后疯狂存档的习惯,这纯属走了歪路,必须截断。

    三、如何教会AI"什么是有意义的行为"——奖励体系设计

    在强化学习里,AI完全靠奖励来判断自己做得对不对。设计奖励就像设计一套积分规则:规则定得好,AI就会学到真正有用的技能;规则有漏洞,AI会第一时间找到作弊方法并死死抓住不放。

    研究团队把奖励分成三个层次,由细到粗。最细的一层是每一步行动的即时奖励:走到一个新的格子得1分,移动的欧氏距离每增加一个单位额外得0.2分,第一次踏上某个位置再额外得0.5分。这些小奖励的作用是引导AI不要停在原地,鼓励它不断向新方向探索。

    中间层是完成阶段性小目标的奖励:从一张地图切换到另一张地图得10分,本局游戏第一次进入某张地图额外得5分,到达大片未探索区域再得2分。这些奖励引导AI不仅在当前小区域转悠,而是积极寻找出口、进入新地图。

    最顶层是稀有的大事件奖励:进入高草丛得20分,触发战斗得10分,抓到宝可梦或者赢得和小茂的对战得50分。这些是游戏进度的真正里程碑,奖励值大,但出现频率极低。

    为了对冲AI可能发展出的偷懒行为,研究团队还加入了一套惩罚机制:原地不动会被扣分,反复按同一个键会被扣分,陷入位置循环也会被扣分。这些惩罚值被刻意设计得比较温和,范围在-0.02到-0.2之间。这是一个非常重要的经验教训:研究团队一开始用了很重的惩罚,结果AI因为太害怕扣分而变得极度保守,整体得分变成大量负值,训练彻底崩溃。适度的惩罚才能保持方向感而不破坏学习积极性。

    四、AI最容易犯的两种"坏毛病"以及如何治它们

    如果你让AI在没有任何限制的情况下自由探索,它几乎必然会发展出两种让人抓狂的习惯:一种是无休止地在同一片区域打转,另一种是疯狂按某一个键。研究团队把这两种毛病称为"循环"和"垃圾键入",并且专门为它们设计了一套三层防御机制。

    先说防循环。第一层是位置访问计数器:系统记录本局游戏AI走过每个坐标的次数,超过3次开始扣小分,超过5次扣更多。第二层是行动模式检测:系统用一个长度为20步的滑动窗口监视AI最近的按键序列,一旦发现AI在反复做"A-B-A-B"或者"左-右-左-右"这样的固定重复模式,立刻扣分,反过来如果AI打破了这种模式,还会奖励一点小分来鼓励改变。第三层是位置循环检测:系统跟踪AI的历史位置轨迹,如果发现AI反复回到某个小半径范围内的位置,判定为循环并施加惩罚。

    研究团队为了验证这套系统的效果,专门统计了训练过程中"循环局"的比例——所谓循环局,是指某单个坐标被访问超过10次、或者行动模式检测触发超过20次的那些局。结果非常直观:在没有防循环系统的情况下,所有训练局中有41.2%属于循环局,只有58.8%是正常进行的。加上防循环系统之后,循环局的比例急剧下降到4.7%,正常局占到95.3%。这相当于把AI抽风的概率从接近一半降低到了几乎可以忽略不计。

    再说防垃圾键入。研究团队发现AI特别容易学会狂按A键、不动键或者没有意义的菜单键,因为这些行为不会直接导致惩罚,但也不需要什么学习成本。解决方案是一套渐进式连按惩罚:同一个键连按3次开始扣0.1分,超过5次扣0.2分。与此同时,如果AI最近几步内使用了至少4种不同的行动,还会得到一个小小的多样性奖励来激励它主动变换策略。Start和Select键则直接从行动空间中删除,彻底关上这扇偷懒的门。

    评估这套防垃圾键入系统的效果,研究团队用了信息熵这个工具——可以把它理解为衡量一个人打牌时出牌花色有多均匀的指标,花色越均匀,熵值越高。在没有防垃圾键入系统之前,AI的行动分布熵只有1.21比特:A键占了32.1%,什么都不做占了28.4%,真正移动的行动只有27.2%。加上系统之后,移动行动的比例上升到68.2%,A键和B键加起来只有24.3%,什么都不做降到了7.5%,总体熵值上升到1.82比特,相对提升约50%。换句话说,AI从一个只会按A和发呆的懒蛋,变成了一个能灵活移动探索的正常玩家。

    五、把大任务拆成三节课——课程式训练结构

    直接让AI从游戏开始一口气学到赢得对战,就像让一个从来没碰过乐器的人直接去演奏一首交响乐。研究团队选择的方法是把整个早期游戏分成三个独立的学习阶段,每个阶段有自己的起点、终止条件和奖励重点,让AI循序渐进。

    第一阶段叫"走出房间"。AI从小智的卧室开始,目标是走下楼梯、穿过客厅、推开前门走到屋外。这个阶段的奖励重点在移动本身和第一次地图切换,帮助AI学会基本的方向控制和门的交互方法。在训练了15万步之后,AI能在大约65%的局次里成功走出房间。

    第二阶段叫"探索到草丛"。AI从房子前门外出发,目标是在彩叶镇和1号道路上找到高草丛,触发大木博士的剧情事件。这个阶段的奖励更强调探索新地图和覆盖更大的地图面积。经过50万步训练,AI能在约60%的局次里成功到达高草丛并触发事件。

    第三阶段叫"赢得对战"。AI直接从与小茂对战的开始状态出发,使用固定的初始宝可梦,目标是通过有效的战斗指令击败对手。这个阶段的奖励聚焦于使用进攻招式、击倒对手宝可梦和赢得对战。训练50万步之后,AI的胜率稳定在约50%左右。

    这种分阶段的课程式结构有两个明显好处:一是每个阶段的任务足够简单,AI能更快看到有效奖励,学习效率大幅提升;二是调试起来容易得多,哪个阶段出了问题一目了然,不用在一个庞大的单一系统里捞针。

    六、给AI加上"地图笔记"有多重要——探索遮罩的价值

    前面提到,AI的观察中除了实时画面,还有一个"已探索遮罩"。研究团队专门做了一组对比实验来量化这个遮罩到底有多重要,训练时长统一控制在30万步。

    结果相当明显。没有探索遮罩时,AI平均每局探索的独特坐标数量是34.2个,彩叶镇的地图覆盖率只有12%,平均每个格子被重复访问4.8次。加上探索遮罩之后,独特坐标数量跳升到48.1个,增幅超过40%;彩叶镇覆盖率从12%飙升到41%,涨了约242%;每个格子平均被重复访问的次数从4.8次降到了3.1次,重复率降低了约35%。

    这说明AI并不只是把探索遮罩当作无用的噪声忽略掉,而是真正学会了把它当作一张记忆地图来使用——哪里已经去过,就倾向于往没去过的方向走。在没有遮罩的情况下,AI的策略本质上是无记忆的,只能根据当前画面猜测方向,结果就是反复在同一片区域绕圈。遮罩给了AI"空间记忆",让它的探索行为从无目的的随机游走,变成了有一定方向感的主动开拓。

    七、这套系统的局限性和未来可以做什么

    PokeRL在设计理念上确实走出了一步:不只是堆算法,而是把游戏本身的具体特性和AI最常见的失败模式一起编进了系统里。但这套系统本身也有一些不掩盖的局限。

    最明显的一点是,整个系统并不是"纯粹从像素学习"。内存读取模块直接偷看了游戏RAM里的数据,奖励信号也经过了大量人工设计。这意味着如果你想把这套框架搬到另一款游戏上,需要重新做大量的适配工作,不是开箱即用的通用方案。训练过程也相当耗时,而且对超参数比较敏感,换一组参数可能效果大相径庭。此外,游戏中的文字对话场景有时候需要人工干预才能跳过,还没实现完全自动化。

    至于未来可以去的方向,研究团队提出了几个思路。一是把三个独立训练的阶段合并成一个连贯的长期任务,让AI在一场游戏里连续完成走出房间、探索地图和赢得对战,而不是分开训练。二是在探索机制上加入更系统的好奇心驱动方法,比如让AI对没见过的画面自动产生更强的探索欲望,而不依赖手工设计的循环惩罚。三是尝试减少手工设计奖励的比重,改用从人类玩家行为中学习的逆强化学习方法,或者基于人类偏好反馈的奖励学习方法,让AI自己摸索出什么样的行为是好的。四是把语言模型融入对战决策,借鉴已有研究中语言模型在宝可梦对战里取得接近人类水平的思路。最后,研究团队希望把整个PokeRL环境打包成一个标准化的开源测评平台,让更多研究者可以在相同条件下做对比实验,推动这个方向的整体进步。

    说到底,这项研究想传递的核心信息很简单:让AI玩好一款游戏,光靠聪明的算法是不够的,更需要把游戏的具体怪癖和AI的具体弱点都认真对待,然后一个一个地工程化地解决掉。在AI面对复杂的真实世界任务时,这种"把失败模式显式建模进系统"的思路,可能比单纯追求更大更强的模型更加实用。这不是最终答案,但它是一块认真打磨过的垫脚石。

    Q&A

    Q1:PokeRL系统中的"探索遮罩"具体是怎么工作的?

    A:探索遮罩是一张和游戏画面一样大的黑白图层,AI每走过一个格子,对应位置就会被标记出来。这张图作为额外的观察信息输入给AI,让AI知道哪里已经去过、哪里还没探索。遮罩的原点固定在该地图的入口位置,保证摄像头滚动时标记不会错位。实验表明,加了遮罩之后AI在彩叶镇的地图覆盖率从12%提升到41%,重复访问同一格子的次数也明显减少。

    Q2:PokeRL的防循环机制为什么要用三层,一层惩罚不够吗?

    A:单层惩罚容易被AI绕过。比如只惩罚位置重复,AI可能换成在稍微不同的两个位置之间来回切换,形式上不触发惩罚但实质上仍是无效循环。三层机制分别针对位置频率、行动模式和空间轨迹三个维度,覆盖了循环行为的不同表现形式,互相补充。实验数据显示三层机制合用后循环局比例从41.2%降到了4.7%,效果相当显著。

    Q3:PokeRL训练出的AI最终能打通《精灵宝可梦·红版》整个游戏吗?

    A:目前不能。PokeRL只针对游戏最开头的三个阶段进行了训练,分别是走出房间、探索到高草丛和赢得第一场对战,三个阶段的成功率分别约为65%、60%和50%,距离通关整个游戏还差得很远。研究团队的定位也很明确:这是一个研究早期游戏段落的实验平台,目标是为更复杂的长期任务打基础,而不是直接造出一个能打通全游戏的AI。