“斗地主”游戏中的人工智能

2022-05-20 39

前段时间和做游戏的朋友,还在讨论,有没有非常好的中国棋牌游戏的机器人程序。

碰巧关注到机器学习顶会之一的ICLR 2019(International Conference on Learning Representations)有一篇文章是关于“斗地主”的论文《A Solution to China Competitive Poker Using Deep Learning》。

ICLR 2019采用了双盲评审,目前还看不到文章的作者信息。文章的原文可以参考:

A Solution to China Competitive Poker Using Deep Learningopenreview.net/forum?id=rJzoujRct7

以下分几个部分表达我对中国传统棋牌人工智能的观点。

1.中国传统棋牌人工智能问题的特征

2.“斗地主”人工智能的参考

3. 游戏产业中棋牌人工智能的几个要素

1.中国传统棋牌人工智能问题的特征

“斗地主”、“麻将”这些都是国内广泛流行的传统棋牌,相信在高铁、地铁、一些公共场合,看到老百姓拿着手机在玩这些游戏。可想而知,这类游戏的广泛群众基础。

但是中国传统棋牌和围棋来对比(当然围棋也是中国发源),传统棋牌有以下特征:

  • 信息不完整。围棋中,对手的和自己的棋子都在棋盘上,对于当前的棋盘状态一清二楚。而类似“斗地主”、“麻将”只知道自己手中的牌和桌面上的牌(姑且叫做明牌),对于对手或者同伙的牌以及没有摸起来的牌(姑且叫做暗牌)是一无所知的。需要根据明牌来推测暗牌,进而明确当前的状态。

  • 游戏的随机性。游戏的胜负受到牌初始的排列组合(洗牌),和游戏过程中出牌的随机性的影响。

  • 游戏中的配合。“斗地主”这类传统棋牌游戏中,还需要多个“农民”来配合打到“地主”。用一句话总结:不怕神一样的对手,就拍猪一样的队友。

2.“斗地主”人工智能的参考

在这篇双盲论文中《A Solution to China Competitive Poker Using Deep Learning》设计了DeepRocket,整个AI有三个核心部分:抢地主模块(Bid Module)、策略选择模块(The Policy Network)、出牌选择模块(The Kicker Network)

图1 斗地主AI的流程图

抢地主模块(Bid Module)在初始阶段,用于判断是否需要抢地主。而策略选择模块(The Policy Network)、出牌选择模块(The Kicker Network)根据状态来决定出牌。

抢地主模块(Bid Module)主要根据手中的A、2、王的个数,来逻辑判断是否要抢地主。

策略选择模块(The Policy Network)和出牌选择模块(The Kicker Network)都采用CNN网络、一个全连接层、 Relu作为激活函数进行构建。

图2 The Policy Network和The Kicker Network流程图

策略选择模块主要是根据状态,来确定出牌类型。而出牌选择模块进一步预测确定性的出牌。例如策略选择模块确定要出“789”的牌,而出牌选择模块,确定出“789J”还是“789Q”

Paper采用了8百万的游戏数据,进行了神经网络的训练。在此做一下大胆的猜想,能否像AlphaGo Zero没有游戏数据,而是通过自己和自己的交战,来提升智能水平。

3. 游戏产业中棋牌人工智能的几个要素

游戏产业中的棋牌人工智能和学术界的人工智能,还是有些差别的。

  • 信息的完整性。由于游戏产业中,棋牌的正常运行是依靠服务器程序来完成的,也就是不论每个人手中的牌,还是底牌,服务器程序都是知道,因而就没有暗牌。因此棋牌游戏的信息不完整性其实在游戏产业中是不存在的,游戏产业中的人工智能最优化求解问题,肯定要比学术界研究的简单。

  • 人格化。游戏产业中的Bot程序在于陪伴真实的人类进行比赛,进而扩展游戏的在线使用人数、留存游戏的使用用户。如果仅凭逻辑推理上讲,人工智能的Bot肯定要高于普通人类玩家。但是人类玩家如果明显感觉到和自己挑战的是个Bot,而不是人类,就会丧失游戏的激情。所以,游戏产业中的人工智能,不但要具备足够的EQ可以和人类玩家进行PK,还要具有一定的IQ让人类玩家产生游戏的乐趣。即是人工智能具有人格化,具有情绪和情感。这个产业需求也正和AI大牛的预测相符。

本文转自:“斗地主”游戏中的人工智能 - 知乎 (zhihu.com)

标签:

微信号:tbwr0001
点击复制
QQ号:3223502635
点击复制
扫描二维码

手机扫一扫添加微信

扫描微信 3223502635