强化学习p3-策略学习
Policy Network (策略网络)
我们无法知道策略函数 π \pi π所以要做函数近似,求一个近似的策略函数
使用策略网络 π ( a ∣ s ; θ ) \pi(a|s;\theta) π(a∣s;θ) 去近似策略函数 π ( a ∣ s ) \pi(a|s) π(a∣s)
∑ a ∈ A π ( a ∣ s ; θ ) = 1 \sum_{a\in A} \pi(a|s;\theta) = 1 ∑a∈Aπ(a∣s;θ)=1
动作空间A的大小是多少,输出向量的维度就是多少。
策略学习的目标函数
状态价值函数(State-value function)
V π ( s t ) = E A [ Q π ( s t , A ) ] = ∑ a π ( a ∣ s t ) ⋅ Q π ( s t , a ) V_\pi(s_t)=E_A[Q_\pi(s_t,A)] = \sum_a\pi(a|s_t)\cdot Q_\pi(s_t,a) Vπ(st)=EA[Qπ(st,A)]=∑aπ(a∣st)⋅Qπ(st,a)
对A求期望,去掉A的影响
用策略网络 π ( a ∣ s t ; θ ) \pi(a|s_t;\theta) π(a∣st;θ) 去近似策略函数 π ( a ∣ s t ) \pi(a|s_t) π(a∣st)
V π ( s t ; θ ) = E A [ Q π ( s t , A ) ] = ∑ a π ( a ∣ s t ; θ ) ⋅ Q π ( s t , a ) V_\pi(s_t;\theta)=E_A[Q_\pi(s_t,A)] = \sum_a\pi(a|s_t;\theta)\cdot Q_\pi(s_t,a) Vπ(st;θ)=EA[Qπ(st,A)]=∑aπ(a∣st;θ)⋅Qπ(st,a)
近似状态价值既依赖于当前状态 s t s_t st,也依赖于策略网络 π \pi π的参数 θ \theta θ
如果一个策略很好,那么状态价值函数的近似 V π ( s ; θ ) V_\pi(s;\theta) Vπ(s;θ)的均值应当很大。因此我们定义目标函数:
J ( θ ) = E S [ V π ( s ; θ ) ] J(\theta)=E_S[V_\pi(s;\theta)] J(θ)=ES[Vπ(s;θ)]
目标函数 J ( θ ) J(\theta) J(θ) 排除了状态 S S S的因素,只依赖于策略网络 π \pi π的参数 θ \theta θ。策略越好,则 J ( θ ) J(\theta) J(θ) 越大,所以策略学习可以被看作是这样一个优化问题:
m a x θ J ( θ ) \mathop{max}_{\theta}J(\theta) maxθJ(θ)
通过学习参数 θ \theta θ ,使得目标函数 J ( θ ) J(\theta) J(θ)
越来越大,也就意味着策略网络越来越好。
使用策略梯度上升更新 θ \theta θ ,使得 J ( θ ) J(\theta) J(θ)增大。
设当前策略网络的参数为 θ \theta θ,做梯度上升更新参数,得到新的参数 θ ′ \theta' θ′, β \beta β为学习率
θ ′ = θ + β ⋅ ∂ V ( s ; θ ) ∂ θ \theta' =\theta+\beta \cdot \frac{\mathrm{\partial}V(s;\theta)}{\mathrm{\partial}\theta} θ′=θ+β⋅∂θ∂V(s;θ)
策略梯度(Policy Gradient)
∂ V ( s ; θ ) ∂ θ \frac{\mathrm{\partial}V(s;\theta)}{\mathrm{\partial}\theta} ∂θ∂V(s;θ)大概推导 不严谨 实际上 Q π Q_\pi Qπ中也有 θ \theta θ要求导
使用策略梯度更新策略网络
算法:
1、在 t t t时刻观测到状态 s t s_t st
2、根据策略网络 π ( . ∣ s t ; θ ) \pi(.|s_t;\theta) π(.∣st;θ)随机抽样一个动作 a t a_t at
3、计算动作价值 q t ≈ Q π ( s t , a t ) q_t \approx Q_\pi(s_t,a_t) qt≈Qπ(st,at)
4、计算策略网络关于参数 θ \theta θ的微分 d θ = ∂ l n π ( a ∣ s ; θ ) ∂ θ ∣ θ = θ t d\theta = \frac{\mathrm{\partial}ln\pi(a|s;\theta)}{\mathrm{\partial}\theta}|_{\theta=\theta_t} dθ=∂θ∂lnπ(a∣s;θ)∣θ=θt
5、计算近似策略梯度 g ( a t , θ t ) = q t , d θ g(a_t,\theta_t)=q_t,d\theta g(at,θt)=qt,dθ
6、更新策略网络: θ t + 1 = θ t + β ⋅ g ( a t , θ t ) \theta_{t+1}=\theta_t+\beta \cdot g(a_t,\theta_t) θt+1=θt+β⋅g(at,θt)
在第 3 步中,怎么计算 q t q_t qt?
在后面章节中,我们用两种方法对 Q π ( s , a ) Q_\pi(s,a) Qπ(s,a) 做近似。
1、REINFORCE 算法
用实际观测的回报 u u u近似 Q π ( s , a ) Q_\pi(s,a) Qπ(s,a)。
2、actor-critic 算法
用神经网络 q ( s , a ; w ) q(s,a;w) q(s,a;w)近似 Q π ( s , a ) Q_\pi(s,a) Qπ(s,a)。
所以想要近似求得 π \pi π函数 还要近似求得 Q π Q_\pi Qπ函数
相关文章:

