强化学习p4-Actor-Critic

news2024/9/22 23:31:42

策略网络和价值网络的架构

我们知道状态价值函数 V π ( s ) = ∑ a π ( a ∣ s ) ⋅ Q π ( s , a ) V_\pi(s)=\sum_a\pi(a|s)\cdot Q_\pi(s,a) Vπ(s)=aπ(as)Qπ(s,a),在策略学习中,我们用神经网络去近似 π \pi π函数,得到策略网络 π ( a , s ; θ ) \pi(a,s;\theta) π(a,s;θ)。但我们发现要更新训练策略网络时,需要动作价值 q t q_t qt我们用另一个神经网络去近似动作价值函数 Q π Q_\pi Qπ,得到价值网络 q ( s , a ; w ) q(s,a;w) q(s,a;w),其中 w w w表示神经网络中可训练的参数。有了以上两个神经网络,我们就可以近似出状态价值函数
V π ( s ) = ∑ a π ( a ∣ s ) ⋅ Q π ( s , a ) ≈ ∑ a π ( a ∣ s ; θ ) ⋅ q ( s , a ; w ) V_\pi(s)=\sum_a\pi(a|s)\cdot Q_\pi(s,a) \approx \sum_a\pi(a|s;\theta) \cdot q(s,a;w) Vπ(s)=aπ(as)Qπ(s,a)aπ(as;θ)q(s,a;w)
V π ( s ; θ , w ) = ∑ a π ( a ∣ s ; θ ) ⋅ q ( s , a ; w ) V_\pi(s;\theta,w)=\sum_a\pi(a|s;\theta) \cdot q(s,a;w) Vπ(s;θ,w)=aπ(as;θ)q(s,a;w)
而其中的策略网络 π ( a ∣ s ; θ ) \pi(a|s;\theta) π(as;θ)被称为 Actor(演员),价值网络 q ( s , a ; w ) q(s,a;w) q(s,a;w)被称为 Critic(评委)。

在这里插入图片描述
价值网络的输入是状态s,输出是每个动作的价值。动作空间A中有多少种动作,那么价值网络的输出就是多少维的向量,向量每个元素对应一个动作。

训练两个神经网络

训练策略网络(Actor)
训练策略网络的基本想法,根据当前状态s,自己的动作a和评委的打分 q ^ = q ( s , a ; w ) \widehat{q}=q(s,a;w) q =q(s,a;w)计算近似策略梯度,然后更新自己的参数 θ \theta θ

训练价值网络(Critic)
我们发现训练策略网络(演员)的方法只是让演员更迎合评委的喜好而已。 因此,评委的水平也很重要,只有当评委的打分 q ^ \widehat{q} q 真正反映出动作价值 Q π Q_\pi Qπ演员的水平才能真正提高。
可以用 SARSA 算法更新w,提高评委的水平。每次从环境中观测到一个奖励r,把 r看做是真相,用r来校准评委的打分。
在这里插入图片描述

训练流程

  1. 观测到当前状态 s t s_t st,根据策略网络做决策: a t ∼ π ( . ∣ s t ; θ ) a_t \sim \pi(.|s_t;\theta) atπ(.∣st;θ) ,并让智能体执行动作 a t a_t at
  2. 从环境中观测到奖励 r t r_t rt和新的状态 s t + 1 s_{t+1} st+1
  3. 根据策略网络做决策: a t + 1 ∼ π ( . ∣ s t ; θ ) a_{t+1} \sim \pi(.|s_t;\theta) at+1π(.∣st;θ),但不让智能体执行动作 a t + 1 a_{t+1} at+1
  4. 让价值网络打分: q t ^ = q ( s t , a t , w ) \widehat{q_t} = q(s_t,a_t,w) qt =q(st,at,w) q t + 1 ^ = q ( s t + 1 , a t + 1 , w ) \widehat{q_{t+1}} = q(s_{t+1},a_{t+1},w) qt+1 =q(st+1,at+1,w)
  5. 计算 TD 目标和 TD 误差: y t ^ = r t + γ ⋅ q t + 1 ^ \widehat{y_t} = r_t+\gamma \cdot \widehat{q_{t+1}} yt =rt+γqt+1 L t ( w ) = 1 2 [ q t ^ − y t ^ ] 2 L_t(w) =\frac{1}{2} [\widehat{q_t} - \widehat{y_t}]^2 Lt(w)=21[qt yt ]2
  6. 更新价值网络 q q q w = w − α ⋅ L t ⋅ ∂ L t ( w ) ∂ w ∣ w = w t w = w - \alpha \cdot L_t \cdot \frac{\partial L_t(w)}{\partial w}|_{w=w_t} w=wαLtwLt(w)w=wt
  7. 更新策略网络 π \pi π θ = θ + β ⋅ q t ^ ⋅ ∂ l o g π ( a ∣ s ; θ ) ∂ θ \theta = \theta + \beta \cdot \widehat{q_t} \cdot \frac{\partial log\pi(a|s;\theta)}{\partial \theta} θ=θ+βqt θlogπ(as;θ)

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

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

