热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

算法证明_CFR+算法证明过程

在介绍CFR算法之前,我们首先介绍一下基础概念。在CFR算法中,counterfactualutility被定义为以下形式:然后在regr

在介绍CFR+算法之前,我们首先介绍一下基础概念。

在CFR+算法中,counterfactual utility被定义为以下形式:

然后在regret的基础上,CFR+算法定义了一个regretlike value,注意在这里CFR+算法的regret为一个累加值,而CFR算法定义的regret为平均值,需要乘以1t:

,where

另外,在CFR+算法中,最后输出的平均策略为以下形式:

然后CFR+算法的bound为:

a832d00f39eb7ad3fcdb287613dca701.png

bound证明

4ac309073aa6d8cc13896e7e97b140ca.png

在对Lemma 1的证明过程中,我们可以得出以下结论:

fcfa8a2841503d310ec8ef692cdd077e.png

7a922b21b7b5ca1637deff0ee27ef5d8.png

我们得到了

,之后我们可以从Lemma 1可知
,于是,我们得出以下结论:

然后我们引入Lemma 3, Lemma 3很容易证明,可以直接看出:

805f82e5076f5e5eeb4b1c5c2ad93eb4.png

然后证明Lemma 4:

ed42de1c91efaf4f8ed00c2609c7f397.png

Lemma 4的证明就是将原有的序列扩充为1,2,3,。。。,T,这样的话等于有(T^2+T)/2的过程,然后我们再引入Lemma 3,这样的就可以求出新的bound:

然后我们由CFR算法的定义可知

于是可以得到新的

结论

从CFR算法和CFR+算法的证明过程中我们可以获取以下证明过程范式。

首先定义average overall regret:

846b372e56640bf762bdfa02d85d9cba.png

因为直接优化average overall regret困难,然后我们定义immediate counterfactual regret,并且最优化他,但是优化这个困难,于是我们优化他的拟合项counterfactual regret,使其小于

,就可以得到
。记住这样的话,counterfactual regret必须除t作为一个平均值,而CFR+算法直接将其作为了累加项。

在CFR+算法中,我们的counterfactual regret没有除t。但是我们得到了一个结论:

然后我们计算累加的counterfactual regret:

为了求出上面公式的bound,我们一般需要Lemma 3,而在LCFR中,需要在Lemma 3的基础上进行进一步的扩展。

然后我们证明

,于是得到


推荐阅读
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • Søren Kierkegaard famously stated that life can only be understood in retrospect but must be lived moving forward. This perspective delves into the intricate relationship between our lived experiences and our reflections on them. ... [详细]
  • 本文将详细介绍如何使用剪映应用中的镜像功能,帮助用户轻松实现视频的镜像效果。通过简单的步骤,您可以快速掌握这一实用技巧。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • Java内存管理与优化:自动与手动释放策略
    本文深入探讨了Java中的内存管理机制,包括自动垃圾回收和手动释放内存的方法。通过理解这些机制,开发者可以更好地优化程序性能并避免内存泄漏。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文探讨了如何在编程中正确处理包含空数组的 JSON 对象,提供了详细的代码示例和解决方案。 ... [详细]
  • Ralph的Kubernetes进阶之旅:集群架构与对象解析
    本文深入探讨了Kubernetes集群的架构和核心对象,详细介绍了Pod、Service、Volume等基本组件,以及更高层次的抽象如Deployment、StatefulSet等,帮助读者全面理解Kubernetes的工作原理。 ... [详细]
author-avatar
拍友2602911553
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有