加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 营销 > 经营推广 > 正文

麻将AI难在哪?微软宣布公开麻将AI Suphx 的十段秘籍

发布时间:2020-04-10 19:16:07 所属栏目:经营推广 来源:网易科技报道 举报
导读:副标题#e# 网易科技讯4月9日消息,日前,微软亚洲研究院在arXiv平台上正式发表了关于麻将AI系统Suphx的论文,公布了Suphx背后的包括决策流程、模型架构、训练算法等核心技术细节。 那么,麻将AI到底有哪些难点?Suphx这一在游戏AI领域具有跨越性的突破具体
副标题[/!--empirenews.page--]

网易科技讯4月9日消息,日前,微软亚洲研究院在arXiv平台上正式发表了关于麻将AI系统Suphx的论文,公布了Suphx背后的包括决策流程、模型架构、训练算法等核心技术细节。

那么,麻将AI 到底有哪些难点?Suphx这一在游戏AI领域具有跨越性的突破具体是如何实现的?近日,微软亚洲研究院Suphx研发团队在arXiv平台上正式发表论文,公布了Suphx背后的核心技术。

麻将AI面临的挑战

麻将AI系统Suphx主要基于深度强化学习技术。尽管深度强化学习在一系列游戏AI中取得了巨大的成功,但想要将其直接应用在麻将AI上殊为不易,面临着若干挑战。

挑战一:麻将的计分规则通常都非常复杂,在如天凤平台等竞技麻将中,计分规则更加复杂。

首先,一轮麻将游戏通常有8局甚至更多,每一局结束后四位玩家都会有这一局的得分(可能为正,可能为负)。当一整轮游戏都结束后,四位玩家按照所有局的累计得分排名,计算这一轮游戏的点数奖励。在天凤平台上,排在一二名的玩家会得到一定数目的点数,排在第三位的玩家点数不变,排在第四位的玩家会被扣去一定数目的点数 。因此玩家的点数和段位都可能会起起落落,当点数增加到一定程度时段位上升,而点数扣到0时则会被降段。因此,为了提高段位,玩家需要尽量多的排在第一位或者第二位,尽量避免被排在第四位。

有趣的是,由于一轮游戏的最终点数是由多局的累计得分决定,所以高手可能会策略性地输掉一些局,也就是说,某一局的输赢并不能直接代表玩家打的好不好,所以不能直接使用每局的得分来作为强化学习的奖励反馈信号。微软亚洲研究院的研究员们找到了一种其他的方法,会在后文中解释。

其次,天凤平台上每一局游戏的计分规则都需要根据赢家手里的牌型来累计计算得分,牌型有非常多的可能,例如清一色、混一色、门清等等,不同牌型的得分会相差很大。这样的计分规则比象棋、围棋等游戏要复杂得多。麻将高手需要谨慎选择牌型,以在胡牌的概率和胡牌的得分上进行平衡,从而取得第一、二位或者摆脱第四位。

挑战二:从博弈论的角度来看,麻将是多人非完美信息博弈。麻将一共有136张牌,每一位玩家只能看到很少的牌,包括自己的13张手牌和所有人打出来的牌,更多的牌是看不到,包括另外三位玩家的手牌以及墙牌。面对如此多的隐藏未知信息,麻将玩家很难仅根据自己的手牌做出一个很好的决策。

挑战三:麻将除了计分规则复杂之外,打法也比较复杂,需要考虑多种决策类型,例如,除了正常的摸牌、打牌之外,还要经常决定是否吃牌、碰牌、杠牌、立直以及是否胡牌。任意一位玩家的吃碰杠以及胡牌都会改变摸牌的顺序,因此研究员们很难为麻将构建一棵规则的博弈树(game tree)。即使去构建一棵博弈树,那么这棵博弈树也会非常庞大,并且有不计其数的分支,导致以前一些很好的方法,如蒙特卡洛树搜索(MCTS)、蒙特卡洛反事实遗憾最小化(MCCFR)算法等都无法直接被应用。

Suphx的决策流程及模型架构

Suphx的打牌策略包含5个需要训练的模型,以应对麻将复杂的决策类型——丢牌模型、立直模型、吃牌模型、碰牌模型以及杠牌模型,5个模型都基于深度残差卷积神经网络。另外Suphx还有一个基于规则的赢牌模型决定在可以赢牌的时候要不要赢牌。

麻将AI难在哪?微软宣布公开麻将AI Suphx 的十段秘籍

图1:Suphx决策流程

这些模型的输入包含了两大类信息:

1.    当前可观测的信息,例如玩家自己的手牌、公开牌(包括丢出来的牌、碰的牌、明杠的牌),以及每个玩家的累计得分、座位、段位等等。

2.    对将来进行预测的信息,比如打某张牌还需要拿几张牌才能胡牌、能够赢多少分、胡牌概率有多大,等等。

Suphx训练算法

Suphx训练过程分为三个主要步骤:首先使用来自天凤平台的高手打牌记录,通过监督学习来训练这5个模型,然后使用自我博弈强化学习以及由微软亚洲研究院Suphx研发团队设计的两个技术解决麻将本身的独特性所带来的挑战,最后在实战时采用在线策略自适应算法来进一步提高Suphx的能力。

分布式强化学习

Suphx的整个训练过程十分复杂,需要多GPU和多CPU协同,因此Suphx研发团队采用了分布式架构(图2所示)。架构包括一个参数服务器以及多个自我博弈节点,每个节点里包含了多个麻将的模拟器以及多个推理引擎来进行多个策略之间的博弈(即打麻将)。每个自我博弈节点定期将打牌的记录发送给参数服务器,参数服务器会利用这些打牌记录来训练提高当前策略。每过一段时间,自我博弈节点就会从参数服务器拿回最新的策略,用来进行下一阶段的自我博弈。

麻将AI难在哪?微软宣布公开麻将AI Suphx 的十段秘籍

图2:分布式训练

全局奖励预测

麻将的计分规则很复杂——玩家每局有得分,一轮游戏根据多局累计分数的排名计算点数。如何让麻将AI知道自己打得好不好呢?

无论是每局得分还是一轮游戏的最终点数,都不适合用来做强化学习训练的反馈信号。以最终奖励点数作为反馈信号不能区分打得好的局和打得差的局,因此研究员们需要对每局都单独提供强化学习的训练信号。但单独计算每局分数也未必能反映出一局打的好坏,因为顶级玩家会策略性输牌,比如,在一轮游戏的最后一两局中,累计得分排位第一的选手在累计分数领先较大的情况下,会有意识地让排位第三或第四的选手赢下这一局,不让排第二位的玩家赢,这样就可以稳稳地保住总排位第一。也就是说,某一局得分为负不一定意味着策略不好。

因此,为了给强化学习训练提供有效的信号,需要将最终的游戏奖励适当地归因到每一轮的游戏中。Suphx研发团队引入了一个全局奖励预测器,它可以基于本局的信息和之前的所有局信息预测出最终的游戏奖励。在Suphx中,奖励预测器是一个递归神经网络 (GRU),训练数据来自于高手玩家在天凤平台的历史记录。预测器训练好后,对于自我博弈生成的游戏,Suphx研发团队用当前局预测的最终奖励和上一局预测的最终奖励之间的差值作为该局强化学习训练的反馈信号。

先知教练

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读