强化学习p3-策略学习
Policy Network (策略网络) 我们无法知道策略函数 π \pi π所以要做函数近似,求一个近似的策略函数 使用策略网络 π ( a ∣ s ; θ ) \pi(a|s;\theta) π(a∣s;θ) 去近似策略函数 π ( a ∣ s ) \pi(a|s) π(a∣s) ∑ a ∈ A π ( a ∣ s ; θ ) 1 \sum_{a\in …...

初学Verilog语言基础笔记整理(实例点灯代码分析)持续更新~
实例:点灯学习 一、Verilog语法学习 1. 参考文章 刚接触Verilog,作为一个硬件小白,只能尝试着去理解,文章未完…持续更新。 参考博客文章: Verilog语言入门学习(1)Verilog语法【Verilog】一文…...

关于 std::condition_variable
一. std::condition_variable是什么? std::condition_variable 是 C 标准库提供的一个线程同步的工具,用于实现线程间的条件变量等待和通知机制。 条件变量的发生通常与某个共享变量的状态改变相关。 在多线程编程中,条件变量通常和互斥锁…...

可拓展哈希
可拓展哈希 借CMU 15445的ppt截图来说明问题。 我们传统静态hash的过程是hash函数后直接将值存入对应的bucket,但是在可扩展hash中,得查询Directory(左),存入directory指向的bucket(右)。 下面…...

Java 版 spring cloud 工程系统管理 +二次开发 工程项目管理系统源码
工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…...

通过伴随矩阵怎么求逆矩阵
设矩阵A为n阶方阵,其伴随矩阵为Adj(A),则A的逆矩阵为: A⁻ (1/|A|) Adj(A) |A|为A的行列式 Adj(A)为A的伴随矩阵 具体步骤如下: 求出A的行列式|A| 求出A的伴随矩阵 Adj(A) 。伴随矩阵的定义为:对于A的第i行第j列…...

巡检机器人之仪表识别系统
作者主页:爱笑的男孩。 博客简介:分享机器学习、深度学习、python相关内容、日常BUG解决方法及Windows&Linux实践小技巧。 如发现文章有误,麻烦请指出,我会及时去纠正。有其他需要可以私信我或者发我邮箱:zhilong666foxmail.c…...

面试官反感的求职者(下)
上期给大家总结了面试中常见的一些问题,今天就接着上次的话题再给大家说说HR反感的求职者,希望同学们可以自省,避免踩雷。小编从如信银行考试中心了解到的有: 第一、缺乏个性者 这种考生在答题中往往表现得千篇一律,从…...

可视化绘图技巧100篇分析篇(二)-生存曲线(LM曲线)(补充篇)
目录 前言 知识储备 生存分析中的基本概念 生存分析 (survival analysis) 事件 (event)...

【100%通过率 】【华为OD机试python】钟表重合时刻【 2023 Q1考试题 A卷|100分】
华为OD机试- 题目列表 2023Q1 点这里!! 2023华为OD机试-刷题指南 点这里!! ■ 题目描述 钟表是日常生活中不可缺少的时间度量计, 其时针、分针、秒针三者的转动速度满足特定规律(见备注)。 现在输入时刻 time ,请计算出时刻 time 小时和 time+1 小时之间, 时针和分针…...

Java线程池编码示例
第1步:自定义线程实现类 Java中多线程编码时,定义线程类有两种方式: 继承Thread类实现Runnable接口(由于Java的单继承特性,一般推荐使用此方式) public class BizThread implements Runnable {private int …...

如何优化Android 4.x系统设置字体大小
android4.x系统设置字体大小导致应用布局混乱的解决方案 在前几年,Android系统的设置界面还是相对简单的,用户可以通过设置菜单进行各种系统设置,如字体大小、壁纸、铃声等。但是随着用户对系统功能的需求越来越多,Android系统也在…...

Docker安装、Docker基本操作
一、Dokcer安装 1.安装 # 1、yum 包更新到最新,需要几分钟时间(注意:也可以直接跨过) sudo yum update # 2、作用:安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 sudo yum install -y yum-util…...

系统集成项目管理工程师知识点总结
项目经理的五种权利: 职位权力: 来源于管理者在组织中的职位和职权。罚权力: 使用降职、扣薪、惩罚、批评、威胁等负面手段的能力。奖励权力: 给予下属奖励的能力专家权力: 来源于个人的专业技能。参照(号…...

【游戏里的网络同步分析】马里奥制造2 多人模式
前置知识 先说几个游戏设计的术语。 PlayerAgent是玩家控制的网络游戏中的角色形象,也是代表在游戏空间中的玩家,被唯一PlayerController所拥有,被所有用户可观测到。 在马里奥制造2中,PlayerAgent一共有四种:马里奥 …...

SSM框架学习-注解开发第三方bean管理
1. 复习xml配置文件管理第三方bean 在Spring中,可以使用依赖注入(Dependency Injection)来管理和使用第三方Bean。Spring提供了多种方式来进行依赖注入,比如构造函数注入、Setter方法注入、字段注入等。下面以Setter方法注入为例&…...

【数据结构与算法】图——邻接表与邻接矩阵
文章目录 一、图的基本概念二、图的存储结构2.1 邻接矩阵2.2 邻接表2.3 邻接矩阵的实现2.4 邻接表的实现 三、总结 一、图的基本概念 图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E&#…...

网安笔记02 密码学基础
密码学概述 • 1.1、密码学的基本概念 密码编码学 : 密码编制 密码分析学 : 密码破译 密码学 : 研究密码保护 通信手段的科学, 密码编码学密码分析学 密码技术: 把可理解的消息伪装为不可理解的消息,再复原成原消息的科学 概…...

open3d io操作
目录 1. read_image, write_image 2. read_point_cloud, write_point_cloud 3. 深度相机IO操作 4. Mesh文件读取 1. read_image, write_image 读取jpg. png. bmp等文件 image_io.py import open3d as o3dif __name__ "__main__":img_data o3d.data.JuneauIma…...

【Linux】Linux安装Redis(图文解说详细版)
文章目录 前言第一步,下载安装包第二步,上传安装包到/opt下(老规矩了,安装包在opt下)第三步,解压安装包第四步,编译第五步,安装第六步,配置redis第七步,设置开…...

setTimeout不准时,CSS精准实现计时器功能
实际开发过程中,我们会经常遇到,首次进入页面进行相应提示,然后指定时间后自动消失或者前端时钟展示等需求。 按照传统方案,我们可以使用 setTimeout 实现。但其存在:实际延时比设定值更久的情况。 setTimeout 不准时…...

单细胞跨模态分析综述
单细胞技术的最新进展使跨模态和组织位置的细胞高通量分子分析成为可能。单细胞转录组数据现在可以通过染色质可及性、表面蛋白表达、适应性免疫受体库分析和空间信息进行补充。跨模态单细胞数据的可用性越来越高,推动出新的计算方法,以帮助科学家获得生…...

【零基础学机器学习 1】什么是机器学习?
机器学习的社会应用 1. 金融风控 机器学习在金融风控方面的应用非常广泛,可以用于预测借款人的信用风险、欺诈行为等。通过收集大量的历史数据,构建机器学习模型,可以对借款人的信用风险进行预测,从而帮助金融机构降低风险。 2…...

ARM处理器与中断——嵌入式(驱动)软开基础(一)
1 CPU的内部结构? CPU的内部结构大致可以分为: (1)控制单元(指令寄存器、指令译码器、操作控制器)。 (2)运算单元(算术逻辑单元)。 (3)存储单元(专用寄存器和通用寄存器) (4)时钟。 2 CPU跟内存、虚拟内存、硬盘的关系? (1)CPU要调用的程序和数据来自…...

WX小程序 - 2
条件渲染: wx:if "{{ newlist.length 0 }}" wx:else 跳路由:绑定点击事件,执行跳转页面 bindtap data-id"{{ item.id }}" 添加id wx.navigateTo 跳路由并传参, 下一个路由 onLoad生命周期可以获得参数…...

开源之夏2023 | 欢迎申请openEuler Embedded SIG开发任务
关于开源之夏 开源之夏是开源软件供应链点亮计划下的暑期活动,由中科院软件研究所与openEuler社区联合主办,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。 活动联合各大开源社区,针对重要开源软件…...

【异常解决】vim编辑文件时提示 Found a swap file by the name “.start.sh.swp“的解决方案
vim编辑文件时提示 Found a swap file by the name ".start.sh.swp"的解决方案 一、问题描述二、原因说明三、解决方案3.1 方案1 删除即可3.2 方案2 禁止生成swp文件 一、问题描述 vim编辑文件时提示 Found a swap file by the name “.start.sh.swp”,如…...

「企业应用架构」应用架构概述
在信息系统中,应用架构或应用架构是构成企业架构(EA)支柱的几个架构域之一 应用架构描述了业务中使用的应用程序的行为,重点是它们如何相互之间以及如何与用户交互。它关注的是应用程序消费和生成的数据,而不是它们的内…...

ePWM模块(3)
比较模块 CMPA:比较寄存器A,其值与TBCTR值比较,相同时,事件发送到动作模块。 CMPB:比较寄存器B,其值与TBCTR值比较,相同时,事件发送到动作模块。 CMPCTL:控制寄存器(重要) SHDWAFULL(或SHDWBFULL):CMPA(或B)阴影寄存器满标志位 0:未满 1:满了 SHDWAMODE(或…...

【笔试强训选择题】Day11.习题(错题)解析
作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 文章目录…...