POK´ELLMON:在宝可梦战斗中实现人类水平的人工智能

人工智能咨询培训老师叶梓 转载标明出处

最近,由美国乔治亚理工学院的Sihao Hu、Tiansheng Huang和Ling Liu发表的论文介绍了POK´ELLMON,这是一个开创性的基于大模型(LLM)的具身智能体,它在战术战斗游戏中,特别是宝可梦战斗中,实现了与人类相媲美的表现。这标志着人工智能在与虚拟环境互动方面的能力有了显著提升,这种互动方式与人类行为非常相似。

POK´ELLMON配备的三种策略

POKE´LLMON系统是一个为宝可梦对战设计的智能体,其框架在图5中有所展示。这个系统的核心在于使用之前的动作和相应的基于文本的反馈来不断优化其策略。它通过分析历史动作和结果来学习并改进其决策过程。

在每一轮对战中,POKE´LLMON会考虑之前采取的动作和这些动作的效果,以此来调整其策略。这个过程是迭代的,系统会不断地从每次对战中学习并更新其行为模式。系统不仅仅是简单地重复之前的动作,而是通过分析反馈来理解哪些动作是有效的,哪些需要改进。

POKE´LLMON还会将当前状态信息与外部知识相结合。这包括宝可梦的类型优势/劣势关系以及招式/特性的效果。这些信息对于制定有效的对战策略至关重要。例如,了解某个宝可梦类型对另一个类型有优势,可以帮助系统决定在特定情况下使用哪些宝可梦或招式。

系统将上述所有信息作为输入,独立生成多个可能的动作。这些动作是系统基于当前对战环境和已有知识生成的。然后,系统会在这些生成的动作中选择最一致的动作作为最终输出执行。选择最一致的动作意味着系统会优先考虑那些与它的策略和目标最匹配的动作,从而提高其在对战中的成功率。

POK´ELLMON的设计包括三个关键策略:

1、上下文强化学习

在POK´ELLMON的设计中,上下文强化学习(ICRL)扮演了一个至关重要的角色。这种学习机制的核心在于利用战斗过程中产生的即时文本反馈,来动态调整智能体的行动策略。这种反馈可以是关于宝可梦HP的变化、攻击招式的有效性、招式执行的优先级,或是招式的实际效果等。这些信息被智能体用作一种“奖励”,帮助其在没有额外训练的情况下,即时优化其决策过程。

在实际应用中,ICRL生成了四种类型的反馈:

  1. HP变化:通过观察连续两回合的HP变化,智能体可以评估攻击招式的实际伤害效果。这有助于智能体理解哪些招式在当前战斗中更有效。

  2. 攻击招式有效性:智能体会根据战斗结果判断攻击招式是否非常有效、无效或由于属性优势或能力/招式效果而无效。这种反馈帮助智能体识别并避免使用效果不佳的招式。

  3. 招式执行优先级:通过分析招式的执行顺序,智能体可以对战斗中的速度因素有一个大致的估计,尽管对手宝可梦的精确状态可能不可用。

  4. 执行招式的实际效果:智能体还会考虑招式除了造成直接伤害外的其他效果,如状态提升、HP恢复、中毒、烧伤或冻结等。

ICRL的一个关键优势是它能够使智能体在战斗中即时学习和适应。例如,如果智能体发现其使用的水属性攻击对对手的宝可梦没有效果,因为它具有“干燥皮肤”特性,那么它可以通过观察战斗动画中的“免疫”信息,及时调整其行动策略。这种即时反馈机制使得智能体能够像人类玩家一样,根据战斗的实时变化做出反应。

图6显示代理重复使用相同的攻击招式“蟹钳锤”(Crabhammer)对对手的毒蟾斗士(Toxicroak)没有效果,因为其特性“干燥皮肤”(Dry Skin)可以抵消水系招式的伤害
图7显示在第三回合中,代理使用“精神冲击”(Psyshock),但对对手的宝可梦没有造成伤害。通过ICRL,代理切换到另一个宝可梦

2、知识增强生成

POK´ELLMON智能体在设计中采用了知识增强生成(KAG)这一策略,以提高其在宝可梦战斗中的决策质量。KAG的核心在于利用外部知识来辅助智能体做出更准确的判断和行动选择。这种方法特别针对智能体在战斗中可能出现的幻觉问题,即错误地识别宝可梦类型优势或招式效果。

在宝可梦战斗中,了解不同类型之间的优势和劣势至关重要。例如,火属性攻击对草属性宝可梦会造成双倍伤害,而对水属性宝可梦则效果减半。通过在战斗状态描述中明确标注这些类型关系,智能体能够更直观地识别出哪些宝可梦在当前战斗中具有优势,从而做出更合适的宝可梦选择和招式使用。

