博弈论
智猪博弈问题
智猪博弈问题是John Nash于1950年提出的问题。
在一个猪圈里养着一头大猪和一头小猪,在猪圈的一端放有一个猪食槽,在另一端安装有一个按钮,它控制着猪食的供应量。假定:
- 猪按一下按钮,就有8单位猪食进槽,但谁按按钮就会首先付出2单位成本;
- 若大猪先到食槽,则大猪吃到7单位食物,而小猪仅能吃到1单位食物;
- 若小猪先到,则大猪和小猪各吃到4单位食物;
- 若两猪同时到,则大猪吃到5单位,小猪仅吃到3单位。
显然,在这里按按钮有两个成本:
- 直接成本:2单位成本。
- 间接成本:先按按钮的猪,肯定会最后到达食槽。
因此,这个问题写成策略矩阵,则是:
小猪 | |||
按 | 等待 | ||
大猪 | 按 | 3,1 | 2,4 |
等待 | 7,-1 | 0,0 |
该博弈不存在占优战略均衡,因为尽管小猪有一个严格占优战略,但大猪并没有占优战略。
为了解决这个问题,Nash提出了重复剔除的占优战略均衡(iterated dominance equilibrium)。
其具体做法如下:
Step 1:大猪没有劣战略,策略保持不变。
Step 2:小猪有一个劣战略: “按”。
“按”的支付值: 1, -1
“等待”的支付值: 4, 0
Step 3:剔除小猪的劣战略“按”。
Step 4:剔除之后,大猪有一个劣战略:“等待”。
Step 5:剔除大猪的劣战略“等待”,剩下最后一个战略组合:
大猪:“按” + 小猪:“等待”
在小企业经营中,学会如何“搭便车”是一个精明的职业经理人最为基本的素质。在某些时候,如果能够注意等待,让其他大的企业首先开发市场,是一种明智的选择。这时候有所不为才能有所为!
最大最小策略
0阶理性共识:每个人都是理性的,但不知道其他人是否是理性的;
1阶理性共识:每个人是理性的,并且知道其他每个人也都是理性的,但并不知道其他人是否知道自己是理性的;
2阶理性共识:每个人是理性的,并且知道其他每个人也都是理性的,并且知道其他人知道自己是理性的,但不知道其他人是否知道自己知道其他人都是理性的。。。。。。。3阶、4阶。。。n阶依次类推。
重复剔除不仅要求每个人是理性的,而且要求每个人知道其他人都是理性的,每个人知道每个人知道每个人是理性的,如此等等,即理性是“共识”。
优势策略均衡与纳什均衡的概念是建立在博弈者理性行为的基础上的,任何出现的一点错误将可能使博弈者蒙受巨大的损失,因而可能有player会采取比较保守的策略。
其中一种保守的策略是最大最小策略(Maximin strategy)。
它是指博弈者所采取的策略是使自己能够获得的最小收入最大化。所谓最小收入是指采取某种策略所能获得的最小收入。
最大最小策略是一种保守的策略而不是利润最大化的策略。
很显然,博弈者往往是在信息不完全的情况下才采取最大最小策略。在信息完全的情形下,他肯定是会采取促使他利润最大化的策略。
在囚徒困境问题中,两人都坦白是最大最小策略,而两人都抵赖则是利润最大化策略。
最大最小均衡存在以下问题:
-
“最大最小”均衡没有考虑到局中人之间在策略选择上的互动。
-
由“最大最小”方法得到的“均衡”很难说是一种“均衡”。
其他博弈问题
当年英国政府将流放澳洲的犯人交给往来于澳洲之间的商船来完成,由此经常会发生因商船主或水手虐待犯人,致使大批流放人员因此死在途中(葬身大海)的事件发生。
后来大英帝国对运送犯人的办法(制度)稍加改变,流放人员仍然由往来于澳洲的商船来运送,只是运送犯人的费用要等到犯人送到澳洲后才由政府按实到犯人人数支付给商船。
仅就这样一点小小的“改变”,几乎再也没有犯人于中途死掉的事情发生。
枪手博弈是指,在三个枪手A、B、C之间一场对决即将展开,枪手A的枪法最好,命中率达到80%;枪手B的枪法次之命中率60%;而枪手C的命中率最差只有50%。
而此时由于是三方对决,先瞄准谁成了关键,对于A枪手来说,当然先瞄准仅次于他的B枪手,但对于B和C枪手而言,威胁最大的当然是A,在A倒下后B面对C的胜率会大很多,同时C的存活率也会提高,所以枪口都会对上A。
结论:
-
第一轮枪战,枪法最差的C竟然存活概率最大——肯定存活,而枪法好的A和B存活概率远低于C。启示:韬晦很重要。
-
如果在第一轮枪战中A、B均被击中,则C成为最终幸存者;只要A、B在第一轮枪战中有一人存活,那最终胜出的很可能是A和B中的幸存者。启示:实力很关键。能力较差的C靠着策略虽然能在第一轮枪战中暂时获胜,但只要A、B在第一轮枪战中有一人存活,那么第二轮枪战里C的存活的概率就会比对手低了。
参考
https://www.cnblogs.com/steven-yang/tag/博弈论/
一个博弈论的专栏
https://mp.weixin.qq.com/s/5o3m8RLwYkZJEhqNxOLq_A
不对称多代理博弈中的博弈理论解读
https://mp.weixin.qq.com/s/D9bRjYVJOMT0Jkh59XZ-Rg
DeepMind于Nature子刊发文提出非对称博弈的降维方法
https://mp.weixin.qq.com/s/1t6WuTQpltMtP-SRF1rT4g
当博弈论遇上机器学习:一文读懂相关理论
https://news.mbalib.com/story/242878
智猪博弈、龟兔悖论、谷堆悖论…这些有趣的博弈论值得一看!
https://blog.csdn.net/qq_27351341/article/details/81119533
偏好函数、无差异曲线、帕累托标准、卡尔多-希克斯标准等基础概念
https://blog.csdn.net/qq_27351341/article/details/81138774
囚徒困境、智猪博弈、纳什均衡与一致预期
https://blog.csdn.net/qq_27351341/article/details/81268801
多重均衡与制度和文化
https://blog.csdn.net/qq_27351341/article/details/81276298
动态博弈、威胁与承诺
https://blog.csdn.net/sobermineded/article/details/79541511
几个经典博弈模型(囚徒的困境、赌胜博弈、产量决策的古诺模型)
Exploration & Exploitation
几个基本的探索方法:
-
朴素探索(Naive Exploration): 在贪婪搜索的基础上增加一个 ϵ \epsilon ϵ以实现朴素探索;
-
乐观初始估计(Optimistic Initialization): 优先选择当前被认为是最高价值的行为,除非新信息的获取推翻了该行为具有最高价值这一认知;
-
不确定优先(Optimism in the Face of Uncertainty): 优先尝试不确定价值的行为;
-
概率匹配(Probability Matching): 根据当前估计的概率分布采样行为;
-
信息状态搜索(Information State Search): 将已探索的信息作为状态的一部分联合个体的状态组成新的状态,以新状态为基础进行前向探索。
根据搜索过程中使用的数据结构,可以将搜索分为:
-
依据状态行为空间的探索(State-Action Exploration)。针对每一个当前的状态,以一定的算法尝试之前该状态下没有尝试过的行为。
-
参数化搜索(Parameter Exploration)。直接针对策略的函数近似,此时策略用各种形式的参数表达,探索即表现为尝试不同的参数设置。
Parameter Exploration的优点:得到基于某一策略的一段持续性的行为。
缺点:对个体曾经到过的状态空间毫无记忆,也就是个体也许会进入一个之前曾经进入过的状态而并不知道其曾到过该状态,不能利用已经到过这个状态这个信息。
UCB
ϵ \epsilon ϵ-greedy和softmax算法的缺陷:
只关心回报是多少,并不关心每个臂被拉下了多少次,这就意味着,这些算法不再会选中初始回报特别低的臂,即使这个臂的回报只测试了一次。
UCB(The Upper Confidence Bound Algorithm)算法将会不仅仅关注于回报,同样会关注每个臂被探索的次数。
为了进一步刻画每个臂被探索的次数和回报之间的关系,UCB引入了置信区间的概念:
- 每个item的回报均值都有个置信区间,随着试验次数增加,置信区间会变窄(逐渐确定了到底回报丰厚还是可怜)。
- 每次选择前,都根据已经试验的结果重新估计每个item的均值及置信区间。
- 选择置信区间上限最大的那个item。
显然:
- 如果item置信区间很宽(被选次数很少,还不确定),那么它会倾向于被多次选择,这个是算法冒风险的部分;
- 如果item置信区间很窄(备选次数很多,比较确定其好坏了),那么均值大的倾向于被多次选择,这个是算法保守稳妥的部分;
UCB是一种乐观的算法,选择置信区间上界排序,如果是悲观保守的做法,是选择置信区间下界排序。
置信区间的度量有很多方式,由此产生了很多UCB的变种算法。最常用的UCB1算法,采用了如下度量方式:
I i = x ˉ i + 2 log t n i I_i=\bar{x}_i+\sqrt{2\frac{\log t}{n_i}} Ii=xˉi+2nilogt
其中 x i x_i xi是第i个臂的奖励均值, n i n_i ni是臂i当前累积被选择的次数。
UCB还可以应用到MCTS中,这就是UCT(Upper Confidence Bound Apply to Tree)算法了。即UCT=MCTS+UCB。
参考:
https://www.cnblogs.com/Ryan0v0/p/11366578.html
多臂赌博机问题(MAB)的UCB算法介绍
https://blog.csdn.net/yw8355507/article/details/48579635
UCB算法
https://blog.csdn.net/LegenDavid/article/details/71082124
LinUCB算法
https://zhuanlan.zhihu.com/p/32356077
Multi-Armed Bandit: UCB (Upper Bound Confidence)
一些MAB变种
我们前面的讨论默认了环境是不会变化的。而一些MAB问题,这个假设可能不成立,这就好比如果一位玩家发现某个机器的 p i p_i pi很高,一直摇之后赌场可能人为降低这台机器吐钱的概率。在这种情况下,MAB问题的环境就是随着时间/玩家的行为会发生变化。
如果概率事先设定好,并且在玩家开始有动作之后也无法更改,我们叫做oblivious adversary setting;如果这个对手在玩家有动作之后还能随时更改自己的设定,那就叫做adaptive adversary setting。
另外一类变种,叫做contextual MAB(cMAB)。几乎所有在线广告推送(dynamic ad display)都可以看成是cMAB问题。在这类问题中,每个arm的回报会和当前时段出现的顾客的特征(也就是这里说的context)有关。
参考:
https://mp.weixin.qq.com/s/8Ks1uayLw6nfKs4-boiMpA
多任务学习时转角遇到Bandit老虎机