AI也来打掼蛋,难道人工智能也能当领导?

引言:探索AI在复杂卡牌游戏中的决策能力

在人工智能(AI)的研究领域中,游戏被视为现实世界的简化模型,常常是研究的首选平台。这些研究主要关注游戏代理的决策过程。例如,中国的传统卡牌游戏“掼蛋”(字面意思是“扔鸡蛋”)就是一个挑战性极强的游戏,在这个游戏中,即使是专业的人类玩家有时也难以做出正确的决策。而在掼蛋游戏中也流传着这样一个说法:“掼蛋打得好,适合当领导”,这也是独属人类世界的“玩法”,和某种合作行为的体现。本篇研究将探讨AI在这类复杂卡牌游戏中的决策能力,特别是它们如何通过蒙特卡洛方法和深度神经网络来掌握游戏规则,并在游戏中做出合作等复杂行为的决策。

标题:Mastering the Game of Guandan with Deep Reinforcement Learning and Behavior Regulating

公众号「夕小瑶科技说」后台回复“掼蛋”获取论文pdf。

背景介绍:掼蛋游戏的特点与挑战

掼蛋,一种起源于中国江苏省的四人固定搭档出牌型攀牌游戏,近年来迅速走红并登上了第五届全国智力运动会。游戏使用两副标准的52张牌加上四张王牌,每位玩家起始持有27张牌。掼蛋的独特之处在于其多样的可玩牌型组合,使得游戏富有娱乐性。游戏中的一种强力牌型被称为“炸弹”,这也是“掼蛋”(直译为“扔鸡蛋”)名称的由来,因为在中文里“炸弹”与“鸡蛋”谐音。掌握如何使用炸弹是游戏的难点之一,因为平均来说,玩家手中不会超过三个炸弹。

掼蛋与另一种扑克游戏斗地主类似,但由于其独特的级牌系统而有所区别。每队以二级牌开始比赛,争先将级牌升至A。

  • 级牌不仅作为两队的记分系统,还具有强大的特权。例如,当前级牌可以压制所有牌型,除了王牌,而且两张红桃级牌成为百搭牌。

  • 百搭牌不能代表任何王牌,但可以代表其他所有牌型,使其成为非常强大的实用牌型。例如,玩家可以利用百搭牌创建强力的牌型组合,如炸弹或同花顺,这在缺少特定牌时是不可能的。

掼蛋游戏由多个小局组成。我们将小局定义为在固定级牌下决定每位玩家排名的所有动作序列。当一队的成员率先打完手中的牌,即成为庄家,该队便赢得了小局。小局结束后,根据队员的排名,获胜队伍的级牌可以升级至多三级。当获胜队伍的级牌为A且最后没有队员成为最后一名时,整个游戏结束。

每个小局开始时(除了第一个小局),玩家必须进行一个贡品过程,其中上一小局的最后一名(住户)必须将其最高级别的牌捐赠给庄家。百搭牌不被视为最高级别的牌。为了平衡每位玩家的牌数,庄家必须返回一张不高于十的牌

由于贡品过程与实际出牌分开,我们没有使用强化学习来帮助代理决定捐赠/返回哪张牌,而是采用了通常足够的基于规则的方法。

GuanZero框架简介:结合蒙特卡洛方法和深度神经网络

在本篇论文中研究者们提出了一个名为GuanZero的强化学习框架,旨在让AI代理不仅掌握掼蛋游戏,还能以高效的方式理解所需的行为。GuanZero框架依赖于深度蒙特卡洛(Deep Monte-Carlo,DMC)方法,利用其出色的可扩展性,同时通过精心设计的神经网络编码方案培养合作等所需行为。

蒙特卡洛(MC)方法是一种简单而有效的估算价值函数的方法,有助于发现最优策略。它们之所以简单,是因为除了通过与环境的交互获得的经验(包括状态、动作和奖励)之外,不需要对环境有完整的了解。这种经验甚至可以通过模拟获得。MC方法通过平均样本回报来解决强化学习问题。

下一节将讨论如何编码状态和动作,这些将作为输入馈送到神经网络中。

状态表示与行为编码:如何通过神经网络编码游戏状态和行为

1. 卡牌的独特编码方式

在关乎状态表示的问题上,神经网络需要能够理解和处理游戏中的各种卡牌组合。在观察了掼蛋游戏中卡牌的重要性之后,研究者们决定将每张卡牌视为一个独特的实体,并为其分配一个介于1到108之间的数字

