AI程序首次在德州扑克中战胜人类

2017年刚开年,人机大战激战正酣:从围棋上孤独求败的Master到人脸识别的小度,现在,国外科学家宣布,机器已经在一对一的无限注德州扑克中赢过人类。扑克是典型的不完美信息博弈游戏,也是人工智能面临的长期挑战。一对一无限注中包含10的160次方(1后面160个0)决策点(decision points)——每个点都根据出牌方的理解有不同的路径。另外,作者还在论文中介绍了一种新的算法DeepStack,让系统可以在比赛中拥有“直觉”。

来自加拿大和捷克的几位计算机科学研究者近日在arXiv上贴出论文,介绍了一种用于不完美信息(例如扑克)的新算法,DeepStack结合使用循环推理来处理信息不对称,使用分解将计算集中在相关的决策上,并且使用一种深度学习技术从单人游戏中自动学习的有关扑克任意状态的直觉形式。研究者在论文中称,在一项有数十名参赛者进行的44000手扑克的比赛中,DeepStack成为第一个在一对一无限注德州扑克中击败职业扑克玩家的计算机程序。

非完美信息博弈

游戏长久以来都被认为是用来测量人工智能进步的一个基准。在过去的20年间,我们见证了许多游戏程序已经在许多游戏上超越了人类,比如西洋双陆棋、跳棋、国际象棋、Jeopardy 、Atari电子游戏和围棋。计算机程序在这些方面的成功涉及的都是信息的对称性,也就是对于当下的游戏状态,所有的玩家能够获得的确定性信息是相同的。这种完美信息的属性也是让这些程序取得成功的算法的核心,比如,在游戏中的局部搜索。

现代游戏理论创建者、计算机先锋von Neumann曾对无完美信息游戏中的推理行为进行过解释:“现实世界与此不同,现实世界包含有很多赌注、一些欺骗的战术,还涉及你会思考别人会认为你将做什么。” von Neumann最痴迷的一个游戏是扑克,在这个游戏中,玩家在得到自己的牌后,会轮流下注,让对手跟注,他们或跟注或弃牌。扑克是一种非完美信息游戏,玩家只能根据自己手上的牌提供的非对称的信息来对游戏状态进行评估。

在一对一对战(也就是只有两位玩家)的有限下注德州扑克中,AI曾经取得了一些成功。但是,一对一有限注的德州扑克,全部的决策点(decision points)只有不到10的14次方个。作为对比,计算机已经在围棋上完胜人类专业棋手,围棋是一个完美信息的游戏,约包含有10的170次方个决策点。

非完美信息游戏要求更复杂的推理能力。在特定时刻的正确决策依赖于对手所透露出来的个人信息的概率分布,这通常会在他们的行动中表现出来。但是, 对手的行为如何暗示他的信息,反过来也要取决于他对我们的私人信息有多少了解,我们的行为已经透露了多少信息。这种循环性的推理正是为什么一个人很难孤立地推理出游戏的状态,不过在完美信息游戏中,这是局部搜索方法的核心。

在非完美信息游戏中,比较有竞争力的AI方法通常是对整个游戏进行推理,然后得出一个完整的优先策略。CFR ( Counterfactual regret minimization)是其中一种战术,使用自我博弈来进行循环推理,也就是在多次成功的循环中,通过采用自己的策略来对抗自己。如果游戏过大,难以直接解决,常见的方法是先解决更小的、浓缩型的游戏。最后,如果要玩最初的大型的游戏,需要把原始版本的游戏中设计的模拟和行为进行转移,到一个更“浓缩”的游戏中完成。

虽然这一方法让计算机在HUNL一类的游戏中进行推理变得可行,但是,它是通过把HUNL下的10的160次方个场景压缩到10的14次方缩略场景的来实现的。这种方法有很大的可能性会丢失信息,所有这类的程序离专业的人类玩家水平还差得很远。

2015年,计算机程序Claudico输给了一个专业扑克玩家团队,并且是以较大的劣势输掉的比赛。此外,最近,在年度计算机扑克竞赛中,人们发现,基于“浓缩”的计算机程序有着大量的缺点。其中4个使用了这一方法的计算机程序,其中包括从2016年来一直位列前茅的程序,被认为使用了一个局部最佳响应的技巧,使得在一个策略能输掉多少这一决策上,产生一个更加接近下限的答案。所有这四个基于“浓缩”方法的程序都可能会输得很惨,用量化来表示,是每局都弃牌所属的四倍。