优势演员-评论家算法 A2C

news2024/10/2 1:40:32

优势演员-评论家算法 A2C

    • 优势演员-评论家算法 A2C
      • 主要思想
      • 目标函数

 


优势演员-评论家算法 A2C

前置知识:演员-评论家算法:多智能体强化学习核心框架

主要思想

AC 网络结构:

  1. 策略网络 - 演员: 这个网络负责根据当前的状态选择动作。它输出的是给定状态下每个动作的概率。

  2. 价值网络 - 评论家: 用于估计当前策略下,一个状态或状态-动作对的期望回报。

    • Q 网络: 估计在给定状态和动作下的期望回报。
    • V 网络: 估计在给定状态下的期望回报。

演员-评论家算法有 3 个网络(策略网络、价值函数-Q网络和V网络),我们最终目的不是计算 Q网络和V网络 的具体数值,而是差异(也就是优势网络A)。

因为演员-评论家算法用俩个不同的网络(Q网络和V网络)去,估计价值函数,反而会增大误差。

优势函数作用:

  • 优势函数 A(s, a) = Q(s, a) - V(s): 这个函数衡量的是在给定状态下,选择某个特定动作相对于平均动作的相对优势。

优势函数的目的并不是要精确计算 Q 和 V 的具体值,而是要找出哪些动作比平均动作好,哪些比平均动作差。

  • 当使用两个独立的网络来估计 Q 值和 V 值时,确实可能会增加估计的不确定性或误差,因为每个网络都有其独立的误差。
  • 然而,计算优势函数的关键在于找出相对优势。即使 Q 和 V 的绝对估计值不是完美准确的,它们的差值(即 A(s, a))仍然可以有效地指导策略网络进行更好的动作选择。
  • 优势函数的使用有助于减少方差,并且能够更加明确地指示策略网络应该如何改进,从而提高学习的效率和稳定性。

优势演员-评论家算法 通过分离策略和价值估计,并引入优势函数,提供更精细的价值估计,以及减少学习过程中的不稳定性。

就像练习投篮,你只能觉知到自己的投篮是偏左还是偏右了。

但那些高手的觉知更精细,他们会觉知到自己的手指(尤其是食指)的状态。

更别提膝盖、腰、肩膀、手肘等一系列对投篮都有影响的部位了。

你投篮几年了还是很低的命中率,因为你缺乏觉知的意识。

你偶尔怀疑自己为什么偷懒不准也找不到原因,只能感叹手感不好。

其实就是想要觉知而无法施展出来;即使你花时间去练习自己的投篮也往往效果不佳,因为你的觉知不精细。

而那些投篮高手,因为更精细,他们的刻意练习会让他们突飞猛进。

目标函数

  • 演员-评论家算法AC 的目标函数基于价值函数(比如状态价值函数 V)来评估动作。
  • A2C 改进了这个目标函数,引入了优势函数 A ( s , a ) = Q ( s , a ) − V ( s ) A(s, a) = Q(s, a) - V(s) A(s,a)=Q(s,a)V(s),其中 Q 是动作价值函数,V 是状态价值函数。这样的改变减少了方差,提高了学习稳定性。

数学表达:

  • ∇ R θ ˉ ≈ 1 N ∑ n = 1 N ∑ t = 1 T n ( Q π θ ( s t n , a t n ) − V π θ ( s t n ) ) ⏟ A τ θ ( s t n , a t n ) ⋅ ∇ log ⁡ p θ ( a t n ∣ s t n ) \nabla\bar{R_{\theta}}\approx\frac{1}{N}\sum_{n=1}^{N}\sum_{t=1}^{T_{n}}\underbrace{(Q_{\pi_{\theta}}(s_{t}^{n},a_{t}^{n})-V_{\pi_{\theta}}(s_{t}^{n}))}_{A_{\tau_{\theta}}(s_{t}^{n},a_{t}^{n})}\cdot\nabla\log p_{\theta}\left(a_{t}^{n}\mid s_{t}^{n}\right) RθˉN1n=1Nt=1TnAτθ(stn,atn) (Qπθ(stn,atn)Vπθ(stn))logpθ(atnstn)

