游戏已经成为检验强化学习算法实力的最佳途径之一。现在,继扑克、围棋之外,基于强化学习的游戏 AI 又在麻将上展现了超强能力。
2019 年 8 月,微软曾宣布,由微软亚洲研究院研发的麻将 AI 系统 Suphx ,成为首个在国际知名专业麻将平台 “天凤” 上荣升十段的 AI 系统。
“天凤”平台拥有超过 35 万个活跃用户,Suphx 模型在稳定排名方面表现出比大多数顶级玩家更强,评级高于 99.99%的官方排名玩家。
而就在本周,这一麻将 AI 的技术论文终于得以公布,向我们展示了 Suphx 背后的开发逻辑。
图丨麻将游戏的挑战以及 Suphx 的核心技术(来源:微软)
据团队介绍,尽管深度强化学习在一系列游戏 AI 中取得了巨大的成功,但想要将其直接应用在麻将 AI 上殊为不易,面临着若干挑战。
挑战一在于,麻将的计分规则通常都非常复杂,在如天凤平台等竞技麻将中,计分规则更加复杂。天凤平台上每一轮游戏的计分规则都需要根据赢家手里的牌型来计算得分,牌型有非常多的可能,例如清一色、混一色、门清等等,不同牌型的得分会相差很大。这样的计分规则比象棋、围棋等游戏要复杂得多。麻将高手需要谨慎选择牌型,以在胡牌的概率和胡牌的得分上进行平衡,从而取得第一、二位或者摆脱第四位。
而从博弈论的角度来看,麻将是多人非完美信息博弈。象棋和围棋属于完美信息游戏,玩家可以看到棋局中对方玩家的落子。麻将则存在大量的隐藏信息。具体而言,麻将中每个玩家可以有 13 张手牌,另外还有 84 张底牌。对于一个玩家而言,他只知道自己手里的 13 张牌和之前已经打出来的牌,却无法知道别人的手牌和没有翻出来的底牌,所以最多可以有超过 120 张未知的牌。这么多的未知信息使得麻将的难度非常高。
图丨 Suphx 以 “大三元” 役满胡牌(来源:微软)
最后,麻将除了计分规则复杂之外,打法也比较复杂,需要考虑多种决策类型,例如,除了正常的摸牌、打牌之外,还要经常决定是否吃牌、碰牌、杠牌、立直以及是否胡牌。任意一位玩家的吃碰杠以及胡牌都会改变摸牌的顺序,因此很难为麻将构建一棵规则的博弈树(game tree)。即使非要去构建,那么这棵博弈树也会非常庞大,并且有不计其数的分支,导致以前一些很好的方法,如蒙特卡洛树搜索(MCTS)、蒙特卡洛反事实遗憾最小化算法(MCCFR)等都无法直接被应用。
为了更好地应对上述问题,研究团队为 Suphx 设计了包含 5 个需要训练的模型打牌策略,以应对麻将复杂的决策类型——丢牌模型、立直模型、吃牌模型、碰牌模型以及杠牌模型。另外 Suphx 还有一个基于规则的赢牌模型,决定在可以赢牌的时候要不要胡。
图丨 Suphx 决策流程(来源:微软)
Suphx 的 5 个模型都基于深度残差卷积神经网络,它们的大体结构相似,主要不同在于输入的维度和输出的维度。其中丢牌模型输出有 34 个节点,代表丢 34 张牌中任何一张牌的概率,其他的 4 个模型输出层只有 2 个节点,代表是否立直、吃牌、碰牌、杠牌的概率。
这些模型的输入包含了两大类信息:
1. 当前可观测的信息,例如玩家自己的手牌、公开牌(包括丢出来的牌、碰的牌、明杠的牌),以及每个玩家的累计得分、座位、段位等等。
2. 对将来进行预测的信息,比如打某张牌还需要拿几张牌才能胡牌、能够赢多少分、胡牌概率有多大,等等。
需要指出的是,卷积神经网络 CNN 比较适合处理图像数据,但是麻将本身并不是天然的图像数据,因此需要对麻将的这些信息进行编码,使得 CNN 能够进行处理。
而在具体的训练过程中,Suphx 首先会使用来自天凤平台的高手打牌记录,通过监督学习来训练这 5 个模型,然后使用自我博弈强化学习以及研究人员设计的两个技术解决麻将本身的独特性所带来的挑战,最后在实战中采用在线策略自适应算法来进一步提高 Suphx 的能力。
微软亚洲研究院首席研究员秦涛、高级研究工程师李俊杰也对媒体透露,自 2019 年宣布至今,团队一方面对 Suphx 的整个系统架构进行了重新优化,使它更快、更好,另外也在算法上做了很多改进,使得针对 Suphx 的训练更为高效。
在应用场景上,研究人员声称,Suphx 强大的技术可以帮助解决金融市场预测和物流优化中的复杂现实问题:“我们相信,在 Suphx 中为麻将设计的技术,包括全局奖励预测、先知引导和参数化策略自适应等技术,在现实世界的应用中将大有可为。”