下棋下不过AI,打扑克也不行
dingding @ 2017.03.06 , 02:00 下午[-]
近日,两个人工智能程序成功证明了自己,机器也可以懂得什么时候跟牌什么时候弃牌。它们首次在十分普及的纸牌游戏——德州扑克——中战胜了人类的专业玩家。本周,其中一个AI的幕后团队,深度堆栈(DeepStack),向我们透露一些成功背后的秘密——这可能是AI从航空安全系统走向商务谈判的冲锋号。
各种博弈游戏中AI的统治地位由来已久,比如象棋,比如去年让人类侥幸赢了一盘的阿尔法狗,但在扑克领域AI一直表现的挺糟糕。深度堆栈的研究人员将新的算法和深度机器学习结合起来,终于打破了他们连败的局面。深度学习是计算机科学中一种模仿人类大脑的方法,使得机器可以自学。
"这是一种尺度可调的处理复杂信息的方法,可以在短时间内做出优化的决定,甚至比人类还好。"Murray Campbell说道,他是纽约IBM公司的研究员,曾经最好的象棋AI,深蓝,的创造人之一。
象棋和围棋有一个重要的共同点,也是AI的首要优势:他们都是完美信息博弈。这意味着双方都完全了解对方在做什么——这在设计AI时有巨大的帮助。德州扑克中的跟牌却不相同,此时玩家要面对两张具有随机性的未知底牌。每轮公共牌后玩家要做出适当的行动,押注、跟注或弃牌。因为游戏就本身的不确定性以及初始底牌未知,不像象棋,可以从当前盘面以及对手所有可能的步骤中推算最优策略。玩德州扑克需要某种我们称之为直觉的东西。
传统博弈类AI原理可简述为尽可能深地计算所有可能的步骤并利用算法将过去已有的对战数据排序分析。缺点在于,为了压缩可用数据,有时会把一些无效策略组合起来,加拿大Alberta大学的计算机教授Michael Bowling说到。
他们团队的AI规避了只计算前几步而不去计算全局即轻易判断的方法。程序在获得新的信息之后会不断调整算法。当AI需要比对手先行动,而此时没有新的信息来做判断,深度学习就发挥作用了。
神经网络,是一种把深度学习获取的知识加以归纳的系统。通过训练其在博弈中的行为可以帮助限定算法需要考虑的潜在情况。这使得AI的反应可以更为迅速而准确,Bowling说到。为了训练深度堆栈的神经网络,研究人员让其解了超过一千万局随机生成的牌局。
去年研究人员为测试深度堆栈,安排它与国际扑克联合会选出的33名专业扑克玩家对战。在4周的时间里,程序共演算了44852局一对一无限注德州扑克,这是一种双玩家无下注上限的版本。通过公式估算其中非策略、偶然获胜的比例后,最终深度堆栈的胜率为486mbb每局,1mbb定义是每局获胜需要押注的千分之一。这是专业选手一般认为很大的利润率的10倍,该团队的结果已在science上报道。
这项结果呼应了几周前大获成功的Libratus,一款由Carnegie Mellon 大学设计的扑克AI。经过长达20天,共约120000手牌的激战,AI战胜了4位人类顶尖的德州扑克玩家。两个团队都声称其AI在德州扑克的优势已经在统计上确认了。不同之处在于Libratus缺少深度学习的过程而需要更多的计算资源,它的算法每次都对游戏进行完整的运算。而深度堆栈在笔记本电脑上就可以跑,Bowling说。
虽然目前还不知道这两个AI谁是德州扑克王中王——暂时也没有安排两个对战的计划——双方团队都在把系统加以改造以适用于更加复杂的实际问题中,像是安保和谈判。Bowling正试图将其应用在公共运输信誉系统中优化查票机制。
研究者还很关注该技术在商业上的影响。由于其可以在非完美信息下作决断, 可以帮助房子的买家在知道所有竞价前预测竞标价格,制定抵押计划。其它的完美信息系统,例如阿尔法狗就没办法做到这一点,因为缺乏对其他竞标数量和大小等的限制条件。
当然,距离深度堆栈能够完全模仿复杂的人类决策还有很多年,Bowling说。机器还要学会在不知道游戏规则的情况下如何做决策,好比如果AI没有提前进行神经网络的学习。
Campbell同意这一点,打扑克是比下棋复杂不少了,但要能处理一团乱麻的现实世界还要继续努力。
本文译自 sciencemag,由 dingding 编辑发布。
PREV : 为什么大熊猫是黑白的
NEXT : Quora:在太空,想哭