Policy Gradient策略梯度算法详解

news2025/1/18 11:53:53

1. 基本思想

Policy Gradient策略梯度(PG),是一种基于策略的强化学习算法,不少帖子会讲到从基于值的算法(Q-learning/DQN/Saras)到基于策略的算法难以理解,我的理解是两者是完全两套思路,在学习一种的时候先不要考虑另一种,更容易接受算法基本思想,了解了算法原理推导过程之后再比较两者不同之处那么更容易理解了

策略执行
Policy Gradient算法是学习策略概率密度函数 π ( a ∣ s ) \pi(a|s) π(as),它表示当前状态 s s s下执行动作 a a a的概率,策略执行的时候根据 π ( a ∣ s ) \pi(a|s) π(as)抽样一个动作 a a a,这里容易混淆的地方是,抽样得到的动作 a a a不一定是概率最大的,某一次抽样的结果是随机的,随机性服从的是 π ( a ∣ s ) \pi(a|s) π(as)策略概率密度

这里回顾基于值的算法(Q-learning/DQN/Saras)学习动作价值函数 Q ( s , a ) Q(s,a) Q(s,a),策略执行的时候一般采用epsilon-greedy策略,也就是选择最大 Q Q Q值对应的动作,是不是理解了Q-learning和Policy Gradient的一个区别

策略学习
Policy Gradient算法的思想是先将策略表示成一个和奖励有关的连续函数,然后用连续函数的优化方法去寻找最优的策略,优化目标是最大化连续函数,最常用的是优化方法是梯度上升法(与最小化loss的梯度下降相对)。

巧妙之处在于,它利用reward奖励直接对选择动作的可能性进行增强和减弱,好的动作会被增加下一次被选中的概率,不好的动作会被减弱下次被选中的概率。

这是Policy Gradient和Q-learning算法的又一次区别,Q-learning算法每步都可以更新Q值,更新是基于梯度下降的, 它的loss是TD Target,也就是当前状态下执行动作的Q值(完全是估计的),与假设再执行一步之后Q值(一部分是真实观测)的差值。

Policy Gradient的目标函数有以下三种情况
(1)最简单的优化目标就是初始状态收获的期望
(2)但是有的问题是没有明确的初始状态的,那么我们的优化目标可以定义平均价值
(3)或者定义为每一时间步的平均奖励

2. 算法动机

已经存在Q-learning/DQN/Saras这样基于值的好用的算法,为什么需要Policy Gradient呢?基于值的算法不能处理连续动作,对于高维离散动作,Q-learning更新每个值也需要大量的时间,是不可行的

Policy Gradient算法的优势和劣势总结如下

优势:

  • 连续的动作空间(或者高维空间)中更加高效;
  • 可以实现随机化的策略;
  • 某种情况下,价值函数可能比较难以计算,而策略函数较容易。

劣势:

  • 通常收敛到局部最优而非全局最优
  • 评估一个策略通常低效(这个过程可能慢,但是具有更高的可变性,其中也会出现很多并不有效的尝试,而且方差高)

3. 原理伪代码及数学推导

Policy Gradient算法原理伪代码如下,采用的目标函数是上面讲到的第(1)种形式——最简单的优化目标就是初始状态收获的期望
图1

图1. REINFORCE算法流程
伪代码Policy Gradient算法学习策略函数$\pi(a|s)$,它可以是神经网络,称之为策略网络,网络参数是$\theta$,策略函数记作$\pi(a|s, \theta)$

接下来推导伪代码中的 log ⁡ π θ ( s t , a t ) \log\pi_\theta(s_t, a_t) logπθ(st,at)是如何得来的

首先,将状态价值函数 V V V写成动作价值函数 Q Q Q关于动作 A A A的期望,再对状态价值函数对S做积分得到目标函数 J ( θ ) = E s [ V ( S ; θ ) ] J(\boldsymbol{\theta})=\mathbb{E_s}[V(S;\boldsymbol{\theta})] J(θ)=Es[V(S;θ)],可以理解成上述提到的第(2)种形式,此时目标函数只和策略网络参数 θ \boldsymbol{\theta} θ有关

在这里插入图片描述

