博弈(Game)**:由参与者(Players)、策略集(Strategy Sets)、收益函数(Payoff Functions)构成的三元组

CFR-虚拟遗憾最小化算法入门(一) 目录CFR-虚拟遗憾最小化算法入门基本原理实现部分游戏说明CFR实现训练部分参考代码举例说明初始情况(概率相等)一般情况(概率不等)决策部分参考代码举例说明 CFR-虚拟遗憾最小化算法入门 CFR, Counterfactual Regret Minimization,是一个用于解决 信息不对称1 游戏中决策的经典算法。我搜索到网上相关的中文资料比较少,当然这个算法相对于现在来说可以说是有些过时。但我认为作为入门的算法还是很有帮助的。 本人也只是个初学者,如果有错误,尽请指出。 本文主要关注于实现,对于理论 阅读详情

博弈论是研究理性决策者在相互影响情境下如何选择策略的数学理论。其核心概念包括:

  • 博弈(Game):由参与者(Players)、策略集(Strategy Sets)、收益函数(Payoff Functions)构成的三元组。
  • 纳什均衡(Nash Equilibrium):一种策略组合,其中任一玩家单方面偏离其策略都无法获得更高收益;即每个玩家的策略都是对他人策略的最优响应。
  • 完全信息 vs 不完全信息:前者指所有玩家知晓博弈结构与他人收益;后者(如扑克)存在私人信息(如手牌),需引入贝叶斯博弈建模。
  • 零和博弈(Zero-sum Game):一方收益等于另一方损失,总和恒为0;常用于二人对抗场景,存在确定性最小最大解。
  • 扩展式博弈(Extensive-form Game):用博弈树表示,含行动顺序、信息集(Information Sets,刻画不完美信息)、概率节点(Chance nodes)等,适用于序贯决策(如德州扑克)。

遗憾最小化(Regret Minimization) 是在线学习与博弈均衡求解中的关键思想:

  • 即时遗憾(Immediate Regret):在某一轮中,若采用某纯策略 aaa 而非实际选择的策略 ata_tat​,所损失的收益差:rt(a)=ut(a)−ut(at)r^t(a) = u^t(a) - u^t(a_t)rt(a)=ut(a)−ut(at​)。
  • 累计遗憾(Cumulative Regret):对策略 aaa 在 TTT 轮内的总遗憾 RT(a)=∑t=1Trt(a)R^T(a) = \sum_{t=1}^T r^t(a)RT(a)=∑t=1T​rt(a)。
  • 外部遗憾(External Regret):衡量是否应始终采用某一固定策略优于历史实际序列;若所有 RT(a)≤o(T)R^T(a) \leq o(T)RT(a)≤o(T),则平均策略收敛至近似纳什均衡(在零和博弈中)。

虚拟遗憾最小化(Counterfactual Regret Minimization, CFR) 是专为不完全信息扩展式博弈设计的高效迭代算法:

  • 核心思想:在每个信息集(而非每个节点)上独立运行遗憾最小化(常用 regret-matching 或 RM+);
  • 反事实价值(Counterfactual Value):衡量在“到达该信息集且采取某动作”的前提下,后续最优期望收益(加权了到达该信息集的概率及对手/随机事件的策略);
  • 反事实遗憾(Counterfactual Regret):RiT(I,a)=∑t=1Tρi−t(I) rit(I,a)R_i^T(I,a) = \sum_{t=1}^T \rho_i^{-t}(I)\, r_i^t(I,a)RiT​(I,a)=∑t=1T​ρi−t​(I)rit​(I,a),其中 ρi−t(I)\rho_i^{-t}(I)ρi−t​(I) 是第 ttt 轮中玩家 iii 未控制路径(即对手与 chance 节点)的到达概率乘积,用于无偏估计;
  • 更新方式:每轮遍历博弈树(通常使用蒙特卡洛采样变体 CFR+ 或 Pure CFR),计算各信息集的反事实遗憾,按 regret-matching 规则更新策略;
  • 收敛性:CFR 保证平均策略(或线性 CFR 的加权平均)随 T→∞T\to\inftyT→∞ 收敛至纳什均衡(在两人零和博弈中)。

CFR 及其改进(CFR+, DREAM, Deep CFR)已成为解决大规模不完美信息博弈(如 Heads-up No-Limit Texas Hold’em)的基石,AlphaZero 类算法则侧重于完美信息马尔可夫博弈。

