托马斯•桑德霍姆:德扑AI的应用价值与AI未来趋势

11月6日,由京东金融与红杉资本联合主办的首届“全球数据探索者大会”正式在北京拉开大幕。德扑AI之父托马斯•桑德霍姆介绍了德州扑克AI的价值和目前的研究方向。

卡耐基梅隆大学计算机系教授、德扑AI之父托马斯•桑德霍姆

你好。今天我讲一下超人类的AI怎么做战略性的分析和推理,这里用扑克做例子,今天我们说的是不完美信息的游戏,也就是说整个对手的状态不被机器人所知,这个跟下棋没有什么太大的联系,确实和谈判很像,我们知道AlphaGo的技术可以用于所有的完美信息的游戏,完美信息的游戏是有这样的一个好性质,就是我们一个大游戏分解成各个小的子游戏,子游戏怎么样解决的呢?通过别的子游戏的结论来学习。比如说它防御的时候,你看一下当我们看这一局的时候,你不关心其他局或者是其他的象棋步骤里面对手怎么做?你只看这一步怎么样做就能够学到了,而非完美的信息是什么意思?就是一个信息一个子游戏学到的,不能用于另外一个子游戏。那么不完美信息的游戏就比完美信息的游戏更难,这些是基于某一个小领域的技术,并且不可迁于其他的小领域的,比如说扑克,我们发明了这种算法能够在这种不完美信息的情景下也能够学习。由于完美信息和不完美信息的游戏两者本质不一样,AlphaGo所应用的技术不可以应用到完美的扑克游戏里面,因为两者的性质是不一样的。在不完美信息的游戏里面,我们的挑战是不知道对手和他的行为或者是说他的行为可能性。那么对于他们以往做了些什么呢?我也不知道。

我跟我的扑克对手,我不知道他以往的行动,他也不知道我以往的行动,像我们人类面对的情景里面更多的是这一类的,不知道对手背后的盘算,那么我们想问的是对手的行动对我有什么样的启示,我怎么样通过对手的行动来推测到背后的动机,我的行动也泄露了我的哪些意图给我的对手呢?这里面有意思的是,我们不需要去解析这些行动的信号。这些信号让我们回过头来看这个纳什的方程式,纳什先生其实只是给博弈论一个定义,他并没有给我们结论,他用一些算法,根据更窄的定义来算出,争取更好的算法。那扑克里面有很多的数学原理,如果我们看一下纳什先生的那篇博士论文,把他的博弈论方程首先展示给我们,这是1993年的时候,这里只有一个定义,那就是类似于扑克的定义。再往后对于扑克,我们有了更多的科学家和更多的定义。大家也会讨论如果有更多更好的策略和战略来赢扑克,最近去年,我们有数以百计的关于这个扑克的扑克研究。我讲的不会太多,我只讲一些重点的研究,首先有2004、2005年的学生和我一起做了这样一个关于无损抽取的一个算法,就是说你略掉了,或者是说不知道这个游戏的99%的信息,却依然可以去知道这个游戏的规则。

那么,我们现在要谈的无限下注德州扑克的纸牌压注成为最难的一个计算机界解决的标杆,里面包含了10的161次方的情景,我们看一下这个比我们在一个宇宙里面原子还要多10的161次方,这个应用包括了扑克,这里面也被很多的类似于皇家赌场的电影所引用。

而到目前为止我刚刚说的无限下注的纸牌游戏是被AI攻破的,我们看一下这种单周的关于无限下注的突破,这是第二次单挑,因为之前有一次人机对抗,当时的AI输给了人类选手,这次我们叫做再对抗,再挑战。我们的AI系统是我们的一个冷扑大师的智能系统,它的对手是四个非常优秀的扑克选手,我们一共做了12万次的交手,在20天之内,然后下注的赌金20万美元之多,大家有很强的动机去赢。2017年这场,我们其实把这笔20万美元的奖金,不是每个人给20万,而是根据这四个选手的表现成比例的分配,而且我们的试验设计非常的保守,让人类去设计整个游戏的范式,为什么这么做呢?让人类去设计整个游戏的各种范式,以便于到最后去决定谁赢谁输的时候,因为是人类事先设计好的,就不会有各种的争吵和争议了。

那么,整个的人类在押注的时候,更多的时候会觉得人类会赢。我们看一下游戏的现场,丹尼尔是我的朋友,我的同事,他们单独的一对一单调,一对一的。

