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.mzph.cn/news/712336.shtml

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

相关文章

Unity(第十七部)Unity自带的角色控制器

组件Character Controller 中文角色控制器 using System.Collections; using System.Collections.Generic; using UnityEngine;public class player : MonoBehaviour {private CharacterController player;void Start(){player GetComponent<CharacterController>();}v…

对于爬虫的学习

本地爬取 package MyApi.a08regexdemo;import java.util.regex.Matcher; import java.util.regex.Pattern;public class RegexDemo03 {public static void main(String[] args) {//要求&#xff1a;找出里面所有javaxxString str"Java自从95年问世以来&#xff0c;经历了…

HarmonyOS—编译构建概述

编译构建是将应用/服务的源代码、资源、第三方库等&#xff0c;通过编译工具转换为可直接在硬件设备上运行的二进制机器码&#xff0c;然后再将二进制机器码封装为HAP/APP软件包&#xff0c;并为HAP/APP包进行签名的过程。其中&#xff0c;HAP是可以直接运行在模拟器或真机设备…

牛皮癣发作和复发的触发因素

谷禾健康 银屑病&#xff0c;又叫牛皮癣&#xff0c;会导致出现皮疹伴发痒的鳞状斑块&#xff0c;最常见于膝盖、肘部、躯干和头皮。通常呈周期性发展&#xff0c;发作数周或数月&#xff0c;然后消退一段时间&#xff0c;长期的发作和复发会给患者带来很大的痛苦和困扰&#x…

Qt5.9.9交叉编译(带sqlite3、OpenSSL)

1、交叉编译工具链 这里ARM平台是ARM CortexA9的&#xff0c;一般交叉编译工具链demo板厂商都会提供&#xff0c;若未提供或想更换新版本的交叉编译工具链可参考以下方式获取。 1.1 下载适用于ARM CortexA9的交叉编译工具链 Linaro Releases下载gcc4的最新版xxxx-i686_arm-li…

string【基础篇】

1.1string字符串类 注意&#xff1a;这个类独立于所使用的编码来处理字节:如果用来处理多字节或变长字符(如UTF-8)的序列&#xff0c;这个 类的所有成员(如长度或大小)以及它的迭代器&#xff0c;将仍然按照字节(而不是实际编码的字符)来操作。 总结&#xff1a; string是表…

设计模式系列文章-7个创建型模式更新已完结

其实从2019年开始就有些一套关于设计模式的系列文章&#xff0c;但是因为种种原因一直搁置到现在。直到2024年才又恢复更新。 24年1月份上旬一直在弄博客站&#xff1a;https://jaune162.blog 的搭建 24年1月份下旬弄专题站&#xff1a;https://books.jaune162.blog 的搭建。…

Qt应用软件【测试篇】vargrid内存检查工具

文章目录 vargrid介绍vargrid官网vargrid安装常用命令Valgrind的主要命令vargrid介绍 Valgrind是一个用于构建动态分析工具的框架,能自动检测许多内存管理和线程错误,并详细分析程序性能。Valgrind发行版包括七个成熟工具:内存错误检测器、两个线程错误检测器、缓存和分支预…

Java8 - LocalDateTime时间日期类使用详解

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&…

redis+定时 模拟滑动窗口实现熔断降级

业务背景 公司业务现用的通道为 A、B&#xff0c;为了降本&#xff0c;引入新的支付通道 Y&#xff0c;但 Y 通道的稳定性要低于 A、B&#xff0c;系统要能在 Y 通道故障时自动切回到 A、B&#xff0c;等 Y 恢复正常后&#xff0c;再切换到 Y。 乍一看很简单&#xff0c;不就是…

使用链表和数组输出A~Z的ASCII码

输出结果 26个字母以及其对应的ASCII码 一、使用链表创建&#xff0c;注意&#xff1a; 节点需要有next指针初始化时head需要new一下 cur指针代表当前指针&#xff0c;每次不断的New新的节点&#xff0c;pre指针代表当前指针的前一个指针&#xff0c;每次pre的next指针指向cur…

sql注入攻击 - cookie注入

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、Cookie 知识介绍 Cookie(HTTP Cookie)是服务器发送到用户浏览器并保存在本地的一小段数据,用于记录用户的相关信息和状态。这些信息通常包括用户的身份标识、网站偏好设置…

3.1日学习打卡----初学FastDFS(一)

3.1日学习打卡 目录: 3.1日学习打卡一. 为什么要使用分布式文件系统二. FastDFS简介核心概念上传机制下载机制FastDFS环境搭建_LinuxFastDFS指令 一. 为什么要使用分布式文件系统 单机时代 初创时期由于时间紧迫&#xff0c;在各种资源有限的情况下&#xff0c;通常就直接在项…

HTML---Ajax

文章目录 目录 文章目录 前言 一.Ajax概述 二.原生创建Ajax 三,使用Jquery处理Ajax 总结 一.Ajax概述 AJAX&#xff08;Asynchronous Javascript And XML&#xff09;是一种创建交互式网页应用的网页开发技术。它使用Javascript语言与服务器进行异步交互&#xff0c;可以传…

【计算机网络】五种IO模型与IO多路转接之select

文章目录 一、五种IO模型二、非阻塞IO1.fcntl2.实现函数SetNoBlock3.轮询方式读取标准输入 三、I/O多路转接之select1.初识select2.select函数原型3.socket就绪条件4.select的特点5.select缺点6.select使用案例--只读取数据的server服务器1.err.hpp2.log.hpp3.sock.hpp4.select…

Linux上搭建并使用ffmpeg(Java)

关于MacOs和Windows系统上使用ffmpeg就不多说了&#xff0c;有很多相关文章&#xff0c;今天给大家分享一个在Linux环境下使用Java语言来使用ffmpeg 一、首先去官网下载一个Linux对应的ffmpeg包 1、进入ffmpeg官网&#xff1a;官网 2、点击左侧导航栏Download 3、选择Linux对…

如何利用graylog进行容器化日志管理?

Docker日志 当一个容器启动的时候&#xff0c;它其实是docker deamon的一个子进程&#xff0c;docker daemon可以拿到容器里面进程的标准输出&#xff0c;然后通过自身的LogDriver模块来处理&#xff0c;LogDriver支持的方式很多&#xff0c;默认写到本地文件&#xff0c;也可…

vue自定义实现icon选择器

<template> <div> <span class"iconStyle" click"selectIcon"> <i :class"value" /> </span> <div class"iconTitle">选择图标</div> <el-dialog title"" :visible.sync"…

java 商机管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 java 商机管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

LeetCode142. 环形链表 II刷题详解

今天力扣刷到了一个特别有意思的题目&#xff0c;于是就写了下面的题解来加深以下理解。 142. 环形链表 II - 力扣&#xff08;LeetCode&#xff09; 这个可以分为两大步去写&#xff0c;首先要判断链表是否有环&#xff0c;然后如果有环就去找到环的入口&#xff0c;没有环返…