
中国唯一可以玩德州扑克的网站曝光。由中科院精诚出品,采用AI在线发卡。
2026年1月12日这个Agent可以学会浏览B站、打扑克,还可以看行情、写预测简报 | Flowith OS实测
2026年1月12日非完美信息博弈
长久以来,游戏都被视作是用于测量人工智能进步的一个基准,在过去的20年间,我们目睹了诸多游戏程序在好多游戏上早就超越了人类,诸如西洋双陆棋、跳棋、国际象棋、Jeopardy、Atari电子游戏以及围棋,计算机程序在这些方面的成功所涉及的全都是信息的对称性,也就是针对当下的游戏状态而言,所有玩家能够获取的确定性信息是一样的,这种完美信息的属性同样是使得这些程序取得成功的算法,像在游戏里的局部搜索的核心, 。
建立起现代游戏理论的计算机先锋、创建者von Neumann,曾针对处于无完美信息游戏里的推理举动给出过这样的阐释:“现实的世界并非如此,现实的世界涵盖着诸多的赌注,存在一些带有欺骗性的战术,并且还关联到你会去思考别人会以为你将会做出怎样的行为。”von Neumann最为迷恋的一款游戏是扑克,在这款游戏当中,玩家于拿到自身的牌以后,会依次进行下注,使得对手跟着下注,对手要么跟着下注,要么选择弃牌。扑克属于一种并非完美信息的游戏,玩家仅能够依据自己手中所拥有的牌给出的呈现非对称状况的信息,来针对游戏所处的状态展开评估 。
在那种只有两位玩家参与的一对一对战形式的有限下注德州扑克里,AI 以往是获得过一些成功的。然而,一对一有限注模式的德州扑克,其全部的决策点数量仅有不到 10 的 14 次方个。与之形成对比的是,计算机在围棋这个完美信息的游戏比拼中已然完胜人类专业棋手,而围棋大约包含有 10 的 170 次方个决策点。
非完美信息游戏,对更复杂的推理能力有所要求。在特定时刻,正确决策依赖于对手透露的个人信息的概率分布,这通常会在他们的行动中展现出来。然而,对手的行为怎样暗示其信息,反过来又取决于他对我们私人信息的了解程度,还取决于我们的行为已透露的信息多少。这种循环性推理,正是一个人难以孤立推理出游戏状态的原因,不过在完美信息游戏里,这是局部搜索方法的核心要点。
在并非完美信息的游戏里头,比较具备竞争力的AI方法常常是针对整个游戏去开展推理,接着得出一个完整的优先策略。CFR(反事实后悔最小化)是其中的一种战术,运用自我博弈来实施循环推理,也就是在多次成功的循环当中,借助采用自己的策略来对抗自身。要是游戏规模过大,难以直接解决,常见的办法是先解决更小的、浓缩型的游戏。在最终的情况下,要是打算把玩最初的那种大型规模的游戏,那就得将原始版本游戏里所设计的模拟以及行为予以转移,得以呈现在一个更为“浓缩”般形态的游戏当中去完成 。
即便这一办法使得计算机于HUNL这般的游戏里开展推理可以行得通,可是,它是借助将HUNL之下的10的160次方个场景压缩至10的14次方缩略场景来达成的。这种办法存在非常大的概率会致使信息遗失,所有这类程序距离专业人类玩家水准相差甚远。
2015年,计算机程序Claudico输给了一个专业团队,这个团队是扑克玩家团队,此输是以较大劣势输掉的比赛。此外,最近,在年度计算机扑克竞赛中,人们发现,基于“浓缩”的计算机程序存在大量缺点。有4个使用了这一方法的计算机程序,这4个程序包括从2016年来一直处于前茅位置的程序,它们被认为运用了一个局部最佳响应的技巧,该技巧致使在一个策略能输掉多少这一决策上面,产生一个更加靠近下限的答案。这四个全都基于“浓缩”方法的程序,都有着可能很惨地输掉的情况,用量化去表明的话,存在着是每局都弃牌所属情况四倍数目的状况 。
不一样的方式被DeepStack应用采用了,它借助CFR里的循环推理持续处理信息不对称的状况,然而它不计算存储完整优先策略用于博弈,因此也无需进行简要提炼,相反,在游戏里,每一个具体场景出现时它会进行考量,不过并非单独进行的。
用以代替某一种深度的计算,是借助一个快速的近似估计,经由它能够避免对整个游戏的剩余部分展开推理。这种估计可视作DeepStack的直觉,即在任何有可能的扑克情境当中,针对持有任何有可能的个人牌的牌面大小所秉持的直觉 。
最终,从某种来讲与人类很相像的DeepStack的直觉,是要被训练的。我们运用随机生成的扑克情景,借助深度学习来训练。最终,我们证实了,DeepStack从理论上是行得通的,相较于基于“浓缩”的方法,它能生成实质上更少探索的策略,并且,它还是世界上首个在HUNL游戏里击败人类专业玩家的计算机程序,平均赢率超过450 mbb/g。mbb/g,即每游戏的milli – big – blinds,它以用于衡量扑克玩家表现的指数著称,50 mbb/g可视作一个较大优势,750mbb/g为对手每局皆弃牌情形下的赢率。
神经网络机器学习系统第一次战胜人类职业玩家
跟职业选手对抗结果
我们聘请了国际扑克联盟里的专业扑克选手,目的是将DeepStack与人类专家作比较,选手们于4周内完成3000局比赛。有奖励给予排名最高的前三,以AIVAT计,分别是5000加元、2500加元和1250加元,用来激励选手。比赛于2016年11月7日至12月12日在线上举办,扑克选手能够选择最多同时玩4局,这在线上是较为常见的。总计有33名选手,他们来自17个国家,与DeepStack展开了较量 ,DeepStack对每个人比赛时的表现情况如下表1所示 。