训练策略网络采用的是梯度上升算法,下面推导出状态价值函数的导数 ∂ V ( s ; θ ) ∂ θ \frac{\partial V(s;\boldsymbol{\theta})}{\partial \boldsymbol{\theta}} θV(s;θ)策略梯度
在这里插入图片描述

下面推导策略梯度计算方法,Form1适用于离散动作,Form2适用于连续动作
在这里插入图片描述
在这里插入图片描述

这样得到了策略梯度的两种形式,如下面所示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后,Policy Gradient算法流程,它和图1流程的区别在于,图1采用REINFORCE算法估计动作价值Q
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 参考资料

这里分享条理非常清晰的两份讲解
https://zhuanlan.zhihu.com/p/165439436
https://blog.csdn.net/qq_30615903/article/details/80747380

另外一份博客讲解着重列举示意示例,有助于形象化理解
https://zhuanlan.zhihu.com/p/110881517

大神老师的讲解

  • 王树森课程https://www.bilibili.com/video/BV12o4y197US/?p=3&vd_source=1565223f5f03f44f5674538ab582448c
  • 莫烦Python

5. 小预告

下一份博客分享将会介绍Policy Gradient算法操作流程中,另一种估计动作价值函数 Q Q Q的方法,也就是用Actor网络估计,动作网络和策略网络同时使用的方法称之为Actor-Critic(AC)算法

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

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

相关文章

S32K144低功耗休眠与唤醒实践总结

在做车载项目时,模块在常供电时需要维系随时可以被唤醒工作的状态,并且静态电流需要在3mA以内,当然在JTT1163标准中要求的是5mA以内。 目标明确了,在模块休眠时需要关闭一切不必要的资源消耗,只保留模块被唤醒的部分功…

K8S中master节点部署Pod处于Pending状态