宝可梦世界中有数百种招式和能力,每种都有其独特的效果。例如,“龙之舞”可以提升使用者的攻击和速度,而“迷雾”则可以重置双方宝可梦的状态提升并清除异常状态。为了帮助智能体准确理解这些效果,研究者们从宝可梦百科全书(Bulbapedia)中收集了所有招式和能力的描述,并将其整合到智能体的状态描述中。这样,智能体在做出决策时,可以更全面地考虑各种招式和能力的实际效果。

通过KAG,智能体在战斗中的表现显著提升。例如,在一个战斗场景中,智能体可能会面对一只地面属性的宝可梦。如果智能体使用的是钢属性的宝可梦,通常情况下,它会选择切换到另一只宝可梦以避免受到地面属性攻击的伤害。但是,通过KAG,智能体能够识别出可以使用“磁浮”招式来避免地面属性攻击的效果,从而在战斗中占据优势。

KAG的引入显著提高了智能体的胜率。在与启发式机器人的战斗中,仅考虑类型优势关系的KAG策略就将胜率从36%提高到了55%。而当结合考虑招式/能力效果时,KAG的胜率进一步提升至58%,接近人类玩家的水平。

知识增强生成(KAG)在与机器人对战中的性能

3、一致行动生成

一致行动生成旨在解决智能体在面对复杂战斗情况时可能出现的行动不一致问题。这种策略特别针对智能体在面对强大对手时可能出现的“恐慌切换”现象,即智能体在连续几个回合中不断切换宝可梦,试图逃避战斗,但这种行为往往导致失去了攻击的机会,最终可能导致失败。

在宝可梦战斗中,每次回合只能进行一次行动,这包括使用招式或切换宝可梦。如果智能体选择切换宝可梦,而对手选择攻击,那么新上场的宝可梦将会承受这次攻击。通常情况下,智能体会在认为通过切换宝可梦可以获得类型优势时进行切换。然而,如果智能体在面对强大对手时反复切换,这种行为就会变得不一致,甚至可能引发恐慌,导致连续几回合的无效行动。

为了解决这一问题,POK´ELLMON采用了一致行动生成策略,具体实施如下:

  1. 多次生成行动:智能体不是一次性生成一个行动,而是多次生成多个可能的行动选项。

  2. 投票机制:通过一种投票机制,智能体从生成的多个行动中选择最一致的行动作为最终输出。这种方法减少了因单一决策导致的行动不一致性。

  3. 减少恐慌切换:通过这种方式,智能体能够避免在面对强大对手时产生恐慌情绪,从而减少连续切换宝可梦的行为,保持战斗的连贯性和策略性。

在与人类玩家的在线战斗中,一致行动生成策略显著提高了POK´ELLMON的表现。例如,在一些战斗中,智能体能够通过选择有效的招式和适时切换宝可梦,成功地使对手的整个队伍失去战斗能力。这种策略使得智能体在战斗中表现得更加稳定和可靠。

不同提示方法在与机器人对战中的性能

研究者们发现,使用一致行动生成策略的智能体在战斗中的胜率有所提高。智能体在采用一致行动生成策略时,其连续切换宝可梦的比率降低,从而减少了因恐慌切换导致的战斗失误。

为了测试POK´ELLMON与人类玩家的战斗能力,研究者在宝可梦对决平台上设置了第八世代的战斗,智能体与随机人类玩家进行了梯度比赛。此外,还邀请了一位拥有超过15年宝可梦游戏经验的人类玩家,代表普通人类玩家的能力与POK´ELLMON对战。

POK´ELLMON在每个回合中选择有效的招式,使用一个宝可梦使对手的整个队伍晕倒

POK´ELLMON在与梯度玩家的比赛中表现出与有丰富战斗经验的纪律性玩家相当的性能,并在与受邀玩家的比赛中取得了更高的胜率。梯度比赛中的平均回合数较低,因为人类玩家有时会在认为自己会输时放弃比赛以节省时间。

优势:POK´ELLMON很少在选择有效招式和切换到另一只合适的宝可梦时犯错,这得益于KAG策略。例如,在一场战斗中,智能体只使用一只宝可梦就使对手的整个队伍晕倒,通过选择针对不同宝可梦的不同攻击招式。

