CMU风头被抢,新型DeepStack算法抢先攻克德州扑克图灵测试

本文主要是介绍CMU风头被抢,新型DeepStack算法抢先攻克德州扑克图灵测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CMU风头被抢,新型DeepStack算法抢先攻克德州扑克图灵测试

在国外的学术圈里,有一份论文火了。论文里进行的研究表明,人类历史上第一次,AI在德州扑克游戏上赢得了人类职业玩家。而这份论文的突破性意义在于:AI在非完整信息的博弈游戏中,赢得人类职业对手

这篇论文的名字是《DeepStack:无限下注扑克里的专家级人工智能》(DeepStack: Expert-Level Artificial Intelligence in No-Limit Poker),1月6号提交到了ArXiv上。

CMU风头被抢,新型DeepStack算法抢先攻克德州扑克图灵测试

论文作者是来自加拿大Alberta大学、捷克Charles大学、布拉格捷克理工大学的研究人员。而论文题目里的DeepStack,是一种新型的算法名称,论文里说明到“DeepStack 是一种通用算法,可用于一大类非完整信息的序列博弈”。在一项涉及到数十位参与者和4.4万手扑克的研究中,DeepStack 成为了世界上第一个在“一对一无限注德州扑克”上击败了职业扑克玩家的计算机程序。

什么是“一对一无限注德州扑克”(HUNL)

德州扑克的英文名称是“Texas Hold'em”,而“一对一无限注德州扑克”(Heads-up no-limit,简称 HUNL)的意思,就是有2个玩家且不限下注筹码。这篇论文里的自然就是计算机和职业玩家挨个对局。

虽然是扑克,但跟斗地主还是很不一样的,它是“赌场”十分受欢迎的项目。这里祭出视频,帮大家理解一下德州扑克的规则和玩法。

从上面的视频中,我们大致能了解一场德州扑克会有两类信息:玩家每人手里分到2张底牌的“私有信息”和桌子上公共牌的“公开信息”。玩家用自己的2张底牌和5张公共牌结合在一起,选出5张牌,不论手中的牌使用几张(甚至可以不用手中的底牌),凑成最大的成牌,跟其他玩家比大小。按照“Hand Rank”决定最后的胜者。

在中国玩德州扑克的名人,一个是汪峰老师,另一个就是李开复老师。在知乎上“扑克有哪些技巧、经验或者原则?”的提问下,排名第一的,就是李开复老师的答案,他尤其提到玩好诈唬(Bluffing,高手惯用技巧)的关键在于学好统计

CMU风头被抢,新型DeepStack算法抢先攻克德州扑克图灵测试

德州扑克是新一代的图灵测试?

德州扑克已经成为十分流行的人工智能研究测试地,每一个扑克玩家手里握着的底牌“私有信息”,是其它玩家看不到的,所以被称为是“非完整信息”(Imperfect information)的博弈。这跟围棋有很大不同,围棋是完整信息公开的博弈,玩家们可以看到棋盘上的每个旗子,考虑所有落子的可能性。所以德州扑克对于人工智能来说,更加具有挑战性。

《DeepStack》这篇论文的通信作者 Michael Bowling曾经在2015年初接受《New Scientist》采访时说道:“德州扑克最有趣的地方,就是你无法获得完整的信息”。

而卡耐基梅隆大学(CMU)Tuomas Sandholm教授也说道:“扑克已经成为在非完整信息情况下,衡量(计算机)智能水平的标准......而它可以看做是一种超越图灵测试的存在。

不知对手“底牌”的博弈,即非完整信息博弈要求更复杂的推理。

计算机正确决定,依赖于对方“底牌信息”情况下的概率分布,这种“底牌信息”可以通过对手过去的行为显露出来。比如有时玩家采取“诈唬”(Bluffing),对手有时手里并没有强牌,但还是作出全额下注志在必得的行为,计算机这时要根据对方过去的博弈表现,来判断对手有强牌的概率。

相应的,对手也会推断我方的底牌信息,所以这里就是一个“递归推理”(recursive reasoning),一个玩家无法轻易推理博弈状况。

