对人胜率84%,DeepMind AI首次在西洋陆军棋中达到人类专家水平

秋伟君_2166

秋伟君_2166

2023-04-12

1533人浏览

转载

deepmind在游戏ai领域又有了新成绩,这次是西洋陆军棋。

在AI游戏领域,人工智能的进展往往通过棋盘游戏进行展现。棋盘游戏可以度量和评估人类和机器如何在受控环境中发展和执行策略。数十年来,提前规划的能力一直是AI在国际象棋、跳棋、将棋和围棋等完美信息游戏以及扑克、苏格兰场等不完美信息游戏中取得成功的关键。

西洋陆军棋(Stratego)已经成为AI研究的下一批前沿领域之一。该游戏的阶段和机制的可视化图如下1a所示。该游戏面临以下两个挑战。

其一,Stratego 的博弈树具有 10535个可能状态,这要多于已经得到充分研究的不完美信息游戏无限制德州扑克(10164个可能状态)和围棋游戏(10360个可能状态)。

其二,在Stratego的给定环境中行动需要在游戏开始时为每个玩家推理超过1066个可能的部署,而扑克只有103对可能的牌。围棋和国际象棋等完美信息游戏没有私有部署阶段,因此避免了Stratego中这一挑战带来的复杂性。

目前,我们不可能使用基于模型的SOTA完美信息规划技术,也无法使用将游戏分解为独立情况的不完美信息搜索技术。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

图片由于这些原因,Stratego为研究大规模策略交互提供了一个挑战性基准。与大多数棋盘游戏相似,Stratego测试我们循序地做出相对较慢、深思熟虑和合乎逻辑决策的能力。又由于该游戏的结构非常复杂,AI研究社区几乎没能取得什么进展,人工智能体只能达到人类业余玩家的水平。因此,在从零开始且没有人类演示数据的情况下,开发智能体学习端到端策略以在Stratego的不完美信息下做出最佳决策,仍然是AI研究面临的重大挑战之一。

近日,在 DeepMind 的一篇最新论文中,研究者提出了 DeepNash,它是一种无需人类演示、以无模型(model-free)方式学习Stratego自我博弈的智能体。DeepNask击败了以往的SOTA AI智能体,并在该游戏最复杂的变体Stratego Classic中实现了专家级人类玩家的水平。

图片

图片论文地址:https://arxiv.org/pdf/2206.15378.pdf。

DeepNash的核心是一种条理化、无模型的强化学习算法,研究者称为Regularized Nash Dynamics(R-NaD)。DeepNash将R-NaD与一个深度神经网络架构相结合,并收敛到纳什均衡,这意味着它学会了在激励竞争下比赛,并对试图利用它的竞争对手具有稳健性。

下图 1 b 为DeepNash方法的高级概览。研究者在Gravon游戏平台上将它的表现与各种SOTA Stratego机器人和人类玩家进行了系统比较。结果显示,DeepNash以超过 97% 的胜率击败了当前所有 SOTA机器人,并与人类玩家进行了激烈竞争,在2022年度和各个时期的排行榜上都位列前3名,胜率达到了84%。

图片

研究者表示,在学习算法中不部署任何搜索方法的情况下,AI算法第一次能够在复杂棋盘游戏中达到人类专家水平,也是AI首次在Stratego游戏中实现人类专家水平。

方法概述

DeepNash 采用端到端的学习策略运行Stratego,并在游戏开始时将棋子战术性地放在棋盘上(见图 1a),在game-play阶段,研究者使用集成深度 RL 和博弈论方法。智能体旨在通过自我博弈来学习一个近似的纳什均衡。

该研究采用无需搜索的正交路径,并提出了一种新方法,将自我博弈中的无模型(model-free)强化学习与博弈论算法思想——正则化纳什动力学 (RNaD) 相结合。

无模型部分意味着该研究没有建立一个明确的对手模型来跟踪对手可能出现的状态,博弈论部分基于这样的思路,即在强化学习方法的基础上,他们引导智能体学习行为朝着纳什均衡的方向发展。这种组合方法的主要优点是不需要从公共状态中显式地模拟私有状态。另外一个复杂的挑战是,将这种无模型的强化学习方法与R-NaD相结合,使西洋陆军棋中的自我博弈与人类专家玩家相竞争,这是迄今为止尚未实现的。这种组合的DeepNash方法如上图1b所示。

响应式人工智能写作助手网站模板
响应式人工智能写作助手网站模板

响应式人工智能写作助手网站模板是一款适合人工智能写作助手服务网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。

下载

正则化纳什动力学算法

DeepNash 中使用的 R-NaD 学习算法是基于正则化思想以达到收敛的目的,R-NaD 依赖于三个关键步骤,如下图 2b所示:图片

图片

DeepNash 由三个组件组成:(1) 核心训练组件 R-NaD;(2) 微调学习策略以减少模型采取极不可能动作的残差概率,以及 (3) 测试时进行后处理以过滤掉低概率动作并纠错。

DeepNash 的网络由以下组件构成:一个带有残差块和跳跃连接的 U-Net 主干,以及四个头。第一个 DeepNash 头将价值函数输出为标量,而其余三个头通过在部署和游戏期间输出其动作的概率分布来编码智能体策略。这个观测张量的结构如图3所示:
图片

图片

实验结果

DeepNash 还与几个现有的Stratego计算机程序进行了评估:Probe 在 Computer Stratego 世界锦标赛中,其中有三年夺冠(2007 年、2008 年、2010 年);Master of the Flag在 2009 年赢得了该冠军;Demon of Ignorance 是 Stratego 的开源实现;Asmodeus、Celsius、Celsius1.1、PeternLewis 和 Vixen 是 2012 年在澳大利亚大学编程竞赛中提交的程序,此次比赛PeternLewis 获胜。

如表1所示,DeepNash在对抗所有这些智能体时赢得了绝大多数的游戏,尽管DeepNash没有接受过对抗训练,只是使用自我博弈。

图片

 
下图 4a举例说明DeepNash中的一些经常重复的部署方式;图 4b 显示了 DeepNash(蓝方)在棋子中落后(输掉了 7 和 8)但在信息方面领先的情况,因为红方的对手有 10、9、8 和两个7。图 4c 中的第二个示例显示了 DeepNash 有机会用其 9 捕获对手的 6,但这一举措并未被考虑,可能是因为DeepNash认为保护 9 的身份被认为比物质收益更重要。

图片

 
在下图5a中,研究者展示了积极的唬骗(positive bluffing),玩家假装棋子的价值高于实际价值。DeepNash用未知棋子Scout (2) 追逐对手的8,并假装它是10。对手认为这个棋子可能是10,将其引导至Spy旁边(可以捕获10)。但是,为了夺取这枚棋子,对手的Spy输给了DeepNash的Scout。

第二类唬骗为消极唬骗(negative bluffing),如下图5b所示。它与积极唬骗相反,玩家假装棋子的价值低于实际价值。

下图5c展示了一种更复杂的bluff,其中DeepNash将其未公开的Scout (2)接近对手的10,这可以被解释为Spy。这种策略实际上允许蓝方在几步之后用7捕获红方的5,因此获得material,阻止5捕获Scout (2),并揭示它实际上并不是Spy。

图片


相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

人工智能

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

80

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

60

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

200

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

140

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

120

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

80

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

60

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

80

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

40

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WPS AI手册
WPS AI手册

共0课时 | 0人学习

豆包AI手册
豆包AI手册

共0课时 | 0人学习

OpenClaw
OpenClaw

共0课时 | 0人学习