相关文章

模糊PID(重心法解模糊梯形图FC)

模糊PID的模糊化请参看下面的博客文章: 博途PLC模糊PID三角隶属度函数指令(含Matlab仿真)_plc 模糊pid_RXXW_Dor的博客-CSDN博客三角隶属度函数FC,我们采用兼容C99标准的函数返回值写法,在FB里调用会更加直观,下面给大家具体讲解代码。常规写法的隶属度函数FC可以参看下…

分享一个提高运维效率的 Python 脚本

哈喽大家好我是咸鱼,今天给大家分享一个能够提升运维效率的 python 脚本 咸鱼平常在工作当中通常会接触到下面类似的场景: 容灾切换的时候批量对机器上的配置文件内容进行修改替换对机器批量替换某个文件中的字段 对于 Linux 机器,咸鱼可以…

Fiddler 抓包工具使用 - 手摸手教你

Fiddler简介 Fiddler 是一款免费、灵活、操作简单、功能强大的 HTTP 代理工具,是目前最常用的 HTTP 抓包工具之一。可以抓取所有的 HTTP/HTTPS 包、过滤会话、分析请求详细内容、伪造客户端请求、篡改服务器响应、重定向、网络限速、断点调试等功能。 Fiddler工作…

2023什么蓝牙耳机好?经销商盘点新手必入蓝牙耳机品牌

蓝牙耳机是除手机外我们使用频率最高的数码产品,我做蓝牙耳机经销商五年来,对各个品牌都有深入了解。近期看到很多新手们咨询什么蓝牙耳机好,我给大家盘点一下新手必看的五大蓝牙耳机品牌。 1.JEET Air 2蓝牙耳机 推荐理由:专为舒…

和AI聊天

AI产品工具目录:AI产品目录 Prompt 在和AI聊天时,你得表明你需要啥,并且描述的越精确,AI回答的就越贴近你的预期,简单的对话,可以自己尝试,但是如果想做应用级别的就得学习这种聊天技术&#…

Guitar Pro8.1最新中文版自动扒谱编写吉他谱 新功能讲解

Guitar Pro8是一款非常受欢迎的音乐制作软件,它可以帮助用户创建和编辑各种音乐曲谱。从其诞生以来就送专门为了编写吉他谱而研发迭代的。 尽管这款软件可能已经成为全球最受欢迎的吉他打谱软件,在编写吉他六线谱和乐队总谱中始终处于行业领先地位&…

测试人的内卷,性能测试入门到实践该如何做?突破内卷...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试如何入门…

什么是边缘计算盒子?要看哪些参数

一、什么是边缘计算盒子 边缘计算盒子(Edge Computing Box)是一种用于边缘计算的设备,通常包括计算、存储、网络和安全等功能。它通常是一台小型的计算机,可以放置在物联网设备、传感器或其他边缘设备附近,用于处理和…

北峰通信,用专业打造“全方位、立体化”应急通信保障体系

最近热映的电影《惊天救援》里,杜江饰演的消防员韩凯,在一次化工园区发生爆炸后,他作为消防救援站里的通信员,第一时间奔赴重灾区,及时将第一现场的情况传到了后方指挥部。 众所周知,通讯系统是生命线系统的…