弱点:POK´ELLMON倾向于采取能够实现短期利益的行动,因此使其容易受到人类玩家的消耗策略的影响,这种策略需要长期努力才能打破。例如,在多次回合后,智能体的整个队伍被人类玩家的宝可梦击败,这些宝可梦显著提升了防御并频繁恢复。打破僵局的关键是首先提升宝可梦的攻击到非常高的阶段,然后攻击以造成无法恢复的伤害,这是一个需要多个回合共同努力的长期目标。POK´ELLMON在长期规划方面较弱,因为当前的设计没有在多个时间步长中考虑长期计划,这将是未来工作的一部分。

POK´ELLMON在面对人类玩家的消耗策略时的弱点:对手频繁恢复高防御宝可梦

经验丰富的人类玩家可以误导智能体采取不良行动。例如,智能体的Zygarde有一次使用增强攻击招式的机会。在第二回合结束时,对手的Mawile被击倒,导致被迫切换,对手选择切换到Kyurem。这个切换是一个诱饵,诱使智能体在第三回合使用龙属性招式,因为Kyurem对龙属性攻击很脆弱。在第三回合,对手在开始时切换到Tapu Bulu,一种对龙属性攻击免疫的宝可梦,使增强的攻击机会被浪费。智能体被愚弄了,因为它仅基于当前状态信息做出决策,而经验丰富的玩家不仅考虑状态信息,还预测对手的下一步行动。

一个经验丰富的人类玩家如何误导代理使用龙属性攻击:首先派出一个龙属性的宝可梦,然后立即切换到另一个对龙属性攻击免疫的宝可梦

POK´ELLMON代表了人工智能领域的一个重要进步,展示了在战术战斗游戏中与人类相媲美的表现。POK´ELLMON采用的策略,如ICRL、KAG和一致行动生成,不仅提高了其在宝可梦战斗中的表现,还可能在其他游戏环境中应用。未来工作需要解决代理的弱点并进一步改进其能力。

论文地址:https://arxiv.org/abs/2402.01118

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/404688.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

海康VisionMaster使用学习笔记11-VisionMaster基本操作

VisionMaster基本操作 VM示例方案 1. 工具拖拽及使用方式 分别从采集和定位栏里拖拽图像源,快速匹配,Blob分析工具 2. 模块连线 依次连线 3.如何订阅 点击快速匹配,可以看到输入源已订阅了图像1的图像,Blob分析类似 4. 方案操作及全局触发 点击快速匹配,创建特征模版,框选…

【Hot100】LeetCode—2. 两数相加

目录 1- 思路思路 2- 实现⭐2. 两数相加——题解思路 3- ACM 实现 原题连接:2. 两数相加 1- 思路 思路 分为几个步骤 ①数据结构:遍历指针,进位符、②遍历两个链表、③处理最后的进位符 1- 数据结构 定义 curA 和 curB 用来遍历两个链表定义 carry 记…

慎投!4本SCI/SSCI期刊被剔,8月WOS已更新!

SCI/SSCI期刊目录8月份已更新!快来查收最新动态!如有相关领域作者有意投稿,可作为重点关注! ​ 期刊动态 ​ 2024年8月科睿唯安期刊目录更新 2024年8月20日,科睿唯安更新了WOS期刊目录,此次更新&#x…

O2OA(翱途)服务器配置与管理-如何修改服务器内存占用率?

o2server 启动后一般占用大约4G~6G内存空间,在启动脚本中默认设置 -Xms2g 限定heap(堆)的大小最小2G,可以通过设置-Xmx来设置堆的上限. Xms -Xms2g:设置JVM初始堆内存为2g.此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存. Xmx -Xmx5g:设置JVM最大堆内存为5g.…

ES-分布式搜索引擎

DSL查询文档 精确查询 、 我附近的人 实例 根据页码跳转无法使用 高亮

Bonree ONE 3.0:全域可观测 运维新境界

2024年8月16日,备受瞩目的Bonree ONE 3.0产品发布会上海站在上海中心大厦隆重举行。此次发布会以”Take IT Easy“——全域可观测,运维新境界为主题,博睿数据正式发布了一体化智能可观测平台Bonree ONE 3.0版本。Bonree ONE 3.0凭借领先的全域…

Vuepress,搭建自己的技术文档

Vuepress Vuepress用于构建静态站点,非常适合搭建技术文档。如果手头上有开源项目,或者公司内部有项目需要做官网,且官网中大部分都是介绍、用法之类的文章。那么Vuepress是不二选择! 我们看到的一些项目的技术文档,…

动态创建 Delphi 按钮的完整指南:基于配置文件的 `TGridPanel` 实现