表1,关于跟职业扑克选手较量的结果,该结果是通过AIVAT进行衡量的,同时也是用所赢得的筹码来衡量的,并且是以mbb/g作为单位来呈现的。

表2,向前分解,要依据在哪一轮来进行具体分析。F、C、1/2P、P、2P和A,分别是这样的缩写:弃牌(Fold),跟进(Call),二分之一底池押注(half of a pot-sized bet),底池押注(a pot-sized bet),双倍底池押注(twice a pot-sized bet),以及全注(All in)。 。最后一列所呈现的是,当出现超过深度限制这种情况时,所用到的是哪一个神经网络,是flop网络,还是turn网络,亦或者是辅助网络。
比赛速度
实现分解计算,在一个 GPU 上实施,实现神经网络评估。这致使它能够一次快速批量调用反事实价值网络上多个子公共树。此为让 DeepStack 变快的关键所在。在 Torch7 里进行开发,并在 NVIDIA GeForce GTX 1080 显卡上运行。诸多上述实现手段皆是为了使 DeepStack 快速运行,理想状况下如同人打牌那般快。DeepStack和人类在前一步骤之后、提交下一个步骤之前的平均间隔时间,由表3进行展示。平均来看,DeepStack比人类选手快许多。然而需要记住,人类选手能够同时进行4局比赛(尽管很少有人同时进行两局以上),所以当轮到人类选手比赛时,它可能正处于另外一盘比赛当中。
那张被标记为表 3 的表格,呈现出人类与 DeepStack 的思考时间情况,其中 DeepStack 在首次进行叫注的时候也就是第一轮叫注时,平均时间具备超级快的特性,而这种情况意味着在第一轮叫注这个阶段的状态,通常能够实现命中缓存的结果。

表4,呈现的是不同程序运用局部最佳反馈,也就是LBR,local best response的最低程度。LBR只是评估每一轮在下表里所罗列的动作。F、C、1/2P、P、2P以及A的缩写意义和之前相同。

最理想的反馈所对应的价值,与靠自身进行游戏所呈现出的价值,二者相对比 ,存在差异 。
DeepStack在持续分解计算里采用的是自玩估值,而非最佳反馈估值。之前的预测试用CFR – D去解决更小的比赛,这显示出自玩估值所产生的策略通常攻击性更小,和最佳反馈估值所产生的策略相比较,在与测试智能代理一对一的情况下表现更好。图5展示了一个例子,是关于DeepStack在特定第五张牌的博弈中有着不同数字的分解迭代的攻击性 。除了欠缺对其稳固性的理论评估,采用自玩估值,看上去恰似最佳反馈估值那般,最终收敛于低攻击性策略。

图5,DeepStack,在第五张牌开始前,有特定公共状态,其攻击性与分解迭代数量之间,存在一个方程 。
算法 DeepStack :让机器拥有“直觉”
DeepStack属于一大类序列不完美信息博弈通用算法,我们会阐释DeepStack在HUNL(一对一无限注)德州扑克里的作用,扑克游戏状态可分为玩家私人信息即两张牌面朝下的手牌,以及公共状态,这包括牌面朝上的公共牌和玩家下注顺序,游戏中公共状态可能序列构成公共树,每个公共状态都有一个相关联的子公共树,见下图6:

图6,它是HUNL公共树的一部分,其中红色以及湖蓝色所代表的是玩家的动作,而绿色代表的是被翻开的公共牌。
DeepStack算法尝试去计算玩游戏时的低利用率策略,也就是求解近似的纳什均衡。DeepStack在玩牌的时候计算此策略,公共树的状态如同图7所示。这种本地的计算致使DeepStack在对于现有算法而言规模过大的游戏里能够进行推理,原因在于需要抽象得出的游戏的10的160次方决策点降低到10的14次方,这使得算法变得易于处理。

