当前位置:首页 期刊杂志

打扑克,AI又赢了!

时间:2024-05-19

洋洋

精彩的人机对抗

2017年1月11日,在美国匹兹堡举行了一场别开生面的国际扑克大赛。这次的参赛选手非常特别,4名人类顶尖选手对战美国卡内基-梅隆大学开发的人工智能Libratus!

在20天的比赛时间里,4名人类顶尖选手充分发挥集体的力量,每天比赛后,他们会在酒店房间里碰头,花数小时,一起分析当天的比赛有没有什么可以汲取的教训。为了找到Libratus在策略上的漏洞,他们约定每个人每天都尝试不同的打法,下不同的赌注。

第一天,人类的诡异的游戏策略取得了成功。他们赢得了开门红!在随后的几天,虽然AI一直处于领先地位,但优势没有特别明显。比如到了第三天,Libratus赢得了大概19.3万美元的赌注,但在第四天,人类选手就将差距缩小到4.2万美元。之后,双方又激烈争夺,到了第六天,AI只赢了5.5万美元的赌注。双方基本上不分输赢!观战者似乎预料到了结局。2015年人机扑克大战时,AI以较大的劣势输给了人类,这次也会一样!在各大赌博网站上,人们预言Libratus必败,赔率达到了4:1!

然而,形势突然逆转。到了第7天,Libratus不断扩大优势,赢得赌注越来越多。与此同时,人类选手很难找到它的漏洞,即使找到了,第二天这个漏洞就消失了,每一天,Libratus都在进步,它不只是从不露出破绽,似乎也知道每个人类对手的弱点!最终到了比赛截止日——1月30日,四个人类玩家大败而归,他们一共输了176万美元筹码。

扑克比赛会受到运气的影响,然而这次比赛,双方一共打了12万手牌,牌运的影响几乎微乎其微,比赛结果的可信度高达99.77%,AI有不可逆转的优势!

这是AI首次在一对一无限注德州扑克比赛中,击败人类职业选手!在扑克牌领域,人类又要失守了!也许你会问,AI已经在象棋、围棋方面击败了人类选手,扑克牌那么简单,这有什么好奇怪的?

这是一個突破性的成就

实际上,AI要战胜人类扑克牌选手会更难。为什么这么说呢?

无论是象棋、围棋,还是跳棋,比赛中AI可以掌握的信息是非常完全的,比如AI可以知道棋子布局、双方已下和剩余棋子的数量。根据对手的棋子下的位置,利用强大的算法,AI可以从对手这个完全确定的状态作出进一步预测,然后采取针对性的防御措施就可以了。

但扑克是典型的不完全信息博弈游戏,它包含着许多隐含信息。拿这次Libratus参与的扑克游戏——德克萨斯扑克牌来说。

德克萨斯扑克牌是现在全球扑克大赛中最主要的比赛类型。它跟普通扑克牌一样,只不过没有大小王牌,总牌数是52张。发牌一共有5轮。在第一轮里,玩家得先下盲注,然后才会收到两张面朝下的底牌。随后又会进行第二轮发牌,这次发的3张牌是面朝上的公牌;紧接着再发三轮牌,玩家会陆续收到3张公牌。在每一轮发牌中,玩家们会轮流下注,对手则可以选择加注、跟注、弃牌等等。经过所有押注圈后,若仍不能分出胜负,游戏会进入“摊牌”阶段,也就是让所剩的玩家亮出各自的底牌以较高下,持大牌者获胜。这次Libratus打的一对一无限注德州扑克,是德州扑克的一种类型,主要特征就是玩家下的注不受限制,风险更大。

显然,打扑克牌涉及到对不完全信息的处理。比如,你不知道你的对手的底牌是什么,你也不知道下一张牌会发什么,但你必须得根据这些不完全信息,猜测对手的底牌和下一张牌的可能性,还需要根据对手的下注、跟注、弃牌等动作,再决定下多少注。一些人即使自己的牌很小,但会选择诈唬的方式,下很大的注,这个时候如果你没法识破骗术,吓得弃了牌,你就输了。这些都是扑克牌中不完全信息的表现。