这种编码方式可以通过一个8x15的矩阵来可视化,其中每一行代表一个特定的花色,第四行和第八行还包括了四张王牌。在这个矩阵中,存在于玩家手中的卡牌会被设置为1,其余则为0。这样的编码方式不仅考虑了卡牌的花色和等级,还能追踪剩余卡牌的数量,这对于游戏来说至关重要。在输入到神经网络之前,这个矩阵会被展平成一个108维的一热向量。

2. 代表合作、矮化和协助行为的一热向量

在掼蛋中,合作行为被定义为玩家在能够出牌打败队友的牌时选择不出牌。这种行为通常被人类玩家所青睐,因为游戏的目标是尽快打出手中的卡牌,帮助队友同样重要。为了衡量代理执行合作行为的频率,研究者们定义了合作率这一指标。

除此之外,还有矮化行为,即玩家选择出一个大于对手最小手牌数量的牌组合,使得获胜的对手难以应对。

最后是协助行为,玩家出的牌组合小于队友的手牌数量,使得队友更容易找到应对的牌。这些行为的状态通过长度为三的一热向量来表示:

  • 当不满足行为条件时,向量被设置为[1, 0, 0];

  • 当满足条件时,根据玩家的选择,向量被设置为[0, 1, 0](执行行为)或[0, 0, 1](不执行行为)。

这样的设计原则为代理提供了一个简单而逻辑严密的机制来学习何时合作,何时不合作。

神经网络架构:LSTM与前馈网络的结合

神经网络的架构旨在接受状态s和行为a作为输入,并估计结果的预期累积奖励Q(s, a)。状态由一系列特征的丰富组合表示,这些特征已在表1中详细列出。为了正确处理历史行为,研究者们采用了长短期记忆网络(Long Short Term Memory ,LSTM)来捕捉行为、状态和价值之间的长期依赖性。

LSTM网络通过学习何时记住和何时忘记相关信息来实现这一点,同时通过允许梯度不变地流动,缓解了梯度消失问题。这些LSTM的属性反过来又促进了学习过程。在对历史行为进行特殊处理的同时,所有状态中的特征以及行为都被串联起来,输入到一个由六层密集层组成的前馈神经网络中,激活函数为修正线性单元(ReLU)。

分布式学习过程:如何通过并行化提高训练效率

在深度强化学习中,分布式学习过程是提高训练效率的关键策略之一。通过并行化,研究者们能够在多个环境实例中同时运行多个智能体,这样可以显著加快数据收集的速度,从而加速学习过程。

1. 分布式学习的基本原理

分布式学习的核心思想是将学习任务分散到多个计算节点上。在这种设置中,每个节点都运行一个智能体的副本,并与环境进行交互以收集数据。然后,这些数据被用来更新一个共享的全局模型。这种方法的优势在于,它允许智能体并行地探索状态空间,而不是顺序地进行,这样可以更快地覆盖更多的状态—动作对。

2. GuanZero的分布式学习实现

在GuanZero框架中,研究者们采用了类似于A3C(Asynchronous Advantage Actor-Critic)的分布式学习方法。为四名玩家分别设置了四个网络,分别命名为'p1'、'p2'、'p3'和'p4',并根据第一个小游戏中的出牌顺序进行分配。

然后通过将模拟任务分配给四个执行者来并行化学习过程。每个执行者在模拟智能体与环境交互时都维护一个本地网络(LN)。这些本地网络会定期与学习过程中维护的四个全局网络同步。学习过程根据执行者获得的经验来更新这些全局网络。

通过这种分布式学习方法,能够快速生成大量的样本,从而减轻了蒙特卡洛方法高方差的问题,并提高了训练效率。此外还利用了长短期记忆(LSTM)网络来捕捉动作、状态和价值之间的长期依赖关系,这进一步增强了模型的学习能力。

实验设置:对比GuanZero与其他AI代理的性能

为了验证GuanZero框架的有效性,研究者们设置了一系列实验来比较GuanZero与其他AI代理的性能。

1. 对手智能体

研究者们使用了多种类型的对手智能体,包括随机选择动作的随机智能体、基于规则的中国关牌AI算法竞赛(CGAIAC)冠军智能体,以及使用DouZero框架训练的基于强化学习的智能体。所有这些智能体都经过了充分的训练直到收敛。

2. 性能评估