linux 定时器

Linux 系统实现底半部的机制主要有tasklet,工作队列和软中断。 tasklet 和工作队列都是调度中断底半部的良好机制,tasklet 基于软中断实现。 内核定时器也依靠软中断实现;内核中的延时是忙等待或者睡眠等待,为了充分利用CPU资源&#xff0c…

还在找ChatGPT的国内镜像?这些都很不稳定,试试这两个

ChatGPT 因为账号限制的原因,注册的流程比较复杂,特别是需要国外的手机号进行接收验证码,这就难坏了很多国内的用户。 为了能用上ChatGPT 很多人免费的搭建了一些国内能够使用的ChatGPT 。这些网址不用魔法就能够使用ChatGPT ,非…

基于docker的apisix网关的java插件开发

基于docker的apisix网关的java插件开发 1 创建java插件项目1.1 从github上获取demo1.2 改造demo 2 快速部署2.1 重新制作apisix镜像2.2 修改/apisix-docker/example/apisix_conf/config.yaml2.3 修改/apisix-docker/example/docker-compose.yml2.4 重新启动apisix网关 3 apisix…

网络基础学习:osi七层模型

osi七层模型 什么是OSI,什么是ISO?为什么ISO要提出OSI网络七层模型?OSI七层的划分以及具体内容第七层 应用层第六层 表示层第五层 会话层第四层 传输层第三层 网络层第二层 数据链路层第一层 物理层 每一层与设备的对应关系 什么是OSI,什么是…

大模型混战,最先实现“智慧涌现”的会是谁?

作者 | 曾响铃 文 | 响铃说 几秒钟写出了一篇欢迎词; 小说人物乱入现实,快速创作不重样的故事; 鼠标一点,一封英文工作沟通邮件撰写完成; 准确解出数学应用题,还给出解题步骤; 甚至还能理…

【微控制器】16KB R5F102AAASP、R7FA2L1A93CFL 128KB和R7FA2E1A73CFJ 64KB 嵌入式技术资料

R5F102AAASP RL78 16位微控制器具有超低功耗、增强性能、高集成度和各种强大的外设功能。得益于以上特性,RL78 MCU非常适合用于各种应用,包括电池供电设备和家用应用。 RL78微控制器MCU系列包括通用和专用器件。这些MCU可为系统设计人员提供高级省电特性…

实验五 Java多线程程序设计

实验目的 掌握Runnable接口实现多线程的方法掌握Thread类实现多线程的用法掌握Java语言中多线程编程的基本方法 实验内容 线程接力(45分) 编写一个应用程序,除了主线程外,还有三个线程:first、second和third。firs…

MySQL基础(二十四)索引的数据结构

1 为什么使用索引 顺序查询和数据使用二叉树结构再进行查询,如图: 2 索引及其优缺点 2.1 索引概述 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 **索引的本质:**索引是数据结构。你…

第九章 使用Vsftpd服务传输文件

文章目录 第九章 使用Vsftpd服务传输文件一、文件传输协议1、FTP介绍2、FTP工作模式 二、Vsftpd服务程序1、安装Vsftpd服务程序2、防火墙配置3、过滤注释信息并通过重定向符写回原始的主配置文件4、Vsftpd服务程序常用的参数以及作用5、匿名访问模式(1)、…

【自己更换模型】如何用 Serverless 一键部署 Stable Diffusion?

作者:寒斜 上一篇讲了如何使用 Serverless Devs 和函数计算快速体验部署 Stable Diffusion,本篇继续聊聊如何解决动态模型加载的问题,从玩起来到用起来。 思路 其实很简单, 我们只需要将镜像里面的动态路径映射到 NAS [ 1] 文件…

为什么调度也需要“血缘分析”和“影响分析”?

摘要:数据治理中经常要遇表或者字段级“血缘分析”和“影响分析”,但是真正在数据ETL调度操作过程中使用影响和血缘分析频繁,看白鲸开源的WhaleStudio如何解决这个难题。 提到“血缘分析”和“影响分析”,普通开发者第一印象就是数…