# 简化版 CFR 中 regret-matching 更新伪代码(单信息集)
def regret_matching(regrets):
    # regrets: dict{action -> float}, 可为负
    positive_regret_sum = sum(max(0, r) for r in regrets.values())
    if positive_regret_sum == 0:
        return {a: 1.0 / len(regrets) for a in regrets}
    return {a: max(0, r) / positive_regret_sum for a, r in regrets.items()}

这是一个深刻且关键的问题,触及 CFR 理论根基与实际应用的张力。

为什么平均策略收敛到纳什均衡,而当前策略(last iterate)不一定收敛?

根本原因在于:CFR 是一种在线 regret minimization 过程,其每轮策略更新仅基于局部遗憾信号,不保证单步策略具有全局稳定性;而纳什均衡要求所有玩家策略互为精确最优响应——这需要“平滑化”历史波动。

  • ✅ 平均策略收敛性(由 Blackwell’s Approachability 或 Hart–Mas-Colell 定理保证):
    CFR 在每个信息集上最小化外部反事实遗憾。若所有玩家在 TTT 轮内对每个动作 aaa 的累计反事实遗憾满足 RT(I,a)=o(T)R^T(I,a) = o(T)RT(I,a)=o(T),则其均匀平均策略 σˉT=1T∑t=1Tσt\bar{\sigma}^T = \frac{1}{T}\sum_{t=1}^T \sigma^tσˉT=T1​∑t=1T​σt 构成一个 εT\varepsilon_TεT​-纳什均衡,其中 εT→0\varepsilon_T \to 0εT​→0(对两人零和博弈,εT=O(1/T)\varepsilon_T = O(1/\sqrt{T})εT​=O(1/T​))。
    直观上,平均策略“稀释”了单轮策略的偏差,使对手无法通过固定策略持续剥削——因为任何可剥削方向都已被历史遗憾所抑制。

  • ❌ 当前策略(last iterate)不收敛的典型反例:
    在简单博弈(如 Matching Pennies 扩展式版本或循环博弈)中,CFR 的瞬时策略常呈现振荡行为(如在两个纯策略间交替),因其 regret-matching 对正遗憾敏感、缺乏阻尼机制。数学上,CFR 不满足单调性或收缩性(contraction),无法保证迭代映射是 Banach 压缩;它甚至不保证目标函数(如对偶间隙)单调下降。
    例如:在 Rock-Paper-Scissors 的扩展式建模中,σt\sigma^tσt 可能周期性地偏向 Rock → Paper → Scissors,永不静止,但其平均始终趋近于 (1/3,1/3,1/3)(1/3,1/3,1/3)(1/3,1/3,1/3)。

  • 🔑 关键区分:

    • 平均策略 → 统计意义下的“群体行为”,具博弈论解释力(可被对手无法显著剥削);
    • 当前策略 → 单次决策规则,反映最新学习状态,但受噪声、路径依赖与非凸结构影响,缺乏收敛保障。

是否存在收敛更快的变体?——是的,且已取得显著进展:

