首页 > 投资 > 正文

人工智能玩家称霸六人德州扑克 首次在多名玩家博弈游戏中获胜

2020-01-19 16:50:30 来源: 阅读:1
评论(0 收藏(0

 

腾讯科技讯 据国外媒体报道,人工智能技术越来越厉害,近日,一款名为“Pluribus”的人工智能扑克机器玩家在颇受欢迎的“德州扑克”游戏中击败了人类顶级职业扑克手。这是人工智能程软件首次在超过两名玩家的游戏中击败人类精英玩家。

这款扑克机器玩家的开发者,包括美国卡耐基梅隆大学团队以及社交网络公司Facebook旗下的人工智能研究团队。

据国外媒体报道,美国纽约大学研究游戏和人工智能的学者朱利安·滕力思(Julian Togelius)表示:“虽然从两名玩家增加到六名似乎是渐进的,但这实际上是一件大事。多人游戏是目前正在研究的其他人工智能游戏中一个空白的领域。”

据悉,扑克机器玩家Pluribus的开发团队过去已经开发了一款名为Libratus的人工智能软件,它在双人扑克比赛中击败了专业人士。随后,团队通过升级Libratus构建了Pluribus,并创建了一个只需要更少计算能力就能玩比赛的人工智能机器玩家。

在为期12天的训练中,这个机器玩家在一万多手扑克游戏中打败了15名顶尖的人类选手。

美国内基梅隆大学的诺姆·布朗(Noam Brown)和Facebook公司下属的纽约人工智能研究所表示:“许多人工智能研究人员曾经认为,用我们的技术不可能做到这一点。”

实际上,越来越多的人工智能软件已经涉足了人类游戏中,比如上述扑克机器玩家Libratus,以及谷歌机器学习公司DeepMind的围棋玩家。在两个玩家的零和游戏中,这些人工智能玩家被证明是难以战胜的。

在这些场景中,总是有一个赢家和一个输家,博弈论提供了一个明确的最佳策略。

但博弈论对于涉及多个利益冲突方、且没有明确的赢输条件的情形就没有那么有用了——这些情况反映了现实生活中的大多数挑战。

布朗表示,通过解决多人扑克游戏,Pluribus为未来人工智能解决这类复杂问题奠定了基础。他认为他们的成功是迈向自动化谈判、更好的欺诈检测和自动驾驶汽车等复杂应用的一步。

技术复杂性

为了解决六人扑克游戏的问题,布朗和一位同事从根本上改进了Libratus的搜索算法。大多数人工智能游戏玩家会通过决策树向前搜索,以在给定的情况下做出最佳的移动。比如,Libratus软件在选择动作之前会搜索到游戏的结束。

但额外玩家带来的复杂性使得这种策略不切实际。扑克需要使用隐藏的信息来进行推理,玩家必须制定出一个策略,考虑对手手中可能有什么牌,下一步会怎么出牌。

但是更多的玩家使得在任何特定时刻选择一个动作变得更加困难,因为这涉及到评估更多可能性。

关键的突破是开发出一种方法,让人工智能玩家Pluribus能够在只看后续几个牌不是比赛结束后做出正确的选择。

Pluribus使用一种类似DeepMind公司人工智能围棋玩家的的强化学习形式,从零开始自学。它从随机地玩扑克开始,计算出哪个动作赢得更多的钱而改进。每手牌结束后,它都会回顾自己的玩法,并检查如果采取不同的选项,看它是否能赚到更多的钱。如果替代方案能带来更好的结果,那么未来更有可能选择这一方案。

通过与自己对弈数万亿张牌,Pluribus创造了一种基本策略,可以在比赛中使用。在每个决策点,它都会将游戏的状态与自己的蓝图进行比较,并提前搜索一些步骤,然后决定是否可以改进它。由于它自学了在没有人类输入的情况下玩游戏,人工智能获得一些人类玩家通常不会使用的扑克策略。

AI效率

Pluribus的成功很大程度上归功于它的运行效率。当进行扑克游戏时,它只运行在两个中央处理器。相比之下,DeepMind最初的围棋玩家在首次击败顶级专业人士时,使用了近2000个处理器, Libratus使用了100个处理器。

当与自己对弈时,Pluribus在大约20秒内就能打出一只手——大约是专业玩家速度的两倍。

事实证明,游戏是衡量人工智能进步的一种很好的方式,因为机器人可以在与顶尖人类的比赛中得分,而且如果它们获胜,还能被客观上誉为超人。但是布朗认为人工智能的发展已经超出了他们的游戏范围。他说:“这一次是扑克比赛中最后的挑战。”

但是滕力思认为人工智能研究人员和游戏还有很长的路要走。他说:“还有很多未开发的领域。”很少有人工智能能够掌握一种以上的游戏,这需要综合能力而不是特定技能。

滕力思表示,不仅仅是玩现有的游戏,“设计游戏也是一个巨大的人工智能挑战领域。”(腾讯科技审校/承曦)

来源:腾讯科技                                              时间:2019-07-12

德扑基础数学

文章来源:中扑网

也许你曾经看过德州扑克比赛,每个人在看完手牌以后节目会列出每一个人的获胜机率,许多人都对机率有兴趣,当然这是扑克最基本的知识。你常常会拿到象是Q♠ J♥的牌加注后却常常碰到flop是完全不相干的8♦5 ♣ 2♠,当然对手也不一定会用到这个牌面,此时我们如果下注会不会使对手盖掉更好的牌呢?让我们用一些简单的数学公式来解释可能的情况,假设是一对一的情形下,52张牌中你拿走了两张牌,flop发出了三张牌,还有47张未知的牌,对手手中的两张牌有九种可能对到牌面,所以对手没有对到牌面的机率是:

以我们刚才的假设,对手可能有65%的机会面对你的下注会盖牌。假设你面对的是两个对手的话,对手都没有对到牌面的机率是:

在对手的手牌是随机的状况下,当然人数越多与牌面有关的机率会越高。假设我们在总共$300的赌注中下注三分之二也就是$200,我们预期对手如果盖牌我们可以得到$300,若是跟牌则代表我们会输掉$200,所以对上一个对手的预期获利为:

所以由此可知如果对手的行为如同我们预期,你每次下注都可以得到$125。如果对上两个对手的预期获利则为:

看起来这个策略还是成功的,不过当人数超过三个人以上这个下注就是一个烧钱的举动了。这个分析大致解释了一些基本的机率问题,不过实际上对手不会拿随机的牌来跟注,而且有可能会有其他象是加注或是唬牌的可能性,但是在此大致给各位一点基本的概念与了解。

手牌组合

另一个重要的概念就是扑克数学是考虑每种手牌的组合数目,比方说AK是由4张A与4张K组成,里面包含4组同花AK与12组不同花的AK,当flop出现一张A以后,AK的组合就会减少为12组。另外一对则是有6种不同的组合,比如说AA就是由A♠A♥,A♥A♦,A♦A♣,A♠A♣,A♠A♦,A♥A♣所组合而成。而同花连牌则是有4种不同组合,比如78s是由7♠8♠,7♥8♥,7♦8♦,7♣8♣的组合而成。所以当你拿JJ而一个很紧的对手在你后面加注,你觉得他可能的手牌包含AA,KK以及AK,但是其中AA,KK各有6种组合而AK有16种组合,所以总共会有28种组合,其中你会有42.8%落后AA与KK,但是有57.2%你会跟AK碰运气。

机率与排列组合

一付牌里面有52张牌,拿到两张牌则有52 51=2652种不同方式,不过因为不管拿牌的先后顺序,所以看待A♣K♣是跟K♣A♣是一样的组合而不管他的排列,所以我们可以把2652再除以2,可以得到1326种组合。现在我们可以把每个人最喜欢的AA拿来当例子,总共有4 3 2=6种组合,所以出现的机率可以是:

换句话来说你可以在221手牌里面发到一组AA(跟拿到22的机率一样),如果你跟朋友一小时打30手牌的话可能7个小时才会拿到一次。所以我们可以把起手牌组分成三种:口袋对子,同花牌,不同花牌,下表计算出现的机率:

起手牌    几率

口袋对子(比如AsAc)  1/221

同花(比如8d6d)  1/331.5

非同花(比如Kd9c)  1/110.5

基本上数学给了我们最基本的知识基础,所有策略都或多或少跟机率有关,掌握这些必要的知识可以为我们在牌桌上带来更多的优势。(译/Jimi)

来源:新浪体育                                             时间:2017年12月05日

推荐阅读:福建都市