德州扑克很时髦,那你懂贝叶斯理论吗?
我们玩德州,靠的是智(yun)商(qi)
1、简单而复杂的游戏-德州扑克
德州扑克是一种扑克游戏,不使用大小王牌,只使用52张扑克牌,是一种不换牌扑克游戏,每位牌手发两张牌面朝下的“底牌”,是每个牌手唯一的个人牌。针对拿到手上的两张牌。牌手可以选择喊住,盖牌,加注等动作。
德州扑克的简化流程
为每位牌手发两张底牌。
翻牌前按座次喊注(下筹码),可以选择跟注或者加注(这篇文章将省略大小盲注概念来简化讨论)。
发牌员发出三张公共牌。
翻牌圈喊注。
发牌员发出一张公共牌(转牌)。
转牌圈喊注。
发牌员销一张牌后发出一张公共牌(河牌)。
河牌圈喊注。
若有两家以上未盖牌则按照相应的斗牌规则比大小,依胜负分配总筹码。
结束本回合,庄家位置依顺时钟次序移动至下一家进行下一轮。
德州扑克的获胜目标
如同大多数扑克衍生的对赌性质游戏一样,赢取所有牌手于已下注的筹码。
要赢得彩池中的筹码有两种方式:
1在斗牌中胜出(即在手牌加上公牌的七张牌中,挑选五张组成最大的牌型)。
2通过下注策略逼迫所有其他牌手盖牌退出牌局,放弃赢取筹码的机会。
可以看到,牌手只能透过自己的下注影响其他牌手,并透过观察其他牌手的下注来推测可能的手牌,你可能需要观察好几局游戏才能分析出其他牌手的打牌策略,从而制定自己的针对策略。
德州扑克与其他扑克游戏不同的是对一个牌手来说,游戏目标不应只是赢取单局游戏,而是基于数学(常用概率论)及心理学上做出尽量正确的决定,因为如此一来,期望回报值为正的情形下,可将每一局的平均利益最大化,长久下来赢钱总额会比输钱多。
我们暂且不聊心理学,来聊聊概率论里的一个老头子-贝叶斯
2、你有病啊?我没病啊!-贝叶斯公式
贝叶斯老头子是位英国数学家,在概率论领域的研究闻名于世,他提出的贝叶斯公式对于现代概率论和数理统计的发展有重要的影响。
贝叶斯公式
贝叶斯公式是关于随机事件A和B的条件概率的一则定理:
其中P(A|B)是在B发生的情况下A发生的可能性。
在贝叶斯定理中,每个名词都有约定俗成的名称(维基百科):
P(A)是A的先验概率或(或边缘概率)。之所以称为"先验"是因为它不考虑任何B方面的因素。
P(A|B)是已知B发生后A的条件概率,也由于得自B的取值而被称作A的后验概率。
P(B|A)是已知A发生后B的条件概率,也由于得自A的取值而被称作B的后验概率。
P(B)是B的先验概率或边缘概率,也作标准化常量(normalizing constant)。
如果我们将AC记为A的补集(即非A)。上述公式可展开为:
当然,多事件的条件概率问题的公式可以表达为:
疾病检测
贝叶斯公式的一个直接应用的典型例子就是疾病检测。也是一个经典的反直觉的例子。
人群中出现了一种新的疾病,我们假设这种疾病在人群中发生的概率为千分之一,科学家们为了对抗这种疾病研究出了新的检测试剂,经测试这种检测试剂的准确率为99%:如果某人真的患有这种疾病,检测为阳性的可能性高达99%,如果此人是健康的,误诊为阳性的概率只有1%。那么,如果某人X接受了一次试剂检测,且结果为阳性,那么X患有这种疾病的可能性为多少?
我们如果简单的凭直觉,很有可能会得出这样的结论,X有99%的可能患有这种病,要不然也就是90%以上,肯定是很高。很遗憾,事实的情况是X的真的患有这种疾病的概率非常低。
我们套用贝叶斯公式来计算一下这个概率
事件A :X确实患有这种疾病 P(A): 0.1%
事件B :X在检测中结果呈现阳性
P(A|B) : X在检测中呈现阳性的情况下确实患有疾病的概率(B发生的情况下A发生的概率,可以用贝叶斯公式来求解了)
P(B|A): 确实患有这种疾病的人检测为阳性的概率 99%
P(B|AC): 健康人检测为阳性的概率 1%
代入展开公式:
P(A|B)=(0.99*0.1%)/(0.99*0.1%+0.1*99.9%)=9.01%
也就是说即使一个人被检测出了阳性,那么他患有这种病的可能性仅为9.01%,远远低于99%,看起来很靠谱的检测反而可能造成大范围的误诊,哪里出了问题?我们凭直觉判断的时候没有考虑到一个重要的因素,那就是这种病在人群中的占得比例非常低,只有0.1%。如果一共有10000个人接受检测的话,其中10个患病者,会有9.9个人检测出阳性,而剩下的99990的健康人中会有999.9个人检测出阳性,误诊的概率会很高。
所以我们拿着检测结果告诉X:"你有病啊?" X完全可以理直气壮的回答:"我没病啊"
我们的直觉如此的不准确。
3、请相信你的直觉-贝叶斯推断
看完上述繁琐的公式后,数学课就到此为止了,我们迫不及待的准备找上三五好友,来玩上几局德州扑克,这回你的朋友带来了一个新朋友加入牌局,我们的新朋友叫他小Y吧,以此区别上文可怜的X,他正在担心自己到底有没有病。 第一局游戏开始了,每个玩家都拿到自己的两张底牌,轮到小Y的位置时,他并没有多想,直接加注6倍。那么他的底牌真的很大吗?会是AA,AK吗?还是只是在Bluff-虚张声势假装自己有大牌呢?我们之前说过判断一个玩家策略很重要,如果小Y只是在Bluff,那么你就不必害怕他的牌了。
先等等,我们先回头看看可怜的X的例子。这次换个角度来理解,我们原来的事实是人群中某人患病的概率为0.1%,在引入了检测试剂后,如果为阳性,我们可以推断某人患病的概率9.01%。也就是说有了新的信息(检测试剂),我们把原来的0.1%提高到了9.01%。
这其实揭示的是贝叶斯公式的本质:
用于在给定某些证据时计算你对一个假设的信任的强度应当改变多少
也即贝叶斯推断,我们可以不断的根据获取新的信息来重新检测和评估已有概率。
是的,你在数学课上学到的东西突然在玩扑克牌的时候开窍了,简直太(xia)美(che)妙(dan)了.小Y是跟我们第一次玩,所以我们并没有关于他很多的信息。这里我们假设德州扑克的玩家分为两大类,一是普通玩家,一是疯狂玩家。普通玩家只有在拿到类似于AA,AK,XX这类牌时才会选择加注,也就是top25%的牌型,而一个疯狂的玩家,不管拿到什么牌,80%的概率会加注,他们只想吓走你然后拿走奖池里的筹码。小Y会不会是个疯狂玩家呢,根据我们以前的经验,和我们玩德州的朋友里面只有5%的人是疯狂玩家。
很快,3局游戏结束了,小Y三局游戏中在第一轮喊注重都选择了6倍加注!“只有疯子才这么做”这肯定是你的第一反应,一次拿到好牌还有可能,3次你都拿到好牌,肯定是在Bluff,小Y就是一个疯狂玩家.这次,你的直觉并没有错。
贝叶斯推断:
事件A : 小Y是个疯狂玩家 P(A) = 5%
事件B : 一个玩家连续三次加注
P(A|B) : 连续三次加注的情况下小Y是个疯狂玩家的概率(B发生的情况下A发生的概率)
P(B|A): 疯狂玩家连续三次加注的概率 80%×80%×80%=51.2%
P(B|AC): 正常玩家连续三次加注概率25%×25%×25%=1.56%
代入展开公式:
P(A|B)=(51.2%*5%)/(51.2%*5%+1.56%×95%)=63.3%
我们在获得了新的信息后,重新评估了原来的假设:根据原有经验,小Y只有5%可能是个疯狂玩家,现在这种可能性已经上升到了63.3%,我们可以大胆的跟注,从而击败小Y( 这只是理想情况,现实中很可能小Y只是在塑造一种假象,误导你他是一个只会bluff的疯狂玩家,当然,如果我们将工具由概率论上升到博弈论的话,也是可以用理论来指导实践的,这是一个【贝叶斯均衡里的非完全信息静态博弈】问题,然而本文作者并没有能力再展开讨论)
Anyway 这一次概率站在了我们直觉的同一边.
4、更复杂的情况-多个变量的贝叶斯公式
我们识破了小Y的小伎俩,由于加注筹码大底牌又不好,小Y很快败下阵来。你也许觉得,这根本不需要什么贝叶斯也可以推断出来,没错,我们之前说过贝叶斯推断的本质:根据获取新的信息来重新检测和评估已有概率,如果你需要做出尽量正确的决定,更加精准的评估是必要的,我们来看一个更贴近实际牌局的例子:
我们参加了一个德州扑克爱好者的聚会,这回我们的新朋友叫小Z,因为小Y输得太多,不跟我们一起愉快的玩耍了。游戏开始了,小Z似乎比小Y更为激进,在翻牌钱Preflop圈就开始加注并且再其他人跟注后选择了再次加注(reraise)。那么我们是否能从这一举动中,来猜猜小Z底牌的range(可能会有那些组合)呢?这同样是一个 获得了新的信息 然后 重新评估的过程。
我们首先整理下已知信息:
我们可以把reraise玩家的底牌策略分为三类:
ultra-nit, 这种玩家非常保守,只有拿到AA KK 才会选择激进的reraise
TAG:tight玩家,AA KK QQ JJ以及AK,有时候拿到TT(一对十) A Q也会reraise
LAG: loose玩家,从AA KK…TT以及AK AQ. 而且他们经常是Bluff
计算三种底牌的概率,很容易知道底牌可能的组合一共有1326种
P(A): AA和KK组合一共有12种,(4种不同花色组成的AA共有6种可能),12/1326,为计算方便取为 1%
P(B): 可能的组合一共40种,而且会另外22种的底牌也有可能reraise,我们综合设定概率为4%
P(C): 可能的组合有44+22种,考虑到此类玩家还经常采用bluff策略,我们设定概率为10%
我们得到了3个关于底牌的概率
P(A) =1%
P(B)= 4%
P(C)=10%
再来判断小Z采取的策略概率,一般来说,在比较专业的德州扑克爱好者中,loose玩家很少出现,根据我们的经验一般只有2%的玩家会采取这种策略。剩下的98%的玩家中ultra-nit和TAG玩家各占一般分别我49%,49%。
因此,对于小Z即使没跟我们玩,我们也可以推测出可能3种策略概率
P(N) = 49%
P(T) = 49%
P(L) = 2%
然后我们观测到了小Z的一次reraise, 获得了新的信息,可以重新评估我们原有的概率,从直觉来看,你觉得P(N) P(T) P(L)哪一个会最高呢?继续使用贝叶斯推断来计算,只不过这里采用的是三变量的贝叶斯公式:
代入计算可得
P(N|NTL) = (49%*1%)/(49%*1%+49%*4%+2%*10%)=18.5%
P(T|NTL) = (49%*4%)/(49%*1%+49%*4%+2%*10%)=74.0%
P(L|NTL) = (2%*10%)/(49%*1%+49%*4%+2%*10%)=7.5%
也就是说经过我们的重新评估,小Z的这一行为让他是TAG玩家的概率上升到了74%,我们有理由在后面的游戏根据他的这种策略做出相应的调整。
可以看到,除了中文分词,机器翻译,图像识别等计算机学科的“高大上”领域,在类似于德州扑克这种需要时刻进行概率修正的场合,贝叶斯公式能发挥很大的作用。
本文作者:胡莹(点融黑帮) ,现任点融网高级产品经理,毕业于复旦大学,喜欢推理,杀人游戏,德州扑克。