算法加速机制收敛速率提升备注
CFR+(Tammelin et al., 2015)使用 regret-matching+(忽略负遗憾)、线性权重平均(σˉT∝∑t⋅σt\bar{\sigma}^T \propto \sum t\cdot\sigma^tσˉT∝∑t⋅σt)、不回溯更新实践中快数倍至数十倍;理论仍为 O(1/T)O(1/\sqrt{T})O(1/T​),但常数大幅减小当前最广泛使用的基线
Linear CFR(Tammelin, 2014)权重按轮次线性递增(第 ttt 轮权重为 ttt)平均策略收敛率提升至 O(1/T)O(1/T)O(1/T)(在特定范数下)需存储加权策略,内存开销略增
Discounted CFR (DCFR)(Brown & Sandholm, 2019)对历史遗憾施加指数衰减因子(如 γt=tα/(t+1)α\gamma_t = t^\alpha/(t+1)^\alphaγt​=tα/(t+1)α),并调整权重理论证明可达 O(1/T1−δ)O(1/T^{1-\delta})O(1/T1−δ)(δ>0\delta>0δ>0),实践中更稳定快速α,β,γ\alpha,\beta,\gammaα,β,γ 三参数需调优
Outcome-Sampling CFR (OS-CFR)每轮只采样一条完整路径(而非遍历整棵树),降低单轮复杂度时间复杂度从 $O(\mathcal{I}
Mirror Descent CFR / Regret-Dependent MD将 CFR 解释为镜像下降(MD)在树形策略空间上的实现,采用自适应步长与 KL 散度正则项可达 O(1/T)O(1/T)O(1/T) 最优速率(在强凸正则下);理论更统一需计算树形投影,实现较复杂

⚠️ 注意:“更快”主要指实践收敛速度(达到同等精度所需轮次/时间);在最坏情况下,多数变体仍保持 O(1/T)O(1/\sqrt{T})O(1/T​) 下界(因在线凸优化本质限制),但常数与实际震荡幅度显著改善。

此外,近年工作(如 DREAM, Neural CFR)尝试用神经网络拟合价值函数或策略,将 CFR 的“树遍历”替换为“网络推理”,在保持收敛性的同时极大提升单轮效率——但这属于架构融合,而非纯粹 CFR 迭代变体。
在这里插入图片描述

【点宽专栏】虚拟遗憾最小化(CFR)之量化择时与交易 谷歌DeepMind公司研发的AI围棋AlphaGo在去年嗨翻天的时候,让我觉得现在的机器学习学习技术真的很NB,因为自己的专业,私下一直有关注机器学习在量化投资这块的一些实践。昨天看到广发出了一篇名为《虚拟遗憾最小化应用于量化择时与交易》的文章,让我眼前一亮,感觉这都怎么了啊。但是看到最后的结果,也不是很理想。这样看来,也是情理之中。很多高大上的东西,要放在金融市场去真正赚钱,这倒不见得会有多么好。除了市场本身外,自身的研究水平也是一方面。经常听朋友说,大道至简,其实也是蛮有道理的。无论什么模型,最终能. 阅读详情

相关推荐

Feature Flags,也称为特性开关或特性开关模式,是一种软件开发策略,用于控制在特定环境中启用或禁用新功能或特性

Feature Flags,也称为特性开关或特性开关模式,是一种软件开发策略,用于控制在特定环境中启用或禁用新功能或特性。它允许团队在发布新功能时对一部分用户开启,以便收集反馈并逐步推广。truefalse通过这种方式,开发者可以在不更改核心代码的情况下,灵活地控制新功能的部署范围,便于管理和测试迭代。

[Blog][Domain] programb.blog.youkuaiyun.com 2728

机器博弈 (三) 虚拟遗憾最小化算法

我的微信公众号名称:深度学习与先进智能决策 微信公众号ID:MultiAgent1024 公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步! 虚拟遗憾最小化算法(Counterfactual Regret Minimization) 如果不能遍历计算机所有节点的遗憾值,那么可以采用虚拟遗憾最小化算法来进行模拟计算。 假设: 集合AAA...

小小何先生的学习之旅 5400

在安装 RabbitMQ 插件时,通常会通过命令行来验证插件是否成功启用

在安装 RabbitMQ 插件时,通常会通过命令行来验证插件是否成功启用。对于如果插件已成功启用,上述命令应该会显示enabled或(enabled),表示该插件有效并正在运行。然而,关于验证RabbitMQ仓库的有效性,这里提到的是验证插件的状态而非仓库本身。RabbitMQ仓库的有效性通常取决于你的包管理器(如Erlang Package Manager (EPM) 或者如果你从GitHub克隆仓库),确保你已经正确地设置了源和权限。

[Blog][Domain] programb.blog.youkuaiyun.com 2287

遗憾/虚拟遗憾最小化算法

剪刀石头布游戏,决策集为[剪刀,石头,布]。库恩扑克的信息集有12个:{1,1P,1B,1PB,2 , 2P,2B,2PB,3 , 3P ,3B , 3PB}∑i表示玩家i的策略空间,σi(Ii)是玩家i在动作集A(Ii)上的概率分布函数,Ii是信息集。对于A来说,在B策略不变的情况下(出布P), μA(P,P)=0, μA(S,P)=-1。σ表示所有玩家的策略组,σi表示第i个玩家采用的策略,σ-i表示其他玩家的策略。ui表示玩家i的收益函数,Z->R,Z为终止序列集合,即截止到Z,玩家i的收益。

echo8_3的博客 1368

机器博弈 (二) 遗憾最小化算法

现代的博弈论快速与人工智能进行结合,形成了以数据驱动的博弈论新的框架。博弈论与计算机科学的交叉领域非常多,有以下几个方面: 理论计算机科学:算法博弈论 人工智能:多智能体系统、AI游戏、人机交互、机器学习、广告推荐等。 互联网:互联网经济、共享经济。 分布式系统:区块链。   人工智能与博弈论结合,形成了两个主要研究方向:1. 博弈策略的求解;2. 博弈规则的设计。   博弈论提供了许多问题的数学模型。纳什定理确定了博弈过程问题存在解。人工智能的方法可以用来求解均衡局面或者最优策略。   主要研究的问题就是:如何高效求解博弈参与者的策略以及博弈的均衡局势。   其应用领域主要有: 大规模搜索空

雷电模拟器+Auto.js避坑指南:用桥接模式解决PC与模拟器连接超时问题

本文详细解析了雷电模拟器与Auto.js联调中的桥接模式应用,解决PC与模拟器连接超时问题。通过桥接模式配置、高频故障排查及多开环境下的高阶配置,提升开发效率与稳定性,特别适合需要稳定网络连接的Auto.js开发者。

weixin_28836989的博客 632

MindSpore:一文带你入门虚拟遗憾最小化CFR算法

本文使用通俗方式介绍CFR算法思想和发展脉络,适用于初学者的入门指南。]近期会上线DeepCFR算法,有兴趣进一步了深入了解算法的读者欢迎移步围观。最后插入一波广告:MindSpore Reinforcement是一个开源的强化学习框架,为强化学习算法提供了干净整洁的API抽象,将算法与部署和执行进行解耦,包括异构加速器、并行度和跨worker集群部署,欢迎大家Star,fork、共同开发。...

