虚拟遗憾最小化 CFR(Counterfactual Regret Minimization)

一、基础名词解释

1. 全称:反事实/虚拟遗憾最小化,简称CFR,你前面问到的CFR就是它 2. 定位:不完美信息博弈核心算法(德州扑克、多人卡牌、信息不对称对抗) 3. 核心目标:迭代降低“虚拟遗憾”,平均策略收敛到近似纳什均衡

1)什么是「遗憾 Regret」

单次遗憾 = 假如当初选最优动作能拿到的收益 − 当前实际动作收益

举例:对手出石头,我出剪刀亏1,最优是出布赚1 本次遗憾 = 1 − (−1) = 2,代表这次决策亏了2分

总遗憾:多轮游戏累加所有正遗憾(负遗憾直接置0,不惩罚好选择)。 策略更新规则:总遗憾越高的动作,下一轮选择概率越大。

2)什么是「虚拟/反事实 Counterfactual」

完美信息游戏(围棋、象棋)直接算真实遗憾; 扑克这类不完美博弈:双方手牌互相看不见,同一信息集包含大量不同真实牌面,无法直接计算真实收益。

虚拟(反事实)价值: 假设我强制走到当前信息集,忽略对手/自己走到这里的真实概率,纯计算「如果我站在这个局面,选每个动作能拿到的期望收益」。 用这个虚拟收益计算出来的遗憾 = 虚拟遗憾,这是CFR独有概念。

二、CFR 完整迭代流程(极简四步)

1. 遍历博弈树,划分信息集 信息集:你无法区分的局面(比如德州你手牌A5,对手手牌任意,都属于同一信息集),同一信息集共用一套动作选择概率。 2. 反向回溯,计算每个动作的虚拟收益 从游戏结束往回推,算出在当前局面,弃牌/跟注/加注各自期望收益。 3. 计算虚拟遗憾并累加 每个动作虚拟遗憾 = 该信息集最大虚拟收益 − 当前动作虚拟收益;只保留正数累加。 4. 更新策略 + 保存平均策略- 当前轮策略:按累计正遗憾分配动作概率(遗憾越高越优先选)

  • 平均策略:每一轮策略加权累加,最终只用平均策略对局(保证均衡收敛)

重复成千上万次迭代,全局总虚拟遗憾会持续下降趋近于0。

三、核心特点 & 适用场景

优势

1. 专门解决信息不对称博弈(围棋MCTS完美信息不能替代CFR); 2. 严格理论保证:迭代足够多次后,平均策略无限接近纳什均衡; 3. 衍生MCCFR(蒙特卡洛CFR):不用遍历整棵巨大博弈树,随机采样,可运行无限德州扑克(Libratus、DeepStack击败人类牌手底层就是MCCFR)。

局限

1. 状态爆炸:复杂博弈信息集数量指数增长,需要采样/神经网络加速; 2. 纯离线均衡求解,不擅长在线快速适应对手弱点(有改良在线CFR版本)。

四、CFR(虚拟遗憾)vs UCB(置信上限,你之前问过)关键区分

1. 领域完全不同- UCB:多臂老虎机、单步序列决策,无博弈对抗;

  • CFR:多玩家扩展式博弈、存在对手互相制衡、隐藏信息。 2. 优化目标- UCB:最小化单智能体长期累计收益损失;
  • CFR:最小化虚拟遗憾,寻找双方互相最优的均衡策略。 3. 探索逻辑- UCB:用置信区间乐观探索未知动作;
  • CFR:靠历史吃亏(遗憾)提升动作选择概率,无置信度概念。

五、通俗例子:库恩扑克(最小不完美博弈)

两人各1张牌(1、2、3),轮流下注。 玩家看不到对方牌,同一手牌属于一个信息集。 CFR不断模拟对局,统计“该加注却弃牌”的虚拟遗憾,慢慢学会:拿到大牌高频加注、小牌少跟注,最终形成均衡打牌策略,无法被对手长期压榨。

六、常见衍生变体

1. 原始CFR:完整遍历博弈树,只适合极小博弈; 2. MCCFR 蒙特卡洛虚拟遗憾最小:工业主流,随机采样博弈路径,支撑德州扑克AI; 3. DCFR、CFR+:加速收敛,大幅减少迭代次数; 4. DeepCFR:用神经网络拟合海量信息集的遗憾,解决超大博弈空间。