卡内基梅隆Noam Brown大神发的 Regret-Based Pruning in Extensive-Form Games,结合CFR和CFR+框架的剪枝技术,实验表明,游戏速度提高了一个数量级,相对速度的提高也随着游戏规模的增加而增加。
注:博客中有本人理解的内容,若有错误,感谢指正
introduction
论文首先引出了partial pruning,部分剪枝仅仅跳过更新对手动作概率不大于零的结点,可能错过实际上可以剪枝的路径,所以部分剪枝上仍有大量进步空间。比如说在某一动作结点上有许多动作,经过几轮迭代后的cfv值很低,即使动作概率仍大于零也进行剪枝。
在这个文章中,作者提出CFR上的Regret-Based Pruning ,区别部分剪枝只考虑对手的概率,RBP中如果任意一个玩家采取的行动导致这条路径的概率为零,则应避免在游戏树中遍历这条路径。这种剪枝需要是暂时的,因为概率会随迭代改变。跳过迭代的次数依赖于在之前迭代中这条序列上动作的好坏。
(Author note : RBP是基于概率的剪枝算法,α-β剪枝是基于价值的剪枝算法)
Background
这里几个新符号,其他在CFR中常见的就不赘述了
D(I,a) 为参与人P (I)在采取行动a后可达的信息集合,也就是descendant;
U(I) 为从I的历史中获得的最大收益,L(I) 是最小值
∆(I) = U(I) - L(I) 为从I的历史中可以得到的收益的范围
Applying Best Response to Zero-Reach Sequences
前文提到如果两个参与人的平均遗憾趋于零,那么他们的平均策略趋于纳什均衡。CFR-BR是CFR的一种变体,其中一个玩家使用CFR算法,另外的玩家在每次迭代中针对对手策略选择最佳对策,最佳反应的计算简单,只需要对博弈树进行一次遍历,每次遍历中遗憾值最大为零。
本文的方法只在特定状态下使用最佳反应(其他是CFR),可以在不增加对手遗憾的情况下减少玩家的遗憾。
Regret-Based Pruning (RBP)
重点来了,针对迭代中负遗憾值的动作,提出了一个CFR变体,在以零概率(因为在上一次迭代遗憾值为负)到达的信息集处使用最佳反应,该信息集及其后代结点不需要在每次迭代都遍历一遍,遍历的频率与这个动作的负遗憾值有多大有关。参与人1在迭代t + 1时在任何信息集中采取的策略对参与人2没有影响。比如说di在信息集I处,a的遗憾值Rt(I,a)=−1000Rt(I,a) = -1000Rt(I,a)=−1000,并且至少有一个I处的其他动作是正的,现假设△(I)=1△(I) = 1△(I)=1,在t+1次迭代时,动作a的遗憾值最大是-999,所以动作a仍不会被执行。所以我们应该跳过t+1到t+1000次迭代的动作a。在此之间,我们可以存储玩家2在t+1到t+1000每一次迭代的策略,然后在t+1000时计算针对这些策略的最佳反应,并声明玩家1在t+1到t=1000中使用的是最佳反应。
然后,我们可以计算玩家2这些迭代中的平均策略,再针对这个平均策略计算一个BR,再根据这个BR计算遗憾值给到下一次迭代。
定理一:不在剪枝点及其子孙结点的信息集,其遗憾值更新与在D(I,a)D(I,a)D(I,a)处的策略无关。
Best Response Calculation for Regret-Based Pruning
定理一的优势在于可以等到剪枝结束后(重访问动作a时)再决定在这几轮迭代中D(I,a)D(I,a)D(I,a)使用了什么策略。
decide what strategies were played in D(I,a) during the intervening iterations.We can then calculate a single best response to the average strategy that the opponent played, and say that that best response was played in D(I, a) in each of the intervening iterations.
这里应该是将这些轮迭代中的策略近似出来,用于计算之后的遗憾值?要不然怎么在迭代结束后决定之前的策略????
这一节描述如何有效地计算BR。
首先认定在T0开始剪枝,在T1重新访问。这些轮的迭代平均策略可以定义为σˉiT1−T0(I)=∑t=T0T1πit(I)σit(I)∑t=T0T1πit(I)\bar{\sigma}_{i}^{T_{1}-T_{0}}(I)=\frac{\sum_{t=T_{0}}^{T_{1}} \pi_{i}^{t}(I) \sigma_{i}^{t}(I)}{\sum_{t=T_{0}}^{T_{1}} \pi_{i}^{t}(I)}σˉiT1−T0(I)=∑t=T0T1πit(I)∑t=T0T1πit(I)σit(I)。先希望针对这个平均策略计算最佳反应。一个简单的方法是在剪枝开始之前存储对手的累积策略,然后在剪枝结束时从当前的累积策略中减去它。
当我们剪枝动作a时,也希望对更早的动作a’进行剪枝。解决这种问题的一个方法是只有当保证(或估计)跳过的迭代次数超过某个阈值时,才剪枝动作a’。这确保剪枝的花销是值得的,并且不会在已经剪枝完的树下面经常访问动作a。
另一种方法是给每个要剪枝的动作跳过迭代次数的上界,如果我们将要跳过a的时间的下界超过了跳过a’的上界,就将a’剪枝,因为在剪枝a’的同时,也不会遍历到a。
实验中使用了前一种方法。
Regret-Based Pruning with CFR+
这一节中,表示可以调整CFR+的更新公式,使得可以与RBP结合。
当使用RBP与CFR+时,遗憾更新没有严格遵守CFR+的规则。CFR+要求在前一个迭代中瞬时遗憾为正时,就以正概率执行该动作。由于RBP可能跳过几个迭代后检查动作的遗憾值,在CFR+中的动作重新使用时的迭代次数和在RBP中的迭代次数之间可能有一个延迟。但是CFR的收敛速度仍然适用。
然而,当结合线性平均方法时,这种差异是显而易见的。经验上,线性平均使CFR+更快地收敛到纳什均衡。然而,在普通的CFR中它会导致较差的性能,并且没有证据保证收敛。由于RBP与CFR+导致的行为并不严格符合CFR+,线性平均会导致收敛中有波动。这可以通过报告到目前为止发现的最接近纳什均衡的策略概要而不是当前的平均策略概要来缓解。
Experiments
Conclusions and Future Research
RBP方法加快了收敛的速度,RBP方法在大型博弈中特别有用,其中许多行动都是次优的,但事先不知道哪些行动是优的。
在未来的研究中,类似的修剪形式是否也可以应用于其他的平衡寻找算法,这是值得研究的。RBP,在本文中提出,是CFR使用后悔匹配来决定在每个迭代中基于后悔使用什么策略。RBP并不直接应用于其他可以在CFR中使用的策略选择技术,如指数权重,因为后者总是将正概率放在行动上。此外,类似rbp的剪枝是否可以应用于一阶寻找平衡的方法也很有趣。本文的结果表明,对于任何在大型博弈中高效的均衡寻找算法,有效的剪枝是必不可少的。