skytttttt9394的博客 2261

非完全信息博弈中的虚拟遗憾最小化(CFR)算法(附实现代码)

一,简介 前几年,AlphaGo兴起了机器学习的热潮。在围棋这种完全信息的零和博弈中,作为算法需要解决的仅仅只是如何搜索大规模博弈树的问题,但是在德州扑克这种非完全信息博弈的问题中往往还藏有欺骗诈唬等等手段。而且对比围棋每次下棋有限的策略(19*19个交叉点)德州扑克的策略几乎是无限的,专业选手往往押注在1000到十几万甚至百万美元,中间押注10000$和10500$也存在差距。所...

孤寂不及清夜长 1万+

基于ADS\HFSS\Matlab的平面带通发夹滤波器设计

写在最前面,前段时间完成了一个小项目,实现13.5~14GHz的带通滤波器,算是第一个微波项目,在老师、学长、各种大神的指点下,最终完成了指标,想来这段时间收获良多,想到老师教导的,有能力的话要尽可能帮助别人,以及网络上很少面向于小白的教程,于是决定把自己做这个小项目的经过,一些关键步骤,还有软件操作和公式讲解都发出来,供大家指正借鉴。由于我目前大三,刚学习电磁场、微波工程等等,技术实在有限,同时这样是我第一次发帖子,只能尽可能的将自己确认过正确的内容,步骤以及一些经验写出来,供大家借鉴。

likaifeng12138的博客 5219

【鸿蒙南向开发】OpenHarmony音频驱动audio适配方案

这份鸿蒙(HarmonyOS NEXT)文档包含了鸿蒙开发必掌握的核心知识要点,内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、OpenHarmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。

HarmonyOS_666的博客 4513

Monte Carlo Counterfactual Regret Minimization

Monte Carlo Sampling for Regret Minimization in Extensive Games(MCCFR)

不荒废现在,不畏惧未来! 1809

利用Nginx反向代理实现GitLab自定义域名的高效配置

本文详细介绍了如何利用Nginx反向代理实现GitLab自定义域名的高效配置。通过统一域名管理、性能优化和安全加固,提升GitLab的访问效率和安全性。文章包含前期准备、GitLab基础配置、Nginx反向代理设置及常见问题排查,帮助开发者快速完成部署。

weixin_28834169的博客 164

CFR虚拟遗憾最小化算法基础

虚拟遗憾最小化算法(Counterfactual Regret Minimization) 如果不能遍历计算机所有节点的遗憾值,那么可以采用虚拟遗憾最小化算法来进行模拟计算。 在遗憾匹配中,玩家通过跟踪所有过去所玩游戏的遗憾值来指导将来的决策,从而使遗憾值逐步减小,当遗憾值为 0(即玩家对没采取任何一种动作都表示不遗憾)时,证明当前策略最优,达到博弈的纳什均衡。 概念定义 平均整体遗憾: 玩家 i 进行 T 次游戏,在第 t 次游戏使用策略tσ ,则玩家 i在这 T 次游戏中的平均整体遗憾为:

qq_38977751的博客 1801

【HOJ系列】HOJ判题机部署

【HOJ系列】HOJ判题机部署

随风浪仔的专栏 904

​​手把手教你学PCIE--ATU 的 Bar 匹配模式与地址匹配模式详解​

