优势演员-评论家算法 A2C

优势演员-评论家算法 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.mzph.cn/news/601463.shtml

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

相关文章

leetcode——杨辉三角

https://leetcode.cn/problems/pascals-triangle/ 杨辉三角: 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 核心思想:找出杨辉三角的规律,发…

案例098:基于微信小程序的电子购物系统的设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

Apache Paimon:Streaming Lakehouse is Coming

摘要:本文整理自阿里云智能开源表存储负责人,Founder of Paimon,Flink PMC 成员李劲松(花名:之信)、同程旅行大数据专家,Apache Hudi & Paimon Contributor 吴祥平、汽车之家大数据计算平台…

前置判断-Detection

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

多线程第一课---

UML中规定的箭头方向是从子类指向父类。 关于这一点,按照以下方法去理解有助于大家记住这条规则。 在定义子类时需要通过extends关键字指定父类。因此, 子类一定要知道父类的定义,而反过来,父类并不知道子类的定义。 只有在知道对…

51单片机串行口相关知识

51单片机串行口相关知识 串行通信概念 计算机与外部通信方式就两种: 并行通信串行通信 两种通信方式的特点以及适用场景: 名称特点适用场景并行通信速度快,效率高,成本高适合短距离高速通信,如计算机内部各硬件之…

基于日照时数计算逐日太阳辐射

基于日照时数计算逐日太阳辐射

ubuntu 2020 配置root用户直接登录

一、前言 ubuntu出于安全性的考虑,禁止root用户直接登录。不仅体现在ssh协议上,还有其图形化页面root用户直接登录时也无法直接登录。博主处于特殊的使用场景需要开启root用户直接登录,故进行下面配置,一般情况下不建议开启此配置…

【SpringCloud】之远程消费(进阶使用)

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《SpringCloud开发之远程消费》。🎯&a…

C++ 类的内存分布

文章目录 1 . 前言2 . 无继承,无虚函数3 . 无继承,有虚函数4 . 单一继承,无虚函数5 . 单一继承,有虚函数,虚析构6 . 多重继承7 . 菱形继承8 . 虚拟继承9 . 总结 【极客技术传送门】 : https://blog.csdn.net/Engineer_…

淘宝京东1688商品详情API接口,搜索商品列表接口

前言 在实际工作中,我们需要经常跟第三方平台打交道,可能会对接第三方平台API接口,或者提供API接口给第三方平台调用。 那么问题来了,如果设计一个优雅的API接口,能够满足:安全性、可重复调用、稳定性、好…

vue-video-player播放hls视频流

需求 最近需要接入海康视频摄像头,然后把视频的画面接入到自己的网站系统中。以前对接过rtsp固定IP的显示视频,这次的不一样,没有了固定IP。海康的解决办法是,摄像头通过配置服务器到萤石云平台,然后购买企业版账号和…

Window端口占用处理

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精…

智能语音机器人NXCallbot

受出海公司业务全球化的影响,智能客服逐渐从便捷应用变为市场刚需。新基建七大领域中,人工智能及场景应用的基础建设是最核心的领域,而智能客服作为商业化实际应用的核心场景之一,能提升企业运营效率,为行业客户赋能。…

目标检测-One Stage-RetinaNet

文章目录 前言一、RetinaNet的网络结构和流程二、RetinaNet的创新点Balanced Cross EntropyFocal Loss 总结 前言 根据前文目标检测-One Stage-YOLOv2可以看出YOLOv2的速度和精度都有相当程度的提升,但是One Stage目标检测模型仍存在一个很大的问题: 前…

ARM NEON 指令

NEON指令 按照操作数类型可以分为正常指令、宽指令、窄指令、饱和指令、长指令。 正常指令:生成大小相同且类型通常与操作数向量相同到结果向量。长指令:对双字向量操作数执行运算,生产四字向量到结果。所生成的元素一般是操作数元素宽度到…

ReentrantLock底层原理学习一

J.U.C 简介 Java.util.concurrent 是在并发编程中比较常用的工具类,里面包含很多用来在并发场景中使用的组件。比如线程池、阻塞队列、计时器、同步器、并发集合等等。并发包的作者是大名鼎鼎的 Doug Lea。我们在接下来的课程中,回去剖析一些经典的比较…

vite4项目中,vant兼容750适配

一般非vite项目,使用postcss-px-to-viewport。在设计稿为750时候,可使用以下配置兼容vant。 在vite4项目中,以上配置不行。需要调整下,使用postcss-px-to-viewport-8-plugin,并修改viewportWidth,具体如下…

CSS新增文本样式(完整)

文本样式 概念:在CSS3中,增加了丰富的文本修饰效果,使得页面更加美观舒服。 常用的文本样式属性 属性说明text-shadow文本阴影text-stroke文本描边text-align-last文本对齐white-space处理空白字符text-overflow文本溢出word-wrap | word-…

【Linux 内核源码分析】关于Linux内核源码目录结构

Linux内核源码采用树形结构。功能相关的文件放到不同的子目录下面,使程序更具有可读行。 使用Source Insight打开源码,如下图所示,可以看到源码是树形结构。 目录含义描述arch存放与体系结构相关的代码,包括不同硬件平台的特定代…