加拿大阿尔伯塔大学的计算机科学家编写了一款人工智能扑克玩家的程序,该玩家在一系列牌局中永远不会输。单挑限注德州扑克。
命名仙王座该程序使用了一种两人单挑限注德州扑克的策略,这种策略非常出色,统计分析表明,即使一个人一生都在与该程序玩扑克,该程序也永远不会输。 人工智能只会脱颖而出,或者收支平衡。 即使不知道对手拿着什么牌,它也永远不会出错。
这并不是要赢得每一手牌——它会像下一个人一样经常收到烂牌——但人工智能已经找到了如何扭转最糟糕的情况,从而脱颖而出。 “如果手牌较差,它就会输,但它会在数学上尽可能地减少损失,并且会在任何给定情况下做出“完美”决定,缓慢但肯定地拿走你的钱,”Motherboard 的 Jason Koebler 说道。 “单挑限注德州扑克,可以说已经‘解决’了。”
“限注”和“无限制”扑克之间的区别归根结底在于金钱——您要么被限制可以下注的金额,要么您可以随心所欲地下注。 后者对于计算机程序来说是不可能解决的,因为预测随机且无限数量的金钱本身就是一项壮举。 但这并不影响该程序的功能。
将它的表现与其他由人工智能玩家“解决”的游戏进行比较。 即使是我们脆弱的大脑也能弄清楚如何在零和交叉中保持无与伦比的能力。 国际象棋和西洋跳棋等游戏将复杂性提升了一个档次,因为每个回合都有不同的可能性,但所有信息仍然存在于棋盘上。 对手除了他们的策略之外无法隐藏任何东西,但这并不重要,因为人工智能已经知道每一种可能的玩法,并且在游戏开始之前就已经找出了反击每一步棋的完美策略。
但扑克呢? 如果程序知道对手在每一轮中持有的两张隐藏牌上的内容,那么它就会作弊。正如科伯勒指出的,Cepheus 必须以某种方式知道如何在限注扑克游戏中做出 3 x 10^14 种可能的决策,在这种游戏中,在任何给定时刻,它都不知道所有的信息。 阿尔伯塔大学团队将这种并非所有信息都已知的游戏称为“不完美信息”游戏。
“不完全信息游戏的解决方案要求计算机处理不确切知道游戏状态的额外复杂性,例如不知道对手的手牌,”团队成员之一尼尔·伯奇(Neil Burch)说道。告诉 IEEE Spectrum 的 Jeremy Hsu。 “此类技术需要更多的计算机内存和计算能力。”
具体多少内存? 大约 262 TB。 哎呀。 它对所有这些记忆有什么作用? Cepheus 运行一种名为 CFR+ 的算法,该算法是该团队发明的,作为现有反事实后悔最小化 (CFR) 算法的增强。
从本质上来说,最小化遗憾就是从错误中吸取教训。 所以,正如 Arielle Duhaime-Ross 在 The Verge 上所解释的那样,如果 Cepheus 考虑加注的可能性,并决定随机玩并输了,它会回溯其步骤,计算出如果加注的话它可以赢多少钱,并将该金额存储为“遗憾值” '。
这个值被放置在计算机可以做出相同决定的每个可能的机会上,因此它将避免犯同样的错误。 这与人类的游戏方式非常不同——如果我们遭受了重大损失,我们会专注于试图赢回损失,而不是如何利用这些信息来完善游戏的其余部分。 Cepheus 将继续用这些遗憾值更新自己,直到达到团队所说的“完美发挥”。
“CFR+ 仍然像旧的 CFR 算法一样工作,通过玩成千上万手扑克逐渐开发出更好的解决方案,”Hsu 在 IEEE Spectrum 上撰文。 “但是,通过提高效率,它可以比任何过去的 CFR 算法更快地开发出非常好的解决方案;基本上相当于朝着最佳解决方案迈出更少、更大的步伐。”
根据 IEEE 频谱,一旦团队弄清楚了策略,他们就设法将内存需求减少到不到 11 TB 来存储反事实值,以及 6 TB 来计算主要策略。 最终,我们在 70 天内花费了 24 万亿手扑克牌,以及 200 台运行 CFR+ 算法、32 GB RAM 和 24 个中央处理器的计算机来训练 Cepheus 来“解决”游戏。 “我们可以继续训练它,它会继续变得更好,”团队成员之一迈克尔·鲍林 (Michael Bowlin) 说道。告诉 The Verge 的 Arielle Duhaime-Ross。 “但我们在这一点上停了下来,因为我们无法区分它是否完美。”
该团队现在正致力于调整算法以玩单挑无限注扑克。 他们知道,由于存在变数,可能不可能创造出“无与伦比”的人工智能玩家,但他们希望创造出能够击败世界上最好的人类玩家的玩家。 这就是目标。 他们还在考虑如何利用该技术帮助政府和私营公司创建更好的、无法被黑客攻击的安全系统。
想尝试对抗仙王座吗?点击这里进行对战。 我只是希望你能享受失去的感觉。