摘要: ATU(地址转换单元)提供两种地址匹配模式:Bar匹配模式基于PCI设备的BAR寄存器自动映射虚拟地址(只需配置物理基址),适用于标准PCI设备DMA;地址匹配模式需显式配置虚拟与物理地址范围,适合自定义映射场景。核心区别在于匹配依据(BAR自动推导vs人工定义),Bar模式简化配置,地址模式更灵活。

MHD0815的博客 380

人工智能博弈(AI in Game Theory)是将人工智能技术(尤其是机器学习与优化算法)应用于博弈论问题的研究方向

人工智能博弈(AI in Game Theory)是将人工智能技术(尤其是机器学习与优化算法)应用于博弈论问题的研究方向,旨在让智能体在多智能体交互环境中做出理性、鲁棒且策略最优的决策。其核心涵盖以下几方面:

[Blog][Domain] programb.blog.youkuaiyun.com 533

树莓派 5 AI 套件(Hailo)示例

该用户自定义类作为输入传递给回调函数,该函数在管道输出上运行。它用于主程序与回调函数之间的通信。它对 hailo_rpi_common::app_callback_class 进行了扩展,并可根据应用程序的具体情况定制附加变量和方法。

机器人控制与仿真应用 4115

Pluribus cfr博弈论实战德州(2) CFR虚拟遗憾最小化算法

对比cfr和regret matching的regret ,最大的区别是多了对手到达概率,当时思考了很久也不清楚他的物理意义,尝试去掉这个概率跑结果就错误了,后来实践后个人认为在博弈树下面自己和对手都会做出大量不同的选择,我们要将不同选择合成一个类似状态价值向上反传所以需要给不同选择的收益给予不同的权重,如果对手都不会走到这个节点,那么这个收益为上层节点的贡献也为0。上一章介绍了一下纳什均衡策略,他是用一个叫cfr的算法求得的,介绍cfr前我们先介绍下regret matching。

spacetrotter1的博客 1417

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

pluribus第三课:CFR最小虚拟遗憾值算法

! 在这里插入图片描述

qq_30325761的博客 2529

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

虚拟遗憾最小化(CFR)与强化学习(RL) 的异同点

虚拟遗憾最小化(CFR)是一种在不完全信息博弈中寻找纳什均衡的算法。它主要出现在扩展式博弈的环境里,这是一个不完全信息博弈框架。 强化学习(RL)更倾向于使用马尔科夫决策过程(MDPs)框架,这两种框架比较相似,但信息大都是完全的(然而它有时被扩展到处理部分可观察马尔科夫决策过程(POMDPs))。 CFR与传统的RL算法的不同之处在于,它并不试图使预期收益最大化。而是希望把可利用度最小化。石头剪刀布是一个很好的例子。CFR会学会在各种选项之间随机挑选,因此一般会找到折中的策略。传统的RL算法会试图利用对手

不荒废现在,不畏惧未来! 1887

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

CFR-虚拟遗憾最小化算法入门(二)

CFR算法入门(二)修改信息集训练结果 在上一章,把基本的框架搭建完成了,也成功让我们的AI学会了看见目标就进行射击。我们现在想让它学会更多,我提到过要在信息中加入决策历史。这就是这章要做的 修改信息集 完整代码 def __genInfoSet(self, shooter:CFRShooter, history:str) -> str: """ build infoSet path avaliable: up down left right facing enemy:

lyh_ADT的博客 1255

虚拟遗憾最小化-java

public class Node { Node fatherNode; Node betNode; Node checkNode; int poker; int poker2; String state; double probability; double betIValue; double checkIValue; ...

Amaze_Taciturn的博客 760

在 Java Web 应用里,ActiveMQ 队列在底层涉及多方面的原理和机制,以下从网络连接、消息存储、消息流转、事务与确认机制以及高可用保障等方面详细剖析

在 Java Web 应用里,ActiveMQ 队列在底层涉及多方面的原理和机制,以下从网络连接、消息存储、消息流转、事务与确认机制以及高可用保障等方面详细剖析。

[Blog][Domain] programb.blog.youkuaiyun.com 2254
上一篇: (市场分析与管理、银行数据挖掘、风险分析与管理、欺骗检测与异常模式)均高度依赖数据挖掘技术,而Python是当前银行业数据科学实践中的主流工具
下一篇: 银行客户流失预测是银行业数据科学中的典型应用,旨在通过分析客户行为、交易历史、产品持有、服务交互等多维度数据
Bol5261
Bol5261 新星创作者: Java技术领域 新星创作者: Java技术领域 优质创作者: 学术研究与理论基础技术领域 优质创作者: 学术研究与理论基础技术领域
博客等级 码龄7年 4万+粉丝 1万+原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bol5261

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值