一说到丹尼尔和AI单挑,AI和上面的四位扑克大师在楼上单挑。比方说杰森,他在同时看着两桌,他在这两桌之间可能来回切换,在他左边的这个小屏幕上,他可以进行切换,最终的结果,我们的冷扑大师系统赢,而且大胜人类。同理,我们用这个冷扑大师跟中国的赌神进行对抗,中国的龙之队,中国的六位赌神,这是国际扑克大师的赢家,这些都是顶级的扑克手。冷扑大师还是赢了我们人类的赌神。

有人要问了,我们这个冷扑大师的系统是什么原理呢?基本上我们用的是已验证正确的技术,这里面没有深度学习。所以说在上面主要有三个选择,第一个选择是有很多的一些游戏的规则的输出,还有一些更小的游戏的抽象化,最后有一个算法进行蓝图战略的执行。然后在我们的子博弈的解决器里面,实际上也是在游戏的过程中来进行问题的解决,有一个自我改善的模块,它能够把所有的这些本身的AI的后台的主机在晚上的时候做一个更新。

对于软件的运行,在我们的匹兹堡的超级计算机中心的这台计算机有1200万小时的游戏的时间积攒。所以说它有很多的输入的信息,如果我们把AlphaGo和它进行对比的话,AlphaGo是用人类的游戏历史,我们没有做这个东西,我们是白手起家的。好像是我们对着镜子给自己进行拳击,然后突然跳起来飞踢泰森的关系,我们也是一样的,我们通过AlphaGo来进行自我游戏实现的。我们看看第一个解析,是模块里面使用新的抽象化的算法,相对来说获得一个更小的规则,然后我们会有一个平衡化的过程。然后重新回到我们最初的游戏中进行我们所谓的蓝图战略。

然后这里有两个抽象化,一个是胜利的抽象化,是定期进行算法的计算,我们也是从最初的计算机里面,2016年的时候做过,现在我们用一个最大的抽象化,我们是进行了一个平衡化的算法,来获得多种抽象化,所以从第一个赌局到我们的第二个赌轮里面,在所有的赌轮里面都可以进行,第四个赌轮里面我们使用了子博弈的解决器,这里面有一个产品的抽象画,所以这样的话我们可以对于我们的客户端有一个更好的理解了。第三个正式的抽象化是从我们的扑克的赌轮中,我们这里使用了人工智能之外,还加入了一些大赌局和小赌局的概念,所以说我们可以有最初的一个初级算法,然后把它进行一个优化,但是暂时没有办法来进行拓展,所以说我们还需要把它第一个赌局进行一个慢慢的往外拓展,后来到了子博弈的解决器,我们这里稍微多讲一些,当然这也是整个架构的最新一部分。这里有五个新部分,第一个部分很可能是可以把它当前的对手的一些内容考虑在内,第二个,它是属于一些战略中的,你的子博弈的,这个计算方式很可能不会比这个蓝图战略更差。然后,如果说对手在当前的阶段犯一个错误的话,我们可以重新再考虑到它这样的一个情况下,然后同时考虑到出现的错误,但是还能够保证你的胜利,所以说它是可以更好的与真正的人进行比赛的时候,不会出现这种类似的错误。

还有就是说关于子博弈的解决问题。一开始的时候,你解决这个问题一再进行游戏。但是我们在这里先要再次解决剩余的一些,就是说整个局我要重新的做一遍,每当对手走一步,我都会把剩下的部分再重新算一遍。另外,它还可以把当时,你可以猜想的步骤,再把步骤的实际这一步计算在内,这些都是在我们的抽象中,还有它可以启动得比较早,以前都是在最后一个赌轮,现在我们放在第三个赌轮里面,如果这里没有在子博弈中的这种牌的抽象化,我们这样做是因为我们希望能够通过一种新方式进行子博弈的解决。

最后一个模块,它就是自我改善的模块,它采用了完全不同的一种方法来进行自身的改善。并且它也使用了之前我们所说的平衡的战略。那么我通常是怎么做的呢?就是说我们需要把一系列的对手模块聚集在一起进行一个开发,我觉得它是比较有风险的一个方法,特别是对于一些顶级玩家来讲,因为顶级玩家是属于世界上的这个方面的专家,他们是很容易来反漏洞的专家,所以说这个过程中,很容易会遇到困难,然后我们让我们的对手行为集成告诉我们说我们自己战略里面的漏洞在哪,这样我们在这个超级计算机里面,我们的算法就会把这些加入到我们的行为的抽象画里去,之后我们就可以把它添加到我们的库里面去,我们可以在自己的主机里面把一些理性的内容再加入。