图七,那是 DeepStack 的概览图。其中的(a)部分, DeepStack ,会针对每个公共状态下的动作去进行 re – solves操 作,它运用的是 depth – limited lookahead 方法,在这个过程里,子树值的计算是借助已经训练完毕的深度神经网络来完成的。(b)部分,是通过随机生成的扑克状态,在玩扑克牌之前开展训练工作。(c)部分,最终状态就如同图三那样子的。
DeepStack算法包含三个部分,其一为针对当下公共状态的本地策略计算,也就是local strategy computation,其二是运用任意扑克状态的学习价值函数进行depth – limited lookahead,其三是预测动作的受限集合。
连续 Re-Solving
采取自身行动:把对手的反事实数值替换成在针对为我们自身抉择动作的解决办法里所计算得出的值,运用计算策略跟贝叶斯规则去更新我们自身的动作范畴。
在Chance Action中,要做的是用从最后一次分解为这个动作所计算出的反事实值,去替换对手的反事实值。与此同时,还要通过清除在任何新公共牌都不可能的手牌范围这种方式,来更新我们自己的范围。
Opponent Action:不用做什么。
连续进行重新求解,从理论层面来讲是具备可行性的,然而在实际运用当中却无法实现。它并未维持一个完整无瑕的策略,除非游戏快要接近结束阶段,重新求解自身是极为棘手困难的。举例来说,针对第一次动作的重新求解得要为整个游戏临时去计算近似的解决方案 。
深度反事实价值网络,深度是什么样的深度,反事实怎样的反事实,价值网络是何种价值网络 。
深度神经网络,也就DNN,被证实拿来在图像识别、语音识别工作里极其重要。自动生成音乐、玩游戏等任务采用这个极为强大的模型工具。DeepStack 使用DNN和定制的架构,当作它的 depth-limited lookahead其的价值函数。就如同图8那样。训练两个彼此独立的网络,一个在初步三张公共牌被处理之后,也就是flop网络,进而估计所对应的反事实值。另一个在处理第四张公共牌之后,也就是turn网络,再去估计反事实值。存在一个辅助网络,它的用途是,在发出任一张公共牌之前,加快对先前动作的重新解析 。

图8:深度反事实价值网络。该网络所具有的输入是pot的大小,还有公共牌以及玩家范围,玩家范围先是被处理为bucket范围。其输出源自七个完全连接的隐藏层,输出被进行后处理,以此来保证值满足零和限制(零和约束)。
CMU 又被截胡
近日,新智元在报道里提及德信竞技,有一项赛事,名为“人脑 vs 人工智能:跟不跟 ”,它将于1月11日在匹兹堡的Rivers赌场拉开帷幕。在比赛这段时间,职业扑克手Jason Les,Dong Kim,Daniel McAulay以及Jimmy Chou,会在20天的时长内,和CMU计算机程序玩120000手一对一不限注的德州扑克。
CMU有个叫Libratus的人工智能系统,相较于去年失败的Claudico,它在策略方面出现了改变,Libratus是利用Bridges计算机去实时计算出新的终局解决办法以及算法的,并非像Claudico那样依赖终局。 ,。
此外,Claudico所常用的策略乃是limping,这属于一个扑克用语,其含意是跟注掺和进去瞧一瞧,并非加注或者舍弃。而Libratus有时候也会如此这般 。
能够发现,如同上文中所提及的DeepStack那般,他们期望去攻克的同样是一对一(两个选手限定)不设注码的德州扑克难题,这是一款极为复杂的游戏,存在着以十为底一百六十次方的信息集合,每个集合依据出牌方的认知拥有各异的路径,这个庞大且巨大的信息集合比整个浩瀚宇宙的那些原子数量还要多。
然后将两个机构的介绍综合来看,它们所运用的方法也存在相似之处,也就是采用实时计算的方式。CMU的比赛被安排在11日进行,而这边的论文已在arXiv上发表公布,看来,CMU似乎又遭遇了被截胡的情况。
新智元有着这样的简介,它是人工智能领域里,处于排名第一位置的社交平台,它专注于对人工智能领域的前沿资讯进行报道,它专注于对人工智能领域展开产业分析,它还专注于提供人工智能领域的技术干货 。
由原创产出的优质文章,被授权发布在魔窗公众号这个magic-window上面,要是没有经过相应许可,那么是谢绝进行转载的。
关于魔窗
魔窗,它属于移动互联网运营中心!能拿出可对用户决策起到影响作用的移动营销系统,是有专业性的内容推广以及内容交易平台,堪称优秀App与内容创业者那里的增长引擎!当前业已得到了数千万数目的A轮融资,还获取了品途网企业服务创新大奖(ESIC Awards),也就是2016年度最佳行业新生态服务商。
自上线之后,魔窗历经了数百家中型以及大型App的验证还有信赖。与此同时,由魔窗所发起的中国App增长联盟也就是AGA China,为超过百家日活超过千万、覆盖用户数量达到4亿加的App创业者给予了更多资源破局以及高效增长的连接通道 。