在 Delphi 开发中,我们经常需要根据不同的配置动态生成 UI 元素。本文将带你通过一个完整的示例,演示如何根据配置文件动态创建按钮,并将它们排列在一个 TGridPanel 中。每个按钮的标题、链接、颜色和大小都将从配置文件中读取。 “C:\myApp\…

MySQL基础架构和日志系统

MySQL基础架构和日志系统 1,逻辑架构图1.1 连接器1.2.1 查询缓存1.2.2 分析器1.3 优化器1.4 执行器 2,日志系统2.1 redo log(重做日志)2.2 binlog(归档日志)2.3 两阶段提交2.3.1 崩溃恢复机制是什么&#x…

I.MX6U交叉编译Qt项目-思维导图-学习笔记-基于正点原子阿尔法开发板

I.MX6U交叉编译Qt项目 安装交叉编译器 交叉编译器介绍 拷贝fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh至ubuntu 执行下面的指令修改脚本的权限,修改权限后可以看到此脚本颜色显示改变,说明修改成功 chmod…

QT事件机制理解

事件和信号 从硬件层来看: 事件就是一种中断, 中断的产生形式: 1.用户操控硬件所产生的中断。 2.由系统自身所产生的中断,比如说定时器。 这种中断由系统内核监控,由系统内核接收到中断并向CPU发出的执行请求就叫信号。所以说事件是信号产生…

异步交互技术Ajax

目录 一、同步交互和异步交互 二、Ajax 1.概述 2.如何实现ajax请求 三、异步传输数据乱码的问题 regist.html页面代码 服务端代码处理 一、同步交互和异步交互 同步交互:在同步交互中,参与的各方在同一时间进行交流。请求一项操作后,发…

这样理解嵌入式术语

1.裸机开发:n个人拉屎,先进去一个拉完,下一个再来; 2.看门狗:如果有人拉完屎还占着茅坑刷视频,把他拖出去 3.中断系统:n个人拉屎,先进去的拉完,下一个再来。如果有拉肚…

陪跑案例 | 德国营养师吴迪:从胖妹逆袭塑形导师!公开首场发售秘籍

有目标,有心力的老师,一旦找对方法和团队,能够化解99%的问题。 今天,创客匠人【陪跑案例故事】专栏推出第四期内容,为大家介绍【梦想身型健康学院】平台创始人吴迪老师的陪跑故事。 吴迪老师是梦想身型训练营创始人、德…

海外媒体投稿:5个软文代发推广入门技巧

1. 软文代发概述 软文代发是一种通过第三方渠道发布软文的推广方式。它可以帮助小白快速上手推广,提高品牌知名度、产品销量等。软文代发不仅能够吸引更多的目标用户,还能提高网站的流量和转化率,从而带来更多的商机。 2. 明确目标受众和需求…

【vue讲解:ref属性、动态组件、插槽、vue-cli创建项目、vue项目目录介绍、vue项目开发规范、es6导入导出语法】

0 ref属性&#xff08;组件间通信&#xff09; # 1 ref属性放在普通标签上<input type"text" v-model"name" ref"myinput">通过 this.$refs[myinput] 拿到的是 原生dom对象操作dom对象&#xff1a;改值&#xff0c;换属性。。。# 2 ref属…

Java项目集成RocketMQ

文章目录 1.调整MQ的配置1.进入bin目录2.关闭broker和namesrv3.查看进程确认关闭4.编辑配置文件broker.conf&#xff0c;配置brokerIP15.开放端口109116.重新启动1.进入bin目录2.启动mqnamesrv和mqbroker1.启动 NameServer 并将输出重定向到 mqnamesrv.log2.**启动 Broker 并将…

YouTube最好用的翻译插件

相信很多同学和我一样&#xff0c;想看YouTube视频时发现基本上都说英文&#xff0c;以我的英文水平&#x1f923;去观看真是一言难尽&#xff0c;所以就想着看能不能在谷歌浏览器上找一个插件来进行翻译&#xff0c;结果还真让我找到了一个不错的Youtube翻译插件&#xff0c;它…

【数据结构】队列的实现

0. 前言 上期博客给大家讲解了 栈 以及 栈的实现&#xff0c;今天再给大家讲一个特殊的顺序表结构&#xff0c;那就是队列&#xff01; 下面就进入正题&#xff01;一起学习一下吧&#xff01; 1. 队列 1.1 队列的概念 队列&#xff1a;只允许在一端进行插入数据操作&…

多媒体技术及应用课程思政网站

摘 要 在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括多媒体技术及应用课程思政网站的网络应用&#xff0c;在外国多媒体技术及应用课程思政已经是很普遍的方式&#xff0c;不过国内的多媒体技术及应用课程思政可能还处于起…