优势演员-评论家算法 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 吴祥平、汽车之家大数据计算平台…

(一)为什么要选择C++

如果要说C的优点,大部分人可能会说C 跨平台,性能好,如果要说C缺点那估计很多人可以说出一大堆。 没有官方包管理工具没有官方构建工具,虽然cmake 横空出世,有一统江湖的趋势,但是很多项目还是没有cmake支持…

JavaScript-变量数据类型-笔记

1.变量的使用 ① 先声明 再赋值 声明:var 变量名 在声明时不知道数据类型 赋值:变量名 值 在赋值时 知道数据类型 ② 初始化: 在声明变量时 就进行赋值 var 变量名 值 2.变量名在使用时 不能加引号 3…

18.Linux Shell中的mktemp命令使用

文章目录 Linux Shell创建临时文件在工作目录创建临时文件在/tmp 目录创建临时文件3)创建临时目录 欢迎访问个人网络日志🌹🌹知行空间🌹🌹 Linux Shell创建临时文件 Linux的/tmp目录用来存放不需要永久保留的文件。大多数Linux发…

前置判断-Detection

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

PCL 切片法实现点云模型的体积测量、面积测量(二)

目录 一、算法概述二、代码示例三、结果示例接上篇 PCL 点云模型的体积测量、面积测量(一) 一、算法概述 适用:通过VTK进行切片法,实现点云模型的体积测量、面积测量。 思路:1. 首先,使用vtk中的vtkPlane类来设置切割平面;2. 再使用vtk中的vtkCutter类切割vtkPolyData;…

多线程第一课---

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

51单片机串行口相关知识

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

数据库查询唯一值的两种方式和遍历原理

数据库的遍历 数据库遍历通常是通过执行查询语句来实现的,这些查询语句使用 SELECT 关键字来检索表中的数据。遍历的具体实现取决于查询的条件、排序方式和是否使用了索引等因素。 以下是一个简单的 SQL 查询语句,用于遍历数据库中的数据: …

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

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

ubuntu 2020 配置root用户直接登录

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

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

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

pythonMatplotlib四:Matplotlib设置图的样式和颜色

1.设置线条样式: import matplotlib.pyplot as plt# 准备数据 x [1, 2, 3, 4, 5] y [2, 4, 6, 8, 10]# 创建折线图并设置线条样式 plt.plot(x, y, linestyle--, linewidth2)# 添加标题和标签 plt.title("折线图示例") plt.xlabel("X轴") plt…

文件属性stat

stat/fstat 获取文件属性#include <sys/stat.h> int stat(const char* path,struct stat* buf); //path : 路径 , buf : 属性&#xff1b;int fstat(int fd,struct stat* buf); //fd : 文件描述符 , buf : 属性&#xff1b;struct stat {dev_t st_dev; /* ID of…

C++ 类的内存分布

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

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

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

vue-video-player播放hls视频流

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

Window端口占用处理

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精…