所以这里是在我们的顶端的AI,当然还有一些其他的,这里是我选取的一些最好的。左边是我们的,右手边是其他人的,这张图的意义是讲到了我们每年都要进行改善。可能是从理论上达到10的一百多次方。

下面我们再讲一下,在我们实验室里面研究的一些情况,还有就是说如何来解决非完整的信息的内容,这是我们的一些在做的课题,所以在游戏中和我们之前讲的,它会有一个非完整性信息,需要有一个抽象化的寻找器,然后我们要知道它里边的一个,游戏中会出现的问题的路径,然后我们有一个这种算法,它可以把一些概率来进行计算,如果说你这个模型离我们的偏差这么远,然后它这个模块会来进行改善,我们在扑克中是来做竞赛的,所以我们在比赛中需要应用来进行一个模拟,虽然规则不是这么清楚。所以同样的一个概念,如果我们的模块,现实当中只有这么一个差异的话,我们可以来改善我们的战略。然后让它更适合现实中的情况。

第二点,在我们之前说过,可能在事件当中最好的是平衡战略,也是我们能够获得的最好的理论,今年夏天开始,我们有更多的一些算法了。

第三个,我们在双方都会出现比较大的,或者是很多的错误的时候,我们是不是能解决这些问题。尽管传统意义上来讲,我们觉得有一些错误可能是可以进行计算化的,但是现在在计算机里面的一些技术可以用更好的办法来进行一个改善。最后,就是在利用或者是说开发之间的这种对比,在游戏中,我们需要去发现对方的漏洞。然后开始通过这种非游戏理论的方式,考虑到自己如何不会被对方所利用。

所以说如果你开始采用游戏理论的时候,有人如果说利用了这种游戏理论或者是博弈理论是不安全的,但是现实中不见得如此,你可以利用别人的同时,也可以保证自己不被利用,也可以保证自己的安全性。像我之前提到的这些技术,不仅仅是被用来编程,这些被用来任何一个你有互动的过程中,这个当中不光有一方,还有不完整的信息,对于新技术的能力,之所以这么振奋,是因为我们看到了这种战略性的机器中有很多的类似知识的复制。我认为这种战略定价,或者是说战略产品的组合,也可以利用它来进行一个优化。

现在,在AI当中,我们不光可以节省更多的人力,同时,又可以做得比最好的人类更强,让我们有更多的理由来利用到实际中。有一些人可能觉得大多数的现实中的应用,总会存在着不完美信息,就算是不看做一个游戏,那么我们想象一下,比如说在定价中的利用,如果对方的这个竞争对手的价格已经固定了,如果突然对方改变了这个价格,你需要实现自己的价值优化,需要反应,这里面是一个反映式的模块。战略性的定价可以让你来驱动市场的发展,同时可以事先进行价格的思考,同样你战略性的产品和组合优化,在金融中的使用也比较多,比如说战略性的结构或者是说战略贸易执行等等,还有自动的溢价。我们使用眼镜改善我们的视力,为什么不能用AI来改善自己的战略逻辑呢?

还有像拍卖中,如果说有这种投机式的拍卖,如果没有人知道底价的情况下,是不是可以采用合理的竞猜。还有像电影版权,不同的一些流媒体公司,他们可能要买一些不同的视频流,到底如何能够构建一个更好的视频流的组合,如何来进行更好的谈判。大部分的应用会考虑到网络安全问题,如何来防护漏洞和操作系统中的问题,以及政治运动中,我到底要花多少钱,基于我竞争对手的预算来进行计算。还有自动驾驶车辆中,或者是说半自动驾驶的车队由不同公司来进行运维的时候,如何来获得一个更好的道路规则。有很多的一些军队或者是说在实体安全方面的应用,还有生物适应或者是说一些医药的安排中,我们已经有了多种的计划能够把这些,比如说对患者人群来进行更好的一个规划,才能够避免进行一些疫苗的注射和癌症的防护等等,当然我们还有娱乐式的,训练式的应用技术,在很多的新的游戏中,同时也会有一些社交的游戏。

最后一张幻灯片我想指出的是人工智能不光是深度学习,还有一些重要的部分和领域,现在有一些新的技术和领域,我们叫做战略性逻辑,它是我们战略博弈的一部分,同时我们还有向对手建模等等,这些也是需要很多的模型。机器学习是关于过去,但是我们从过去的数据中学习来希望能够预测到未来或者是说在未来能够做到更多有益的东西,战略性逻辑会关系到很多的可能性,是关于未来而推出的游戏,我们已经做了一些试验,希望能够获得更多结果,谢谢大家。