扑克牌也很复杂,一对一无限注德州扑克每一轮发牌,有10160的局面可能,这比宇宙中的原子数量还要多(目前可观测宇宙约有1075个原子),近似无穷。当然,围棋的局面变化更多,大约有10170。但扑克牌的不完全信息,使得AI打扑克比下围棋难度大得多,这几乎是一场心理战。所以,当AI接二连三地攻占了各项棋艺项目,只有扑克牌一直未能攻破。

那么,Libratus有什么诀窍?

有个强大的后援

首先,Libratus有一个强大的后援——匹兹堡超算中心的超级计算机Bridges。Bridges不是当今世界最大、最快、最强劲的超级计算机,但它可能是面向公众开放的,最大、最快、最强劲的超级计算机。生物学家、地质学家、经济学家等都可以使用Bridges。Bridges的处理能力和内存分别是一台高端笔记本电脑的7000倍和17000倍,使得原本在个人电脑上耗时数月的计算,仅仅几个小时就搞定。

Bridges消耗了大约1500万个核心小时的计算量来构建Libratus。在Libratus的比赛过程中,还在持续优化Libratus的策略,让这个AI可以玩得更好。

那么,具体说来,Libratus的学习策略是什么样的呢?与阿尔法狗不同的是,Libratus并没有使用目前相当红火的深度学习技术,而是采用强化学习的技巧。

首先,研究者教会了Libratus游戏规则,并给它定下了简单的小目标——赢钱,之后,让它自己和自己对打了数万亿手,在这一过程中,它会不断尝试偶然发现的新的打法。Libratus会总结怎样的玩法会成功,怎样的玩法会失败,并利用这些观察结果制定策略。

这种方法的一个明显优点是,Libratus不会只学习别的扑克玩家使用的策略,它可以创造出自己的独特打法,有时甚至能发明一套违反直觉的打法。例如,当Libratus手持弱牌,而对手提高了赌注时,程序有时也会跟着提高赌注。这样的打法很冒失,毕竟这样做提高了输牌的几率,要是此时对方识破了这一骗术,因为手持好牌而提高赌注,那Libratus可就输惨了。

但这其实是一招好棋。它可以让Libratus学会人类的诈唬,以及不被诈唬。在匹兹堡的人机大战中,Libratus通过诈唬成功骗了四位人类选手,赢下了许多局。

Libratus使用的另外一招是 “残局解算”。 在每一手牌之后,Libratus会自我学习,并精确地计算出发第4手牌和第5手牌所能承受的最大风险。如果你现场观察,就会发现在这两个发牌阶段,Libratus花的时间更多。

最后一招是游戏后的“持续自我强化”。当人类对手每天晚上在酒店里总结经验教训、寻找AI的破绽时, Libratus也在持续“进化”。它会填补在比赛时出现的漏洞,这就意味着Libratus可以不断提高自己的比赛水平,让人类对手发现不了什么破绽。Libratus甚至会根据人类选手是否注意到自己的漏洞,来决定先修补哪些漏洞。

意义重大

Libratus的取胜意义重大。因为对不完全信息的处理能力,才更能适应现实世界。在生活中,人类的很多决策,比如金融交易、拍卖、政治和商业谈判、军事或网络安全策略以及规划医疗方案等,都跟处理不完全信息有关,如果AI能处理这些信息,那将会带来突破性的变革。

想象一下,如果你有一个能“读心”的机器人,它身上的传感器能让它有记忆功能,同时能通过感知对手一些微小的生理变化,如出汗量、瞳孔变化,来判断出对手的压力程度。当你派它去解决商业、军事、政治和外交方面的问题,是不是会比人类谈判高手更出色?

当然,人类也不必太恐慌,担心Libratus会让自己没法继续玩德州扑克,或者让自己失去工作。因为Libratus仍然需要超级计算机来执行计算程序并改进策略,而这一过程的成本会非常昂贵。在这次人机大战比赛期间,Libratus依靠的Bridge超级计算机,共运行了150台服务器,耗费大概203万美元。所以,暂时你还不用担心无敌的扑克AI出现在市场上。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!