研究者们通过胜率(WR)作为评估智能体强度的唯一指标。在实验中将GuanZero智能体与上述所有对手进行对抗,并记录了胜率。

  • 实验结果显示,GuanZero智能体在与随机智能体对抗时取得了压倒性的胜利,这表明随机智能体大多数时候无法做出良好的决策。

  • 在与基于规则的CGAIAC智能体对抗时,GuanZero智能体面临了一定的抵抗,但随着足够数量的模拟,基于强化学习的智能体开始展现出其优势,因为它们能够找到针对规则智能体的反制动作。

  • 此外,GuanZero智能体在与DouZero基础智能体的对抗中最初遇到了激烈的抵抗,但随着训练的进行,GuanZero智能体迅速获得了上风,并且训练效率令人满意,不到一周就观察到了收敛的迹象。

通过这些实验,研究者们证明了GuanZero框架在关牌游戏中的有效性,并通过行为调节机制进一步提升了智能体的性能。

行为调节的效果分析:合作、矮化和协助行为的学习过程

1. 合作行为的学习与效果

GuanZero通过特定的神经网络编码方案,使得代理能够学习何时合作,何时不合作。合作率的度量标准是代理实际合作的次数与合作条件满足的次数之比。训练过程中,GuanZero代理的合作率稳定在一个显著高于随机代理基线值的水平,这表明GuanZero代理成功学习了合作行为,并在实践中有效地应用了这一行为。

2. 矮化行为的学习与效果

GuanZero代理学习矮化行为的过程较为复杂,因为其发生条件较为严格,且出现频率较低。尽管如此,GuanZero代理最终还是学会了何时执行矮化行为。训练过程显示,矮化率有较大波动,但最终趋于稳定,代理能够在适当的时机执行矮化行为。

3. 协助行为的学习与效果

GuanZero代理在训练过程中学会了何时执行协助行为,协助率的趋势与矮化行为类似,经历了一段波动后趋于稳定。这表明GuanZero代理能够有效地学习并执行协助行为,以提高团队的整体表现。

结论与未来工作:GuanZero的成就与潜在改进方向

GuanZero通过深度强化学习和行为调节成功地掌握了掼蛋游戏,并在与其他先进算法的比较中展现出了优越的性能。GuanZero代理不仅学会了游戏的基本策略,还通过特别设计的神经网络编码方案学会了合作、矮化和协助等行为,这些行为对于团队胜利至关重要。

未来的工作将集中在进一步提高GuanZero的性能和泛化能力上。尽管GuanZero在掼蛋游戏中取得了显著的成就,但其特定的行为调节方案可能难以扩展到其他游戏或应用领域

此外,研究者们还希望探索其他形式的神经网络结构,因为当前的网络结构相对基础,更先进的神经网络不仅能够与不断增强的计算能力相匹配,还可能引导代理发现尚未想象到的新策略。

总结:AI在掼蛋游戏中的突破意义

人工智能(AI)在游戏领域的研究一直是AI研究的热点,尤其是在棋牌游戏中。近年来,AI在围棋、国际象棋等完全信息游戏中取得了显著进展,如AlphaGo和AlphaZero的成功。然而,在不完全信息的游戏中,AI面临着更大的挑战。掼蛋游戏就是一个具有巨大状态空间和复杂性的不完全信息游戏,它对AI研究提出了新的挑战。

掼蛋游戏的复杂性主要体现在其不完全信息的特性以及庞大的状态空间。传统算法如CFR在应用于多玩家设置时需要额外的调整,尤其是在需要鼓励队友间合作行为的情况下。此外,Guandan游戏中的信息集数量和合法动作数量都非常庞大,这可能会降低现有算法的效率。

  • 例如,与DQN结合使用的动作消除法就是为了减少Q函数中过度估计错误的风险,这些错误可能导致学习算法收敛到次优策略。

本篇论文提出了一个名为GuanZero的强化学习框架,旨在使AI代理不仅能够掌握掼蛋游戏,而且还能以高效的方式理解所需的行为。GuanZero框架依赖于DMC的可扩展性,并通过精心设计的神经网络编码方案培养合作等所需行为。

GuanZero的神经网络架构能够处理状态和动作的丰富组合,并通过LSTM网络捕捉动作、状态和价值之间的长期依赖性。此外,研究者们还建立了一个分布式学习过程,通过并行化模拟任务来加速学习过程,并使用胜率(WR)作为评估代理强度的唯一指标。

实验结果表明,GuanZero代理在与随机代理、基于规则的CGAIAC代理以及基于DouZero的代理的对抗中均取得了胜利。特别是在与DouZero基于代理的对抗中,GuanZero代理在训练过程中迅速占据上风,并且训练效率令人满意,不到一周就出现了收敛的迹象。