作者把 Q 变成了 当前的即时奖励 r t n r_{t}^{n} rtn 加上在下一个状态 s t + 1 n s_{t+1}^{n} st+1n 下的预期总奖励。

  • Q π θ ( s t n , a t n ) = r t n + V π θ ( s t + 1 n ) Q_{\pi_{\theta}}(s_{t}^{n},a_{t}^{n})=r_{t}^{n}+V_{\pi_{\theta}}(s_{t+1}^{n}) Qπθ(stn,atn)=rtn+Vπθ(st+1n)

把 2 式代入 1 式:

  • ∇ R θ ˉ ≈ 1 N ∑ n = 1 N ∑ t = 1 T n ( r t n + V π θ ( s t + 1 n ) − V π θ ( s t n ) ) ⏟ A π θ ( s t n , a t n ) ⋅ ∇ log ⁡ p θ ( a t n ∣ s t n ) \nabla\bar{R_\theta}\approx\frac{1}{N}\sum_{n=1}^{N}\sum_{t=1}^{T_n}\underbrace{\left(r_t^n+V_{\pi_\theta}(s_{t+1}^n)-V_{\pi_\theta}(s_t^n)\right)}_{A_{\pi_\theta}(s_t^n,a_t^n)}\cdot\nabla\log p_\theta\left(a_t^n\mid s_t^n\right) RθˉN1n=1Nt=1TnAπθ(stn,atn) (rtn+Vπθ(st+1n)Vπθ(stn))logpθ(atnstn)

A2C 这个公式突出优势函数的形式,演员的更新不是基于动作价值( Q Q Q),只使用 V 网络,解决了 AC 算法的问题。

 


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1362537.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

更改ERPNEXT源

更改ERPNEXT源 一, 更改源 针对已经安装了erpnext的,需要更改源的情况: 1, 更改为官方默认源, 进入frapp-bench的目录, 然后执行: bench remote-reset-url frappe //重设frappe的源为官方github地址。 bench remote-reset-url…

如何使用免费的ZeroSSL证书保护您的网站

使用 ZeroSSL 在您的站点上轻松实施 SSL。我们的指南涵盖了免费证书设置,确保安全和加密的用户连接。 如今,保护您的网站不仅是一种建议,而且是一种必需品。这就是SSL证书发挥作用的地方。它们对用户浏览器和网站之间传输的数据进行加密&…

复旦MBA科创青干营(二期):探索合肥科创企业的创新之路

11月18日-19日,复旦MBA科创青干营二期学生开启了整合实践活动的第三次企业参访,前往位于合肥的蔚来第二先进制造基地、安徽万邦医药科技股份有限公司和合肥国轩高科动力能源有限公司,在学术导师和科创企业家“双导师”的指导下,深…

LeetCode 每日一题 Day 3334(hard)35 ||二进制枚举/单调栈/链表遍历

2397. 被列覆盖的最多行数 给你一个下标从 0 开始、大小为 m x n 的二进制矩阵 matrix ;另给你一个整数 numSelect,表示你必须从 matrix 中选择的 不同 列的数量。 如果一行中所有的 1 都被你选中的列所覆盖,则认为这一行被 覆盖 了。 形式…

MyBatis - 批量更新(update foreach)报错

在使用mybatis执行批量更新(update foreach)数据的时候报错如下: org.springframework.jdbc.BadSqlGrammarException: ### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; c…

Merge还是Rebase?这次终于懂了

《Git分支管理:Merge还是Rebase?》 导语: 在Git的分支管理中,Merge和Rebase是两种常见的合并策略,每一种都有其优劣之处。究竟应该选择Merge还是Rebase,取决于项目的需求和团队的工作流程。本文将深入探讨…

金和OA C6 MailTemplates.aspx SQL注入漏洞复现

0x01 产品简介 金和OA协同办公管理系统软件(简称金和OA),本着简单、适用、高效的原则,贴合企事业单位的实际需求,实行通用化、标准化、智能化、人性化的产品设计,充分体现企事业单位规范管理、提高办公效率的核心思想,为用户提供一整套标准的办公自动化解决方案,以帮助…

