ICML 2021 | DouZero斗地主AI深度解析,以及RLCard工具包介绍
Daochen 将门创投 2021年07月28日 08:22
最近开源了DouZero(斗零)人工智能系统。鉴于大部分教程和说明都是英文的(比如论文、文档等),在这篇文章中,我将用通俗易懂的语言详细解析DouZero背后算法的原理,供大家参考。之后我会介绍RLCard,一个专门为游戏AI设计的开源工具包。RLCard也已经集成了DouZero中的算法,并且支持八种游戏实现(包括斗地主、麻将、德州扑克等)以及各种强化学习算法(比如DouZero中使用的算法DMC、DQN、CFR等)。希望这篇文章能帮助到游戏AI的研究者和开发者们,也希望我们的研究和工具包能帮助到大家。
论文:
https://arxiv.org/abs/2106.06135
在线试玩:
https://douzero.org/
最新叫牌版在线试玩:
https://www.douzero.org/bid/
论文代码:
https://github.com/kwai/DouZero
RLCard工具包集成:
https://github.com/datamllab/rlcard
一、背景
用强化学习打游戏对大家来说一定不陌生,常见的游戏AI,比如围棋、DOTA、星际争霸、王者荣耀等,都有强化学习的身影。知乎有很多介绍强化学习的回答,比如能否介绍一下强化学习(Reinforcement Learning),以及与监督学习的不同?等等。有兴趣的读者可以搜索相关问题深入阅读。在这里,我们以斗地主为例,简单介绍下强化学习的输入是什么、输出是什么,是怎么学习的。对强化学习非常熟悉的的读者可以跳过本章。
强化学习的目标是针对一个特定的任务去学习一个策略来最大化奖励。放在斗地主的环境下,任务是学打斗地主,策略是指出牌策略(先不考虑叫牌),奖励是输赢(先不考虑炸弹加倍)。那么什么是策略呢?这里我们引入强化学习中的两个概念,状态和动作。
状态是指一个策略在某一时刻所能看到所有信息。在斗地主中,状态包括玩家当前的手牌、过去的出牌历史、地主的三张牌等等(注意,这里不包括其他玩家的手牌)。
动作是指在某一个状态下做出的一个行为。在斗地主中,动作指玩家打出的牌型