有趣的是,这两位教授都在领导自己的团队攻克这个新型图灵测试,一位在加拿大Alberta大学,一位在美国CMU大学。

几天前,CMU已经发出预告:由Tuomas Sandholm教授领导研发出的Libratus人工智能系统,将于当地时间1月11日,在宾夕法尼亚州匹兹堡的 Rivers 赌场,与四个顶级职业玩家玩12万手的HUNL,并角逐20万美元的奖金。早在2015年,Libratus的前身Claudico与人类玩家首次对战,在8万手的对决中完败,这次算是CMU的卷土重来。

但是我们已经知道了结果,Alberta赶在CMU之前,把就论文发出来了。学术圈人士纷纷表达赞美,称DeepStack具有里程碑意义(当然这份论文还未通过同行审议阶段),然而跟CMU Libratus提前好几天的预热盛况相比,DeepStack并没有得到等量的媒体待遇,也引发一些人的不满。

CMU风头被抢,新型DeepStack算法抢先攻克德州扑克图灵测试

CMU走的是当年AlphaGo的路线,在华丽的赌场搞一场秀,与人类顶尖玩家对战,还有20万美金的噱头。所以这份DeepStack论文虽然比CMU更早取得突破,但阵仗不如后者大,媒体对其忽视了,也在情理。

总之一句话,Alberta抢了先,CMU抢了热闹(学术界的竞争也是异常激烈的)。

此份DeepStack论文的成果

DeepStack总共与33位人类选手进行了4.4万手的较量,分别在2016年11月7日和12月12日之间于线上举行对局。最终获胜的前三位选手,分别有5000、2500和1250加元的奖励。以下是对局结果。结果显示,DeepStack的平均赢率为492 mbb/g(一般人类玩家到50 mbb/g就被认为拥有较大优势,750mbb/g 就是对手每局都弃牌的赢率)。

CMU风头被抢,新型DeepStack算法抢先攻克德州扑克图灵测试

前面我们提到,一场扑克的信息可以分为“私有”和“公开”,放在桌子中间的5张公开牌形成一种动态的“公开状态”。游戏中的公开状态的可能序列构成一个公开树(Public tree),其中每一个公开状态都有一个相关的公开子树(Public subtree)。

CMU风头被抢,新型DeepStack算法抢先攻克德州扑克图灵测试

上图是HUNL 中公开树的一部分。红色和蓝色线条表示玩家动作,绿色线条表示公开的公共牌。圆形节点表示游戏结束。

CMU风头被抢,新型DeepStack算法抢先攻克德州扑克图灵测试

这张图是DeepStack整体架构,分为(a)(b)(c)三个部分。在(a)中,DeepStack在每一个公开状态里, 都要重新计算它需要的动作,其中子树值(Subtree value)会通过一个训练好的深度神经网络 Neural net(b)来计算,而训练Neural net的样本就是(c)。

总的来说,DeepStack结合了递归推理(Recursive reasoning)来处理信息不对称性,还结合了分解(Decomposition)集中计算到相关决策上,并形成了一种关于任意牌的直觉(Intuition),这种直觉可以使用深度学习进行自我玩牌而自动学习到。

而对于DeepStack和1月11日的CMU的Libratus赌场大战,雷锋网将跟踪深入报道。

PS:关注雷锋网公众号(雷锋网(公众号:雷锋网)


本文作者:亚萌


本文转自雷锋网禁止二次转载,原文链接


这篇关于CMU风头被抢,新型DeepStack算法抢先攻克德州扑克图灵测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/278025

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

三国地理揭秘:为何北伐之路如此艰难,为何诸葛亮无法攻克陇右小城?

俗话说:天时不如地利,不是随便说说,诸葛亮六出祁山,连关中陇右的几座小城都攻不下来,行军山高路险,无法携带和建造攻城器械,是最难的,所以在汉中,无论从哪一方进攻,防守方都是一夫当关,万夫莫开;再加上千里运粮,根本不需要打,司马懿只需要坚守城池拼消耗就能不战而屈人之兵。 另一边,洛阳的虎牢关,一旦突破,洛阳就无险可守,这样的进军路线,才是顺势而为的用兵之道。 读历史的时候我们常常看到某一方势

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在