扫码打开虎嗅APP
尽管美国卡内基梅隆大学(CMU)的计算机系教授托马斯?桑德霍姆(Tuomas Sandholm)和其研究生诺姆?布朗(Noam Brown)在1月份捧红了一位AI赌神Libratus,但每当问及个中原理,他们一直在卖关子。近日,为了迎接当地时间2月4日旧金山开幕的美国人工智能协会年会(AAAI),桑德霍姆和布朗终于在CMU网站上上传了论文,揭晓了其中的谜团。
1月份在美国匹兹堡的大河赌场(Rivers Casino)举行的一场人机“华山论剑”,引发了无数人工智能专家和德扑爱好者的关注。在连续20个比赛日中,一个名为Libratus的人工智能在共计12万手的一对一无限注德州扑克比赛中击败了四名顶尖人类高手,共计领先人类团队176万美元筹码。而Libratus最令人咋舌之处,是它非常善于诈唬对手同时又不被对手诈唬。那么这个AI赌神到底是如何炼成的呢?
残局计算:人工智能的制胜之地
残局计算一向是机器在棋类游戏中战胜人类的法门。在2016年3月份阿尔法狗与世界围棋冠军李世石的人机大战中,不少围棋行家都指出阿尔法狗随着比赛进程“越下越慢”,这说明在残局阶段发挥远超人类的计算能力是阿尔法狗获胜的关键。
但围棋和德扑性质上是完全不同的。此前20年间被人工智能攻克的西洋双陆棋、跳棋、国际象棋和围棋都是“完美信息”游戏,所有玩家在游戏中能获得的确定性信息是对称的。人工智能掌握这些游戏的难度,主要取决于游戏中需要做出的决策点(decision points)的数量,这决定了计算机需要的计算量。人工智能在每一个决策点都能独立地计算出一个最优解。
但德州扑克是一种包含很多隐藏信息的“不完美信息”游戏。玩家只掌握不对称的信息,他不知道对手手中是什么牌,不知道五张公共牌会开出怎样的结果,也不知道对手猜测自己握有怎样的手牌。因而,虽然一局德扑中的决策点数量要少于一盘围棋,但是这些决策点并不独立,在每一个决策点上,玩家都需要再从全盘进行推理,这在计算量上是难以想象的。
因此,以往人工智能处理“不完美信息”游戏会采用一种缩略的方法,即将一盘大型游戏简化为一盘近似的小游戏,在缩略的游戏中进行计算,并将结果输出到真实游戏中。但在这个过程中,信息会不可避免地流失,因而此前人工智能迟迟未能攻克德州扑克。
比如在处理对方的下注筹码上,由于在计算量上难以将对方所有的下注可能性都列入决策树(Decision Tree),因而有一种经典的行动翻译法(action translation),例如将对手下注201美元近似为200美元进行简化处理。
而桑德霍姆和布朗的这篇论文题为《不完美信息游戏中安全内嵌的残局计算法》,介绍了一种新的残局计算法,即通过纳什均衡来计算该如何应对对手那些没出现在决策树上的招数,并以收益反馈对自身的出招进行动态修正,以期达到最大可能的收益,而非简单地将对手的行为进行近似处理。
这种新的残局计算法最大的特点,是开发者可以获得一定程度的“确定性”。而“确定性”正是时下大热的深度学习最缺乏的。
桑德霍姆说,“现在深度学习集万千宠爱于一身,这也是它应得的,但深度学习不能给你确定性。”
基于深度神经网络(deep neural networks)的深度学习无疑是目前人工智能领域最耀眼的明星,也是缔造这一波人工智能热潮的最大功臣。从Facebook的人脸识别系统到微软的机器翻译,再到震惊世界的谷歌围棋AI阿尔法狗,深度学习风头一时无二。
但深度学习有两大局限性,注定它并不是人工智能万灵丹。首先,深度学习的本质是机器通过分析海量数据习得一些模式,但并不是所有领域都能采集到海量数据。以自动驾驶为例,显然通过积累海量事故经验来习得避免事故发生是不现实的。此外,深度学习是一个知其然而不知其所以然的“黑匣子”,这在许多重大安全事件上并不能令人放心。自动驾驶的事故问责问题就是一例。
不以人类为师,方能胜过人类
美国《连线》杂志的一篇文章则指出,Libratus主要是依赖三套相辅相成的系统大获成功。残局计算是在比赛过程中发挥主要作用的系统。而比赛前期的学习系统和比赛后期的反馈系统同样重要。前期的系统是所谓的强化学习(reinforcement learning)。这是一种将试误理论发挥到极致的机器学习方法。简单来说,Libratus通过自己与自己玩成千上万局德扑来学习。与Libratus的从零开始学习不同,谷歌的围棋AI阿尔法狗是在学习了3000万张人类棋谱后才开始“左右互搏”进行自我强化的。
这种从零开始的强化学习基于一种“虚拟遗憾最小化”(counterfactual regret minimization)算法。Libratus的开发者并未通过人类的经验的教会它怎么玩德扑,而仅仅给了它德扑的玩法规则,让它通过“左右互搏”来自己摸索这个游戏该怎么去玩、如何能更大概率地获胜。由于不受人类固有经验的约束,Libratus试误的过程十分大胆而随意,下注的范围天马行空,远远超过一个普通玩家会尝试的尺度。
因此,Libratus玩德扑的风格迥异于人类,让人捉摸不透,而这对获胜十分关键:在玩德扑的过程中,下注要具备足够的随机性,这样才会让对手摸不清底细,同时也是成功诈唬住对手的关键。与Libratus交手的四位人类职业玩家证实了Libratus下注十分大胆,不拘一格:它动不动就押下全部筹码,多次诈唬住人类对手。
但Libratus并非第一个运用虚拟遗憾最小化算法的德扑机器人。早在2015年1月,加拿大阿尔特塔大学教授麦克?鲍林(Michael Bowling)在《科学》上发表论文,最早提出虚拟遗憾最小化算法可以破解一对一德扑比赛,但当时他们破解的是限注德扑比赛。鲍林是这样描述这个算法的:“想象一个人每小时玩200局扑克,每天玩12小时,70年从未有一天间断。同时,他在玩的过程中时刻考虑最差的情况,争取最大程度的胜利,采取针对性的策略,并且永不失误。”这样一个玩家,又如何不能称霸赌场呢?
值得一提的是,在2017年1月初,鲍林团队赶在Libratus登场之前在预印本网站arXiv上上载了一篇论文,介绍了他们研发的能在一对一无限注德扑比赛中击败人类的机器人Deepstack,似乎有意“截胡”。
而在比赛后,开发者们会再对比赛的过程进行一次反馈。尽管Libratus的玩牌风格异于人类,但通过一天的比赛,顶尖人类高手仍可能识别出Libratus的一些“套路”,并加以利用。这第三套系统就是在每个比赛日结束后的夜晚找出并清除掉这些“套路”,不给人类任何可乘之机。
AI不是只有深度学习
总结完AI赌神Libratus的三大制胜法门,我们发现,Libratus之所以被视为人工智能发展的里程碑事件,其中一个重要原因是它并没有采用深度学习。而没有追随深度学习潮流的Libratus,或许在现实生活中拥有更广阔的用武之地:金融交易、网络安全、商业拍卖、政治谈判,这些情景都是充满了各种博弈的“非完美信息”游戏,也都需要一定的“确定性”来让人安心。
但不管怎样,一个能在牌桌上诈唬住人类的AI赌神仍有点让人“细思极恐”:如果未来有一天,一个AI外交官在谈判桌上突然压上所有筹码,你跟还是不跟呢?
查看原文