查询一下pod信息: kubectl get pods -n kubernetes-dashboard根据name查看详细信息: kubectl describe pod dashboard-metrics-scraper-5b59d4bc6b-rxgqb -n kubernetes-dashboard这一句提示: Warning FailedScheduling 7s (x21464 ov…

Java进阶-查找算法

常见的七种查找算法: 1. 基本查找 ​ 也叫做顺序查找 ​ 说明:顺序查找适合于存储结构为数组或者链表。 基本思想:顺序查找也称为线形查找,属于无序查找算法。从数据结构线的一端开始,顺序扫描,依次将遍…

2023年5月北京/南京/西安/深圳DAMA-CDGA/CDGP数据治理认证报名

6月18日DAMA-CDGA/CDGP数据治理认证考试开放报名中! 考试开放地区:北京、上海、广州、深圳、长沙、呼和浩特、杭州、南京、济南、成都、西安。其他地区凑人数中… DAMA-CDGA/CDGP数据治理认证班进行中,报名从速! DAMA认证为数据管…

ARM-处理器模式(二)

文章目录 ARM 处理器模式工作模式模式切换内核寄存器R13_modeR14_modePC 各个模式对应的内核寄存器模式切换代码实现使用 mrs/msr 指令使用 cps 指令 ARM 处理器模式 ARMv7-a 处理器共有 9 种工作模式 工作模式 User:用户模式,非特权模式,大…

如果你想申请国家级高新技术企业

你必须首先满足国家支持的八大高新技术领域: 一、电子信息 二、生物学与新医学 三、航空航天 四、新材料 五、高科技服务业 六、新能源与节能 七。资源与环境 八、先进制造和自动化 如果您满足这八个领域中的一个,您就有资格申请高新技术企业。 …

有了 IP 地址,为什么还要用 MAC 地址?

MAC地址等价于快递包裹上的收件人姓名。 MAC地址更多是用于确认对方信息而存在的。就如同快递跨越几个城市来到你面前,快递员需要和你确认一下收件人是否正确,才会把包裹交给你一样。 IP66在线查IP地址位置:https://www.ip66.net/?utm-sour…

Bean基础配置?实例化方式?生命周期?

文章目录 1 bean基础配置1.1 bean基础配置(id与class) 1 bean基础配置1.1 bean基础配置(id与class)1.2 bean的name属性1.2 bean的name属性步骤1:配置别名步骤2: 根据名称容器中获取bean对象步骤3: 运行程序 1.3 bean作用范围scope配置(单例/非单例)1.3.1 验证IOC容器…

案例8:Java交易商城网站设计与实现开题报告

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

如何判断自己是否适合做项目管理?

如何转做项目管理?如何判断自己是否适合做项目管理?我们可以从项目管理的思维、能力、工具、书籍阅读四个方面入手—— 1.项目管理的思维 (1)系统思考 项目管理需要从一个系统的角度来看待问题,将复杂的项目分解为小…

CAD功能库CAD DLL v15 2023最新上线!改进3D格式文件

CAD DLL是一个为开发者打造的新版本CAD库,可在支持动态链接库技术的语言中添加CAD功能到应用程序中。 很高兴与大家分享,CAD Dll迎来了久违的更新,更新至v15,3D改进,还改进了 DWG 和 DXF 格式的导入,除此之…

商场地图怎么画最简单?商场导视图怎么做?

商场购物中心超大的经营规模能为广大顾客提供购物选择的同时,也面临着许多问题:购物体验差,顾客到店率低。以及数据缺失,无法为商家做营销决策提供依据等等,那么,如何快速提升商场店铺运营效果,…

指定日本|在读博士生获CSC资助赴日本全球环境战略研究所联合培养

R同学的学术背景较弱,虽参与过导师的项目,但自己没有相关文章发表。拟申请CSC联培项目,研究方向为农业经济可持续发展,指定日本并希望合作导师的研究与此相关联。最终我们用日本全球环境战略研究所(IGES)的…

关于多维图形在2D平面投影的个人理解

网上有很多关于多维空间的描述,这里分享一下我的个人理解 假设在二维空间中有两个图形,三角形、四边形,画面如下 以如下规律在三维空间展开 对于三角形,在三维空间中添加一点,和其连接,使得每个面都为三角…

盘点国产BI软件中,那些电商数据分析功能

老牌国产BI软件基本都是适用于所有行业,会为各行各业的提供智能数据可视化分析功能板块,那么,老牌国产BI软件之一的奥威BI软件又为电商数据分析提供了哪些功能板块,效果怎样? 1、提供标准化跨境电商分析方案 这套跨境…

高通Android 11 audio:音频服务创建以及播放的流程

1、音频服务初始化流程 当前版本:高通 Android 11 大致的创建流程如下: 经过上面的流程系统音频服务已经启动处于待命状态,如果有应用需要播放则会通过服务最终选择合适的硬件将声音播出,接下来按照上面的流程进行进一步的细分。 1.1 开机启动音频服务 音频服务在frame…

110. 平衡二叉树

110. 平衡二叉树 C代码:DFS int dfs (struct TreeNode* root) {if (NULL root) {return 0;}int leftDepth dfs(root->left);int rightDepth dfs(root->right);if (fabs(leftDepth - rightDepth) > 1 || leftDepth -1 || rightDepth -1) {return -1;}…

云端炼丹,算力白嫖,基于云端GPU(Colab)使用So-vits库制作AI特朗普演唱《国际歌》

人工智能AI技术早已深入到人们生活的每一个角落,君不见AI孙燕姿的歌声此起彼伏,不绝于耳,但并不是每个人都拥有一块N卡,没有GPU的日子总是不好过的,但是没关系,山人有妙计,本次我们基于Google的…

程序设计进阶模拟考试选择判断

选择 1 若有以下说明和语句 int c[4][5],(p)[5]; pC; 能够正确引用c数组元素的是 A、 p 1 B、(p3) C、*(p1)3 D、 *(p[0]2) . 题意分析 1.声明了一个二维数组 c,其中有四个一维数组,每个一维数组包含五个整数。 2.在C语言中,(*p)[5] 表示一个…

加速信创生态建设布局,亿美软通实现与达梦数据、东方通兼容互认

近日,亿美软通自主研发的“亿美软通融合通信平台(EUMP)”分别与达梦数据库管理系统和东方通软件完成兼容性认证测试,并签署产品兼容互认证明。经多方测试表明,亿美软通融合通信平台与达梦数据库管理系统V8、东方通分布式数据缓存中…