手势识别+人脸识别+姿态估计(关键点检测+教程+代码)

手势识别和手势关键点检测是计算机视觉领域中的一个重要研究方向,涉及到从图像或视频中检测人手的位置和姿态信息,并推断出手势的意义。以下是一些可能用到的方法和技术: 手势识别 基于深度学习的手势识别 基于深度学习的手势识别是目前最流行的方法之一。它通常使用卷积神…

前置判断-Detection

检测模型回答存在幻觉可以通过检索外部知识进行校验,不过考虑生成式模型覆盖问题的广泛性,Self-Contradictory论文中评估chatgpt生成的回答中38.5%的内容无法通过Wiki等外部知识进行校验。 因此这里我们先介绍一种完全基于模型自身,不依赖外…

web学习笔记(十一)

目录 1.数据类型 1.1数据类型分类 (1)简单(基本)数据类型 (2)复杂(特殊)数据类型 1.2判断数据类型的方法 (1)常规判断方法: (2…

jetson AGC orin 配置pytorch和cuda使用、yolov8 TensorRt测试

文章目录 1、安装环境1.1、检查系统环境1.2、下载安装pytorch1.3、下载安装torchvision1.3、测试安装是否成功 2、yolov8测试2.1、官方python脚本测试2.2、tensorrt 模型转换2.3、tensorrt c 测试 1、安装环境 1.1、检查系统环境 检查系统环境、安装jetpack版本,执…

UG装配-子装配

当我们在装配的时候,如果组件非常多,通常我们需要对其他部分零件进行单独的装配,然后在总成中使用,而不是在一个装配文件中对产品约束 我们在子装配中对各部件进行约束,默认状态下是无法在父装配中引用的 我们也可以在…

基于JavaWeb+SSM+Vue四六级词汇微信小程序系统的设计和实现

基于JavaWebSSMVue四六级词汇微信小程序系统的设计和实现 源码获取入口KaiTi 报告Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 KaiTi 报告 (1)课题背景 伴随着社会的快速发展, 现代社…

vim学习记录

目录 历史记录前言相关资料配置windows互换ESC和Caps Lock按键 基本操作替换字符串 历史记录 2024年1月2日, 搭建好框架,开始学习; 前言 vim使用很久了,但是都是一些基本用法,主要是用于配置Linux,进行一些简单的编写文档和程序.没有进行过大型程序开发,没有达到熟练使用的程…

解读 | Mint Blockchain 为何选择 OP Stack 作为 L2 技术方案?

Mint 是一个聚焦在 NFT 领域的创新型 L2 网络。Mint Blockchain 致力于促进 NFT 资产协议标准的创新和现实商业场景中 NFT 资产的大规模采用。今天这篇文章主要介绍一下 Mint Blockchain 开发者团队为什么选择了 OP Stack 技术方案,而不是其他家的 L2 方案。 我们将…

对Git的理解

1.Git介绍 Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目。 2.版本控制 简单来说,就是记录文件的内容变化,记录下你每一次对文件的修改的版本,以免你改来改去想要回退到之前的版本的时…

centos用yum安装mysql详细教程

1 查询安装mysql的yum源,命令如下 ls /etc/yum.repos.d/ -l 界面如下图所示,未显示mysql的安装源 2 安装mysql相关的yum源,例如: 例如:rpm -ivh mysql57-community-release-el7.rpm 要注意 mysql的版本和系统的版本匹配 mysql57-communi…

SwiftUI之深入解析如何使用accessibilityChartDescriptor视图修饰符为视图构建音频图表

一、DataPoint 结构体 在 SwiftUI 中构建一个简单的条形图视图开始,该视图使用垂直条形显示一组数据点。如下所示,有一个 DataPoint 结构,用于描述条形图视图中的条形,它具有 id、标签、数值和填充颜色: struct Data…

面试官:String为什么要设计为不可变类

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

python总结高阶-异常处理机制

文章目录 异常是什么?try和except结构try...一个except结构try...多个except结构try...except...else结构try...except...finally结构return语句和异常处理问题 常见异常常见异常的解决SyntaxError :语法错误NameError :尝试访问一个没有申明…