总的来说,GuanZero在掼蛋游戏中的突破意义在于其能够处理复杂的状态空间和不完全信息的挑战,并通过行为调节机制学习合作等所需行为。这一突破不仅展示了AI在处理复杂棋牌游戏中的潜力,为AI能够更好模仿人类的思维提供借鉴,也为未来AI在更广泛领域的应用奠定了基础。

公众号「夕小瑶科技说」后台回复“掼蛋”获取论文pdf。

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

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

相关文章

Windows Docker 部署 Jenkins

一、简介 今天介绍一下在 Windows Docker 中部署 Jenkins 软件。在 Windows Docker 中,分为两种情况 Linux 容器和 Windows 容器。Linux 容器是通常大多数使用的方式,Windows 容器用于 CI/CD 依赖 Windows 环境的情况。 二、Linux 容器 Linux 容器内部…

LeetCode -- 79.单词搜索

1. 问题描述 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水…

【前沿热点视觉算法|Sora|GPT4一键升级】一种新的图像分割方法:具有边界注意的两级解码网络

计算机视觉算法分享。问题或建议,请文章私信或者文章末尾扫码加微信留言。sora 具体介绍和使用方法:OpenAI Sora 下一代生产力:最新小白必看教程 | 解剖Sora的前世今生 | Sora核心源码目前 openai 官方还未开放 sora 灰度,不过根据…

黑马JavaWeb课程中安装vue脚手架出现的问题

1 安装node.js 要想前端工程化,必须安装node.js,前端工程化的环境。 在成功安装node.js后, 修改全局包安装路径为Node.js安装目录, 修改npm镜像源为淘宝镜像源,这里出现第一个问题,视频中给的淘宝镜像为&…

抽象类、模板方法模式

抽象类概述 在Java中abstract是抽象的意思,如果一个类中的某个方法的具体实现不能确定,就可以申明成abstract修饰的抽象方法(不能写方法体了),这个类必须用abstract修饰,被称为抽象类。 抽象方法定义&…

WSL2编译RV1126 SDK

接上一篇《WSL2部署RV1126 SDK编译环境》 1 编译配置 ./build.sh device/rockchip/rv1126_rv1109/aio-rv1126-jd4.mk 2 关闭Qt(可选) vim buildroot/configs/firefly_rv1126_rv1109_defconfig 3 启用ROS(可选) vim buildroot/conf…

链表基础知识详解(非常详细简单易懂)

概述: 链表作为 C 语言中一种基础的数据结构,在平时写程序的时候用的并不多,但在操作系统里面使用的非常多。不管是RTOS还是Linux等使用非常广泛,所以必须要搞懂链表,链表分为单向链表和双向链表,单向链表很…

Rocky Linux 安装部署 Zabbix 6.4

一、Zabbix的简介 Zabbix是一种开源的企业级监控解决方案,用于实时监测服务器、网络设备和应用程序的性能和可用性。它提供了强大的数据收集、处理和可视化功能,同时支持事件触发、报警通知和自动化任务等功能。Zabbix易于安装和配置,支持跨平…

HTTPS是什么,详解它的加密过程

目录 1.前言 2.两种加密解密方式 2.1对称加密 2.2非对称加密 3.HTTPS的加密过程 3.1针对明文的对称加密 3.2针对密钥的非对称加密 3.3证书的作用 1.前言 我们知道HTTP协议是超文本传输协议,它被广泛的应用在客户端服务器上,用来传输文字,图片,视频,js,html等.但是这种传…

【牛客】VL60 使用握手信号实现跨时钟域数据传输

题目描述 分别编写一个数据发送模块和一个数据接收模块,模块的时钟信号分别为clk_a,clk_b。两个时钟的频率不相同。数据发送模块循环发送0-7,在每个数据传输完成之后,间隔5个时钟,发送下一个数据。请在两个模块之间添加…

Harbor高可用(haproxy和keepalived)

Harbor高可用(haproxy和keepalived) 文章目录 Harbor高可用(haproxy和keepalived)1.Harbor高可用集群部署架构1.1 主机初始化1.1.1 设置网卡名和ip地址1.1.2 设置主机名1.1.3 配置镜像源1.1.4 关闭防火墙1.1.5 禁用SELinux1.1.6 设…

【力扣hot100】刷题笔记Day17

前言 今天竟然不用开组会!天大的好消息,安心刷题了 46. 全排列 - 力扣(LeetCode) 回溯(排列) class Solution:def permute(self, nums: List[int]) -> List[List[int]]:# 回溯def backtrack():if len(…