Policy Gradient策略梯度算法详解

这篇具有很好参考价值的文章主要介绍了Policy Gradient策略梯度算法详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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. 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)算法文章来源地址https://www.toymoban.com/news/detail-731800.html

到了这里,关于Policy Gradient策略梯度算法详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 强化学习DDPG:Deep Deterministic Policy Gradient解读

    DDPG方法相比于传统的PG算法,主要有三点改进: A. off-policy策略 传统PG算法一般是采用on-policy方法,其将整体强化学习过程分为多个epoch,在每个epoch完成一次policy模型和value模型更新,同时在每轮epoch都需要根据决策模型重新采样得到该轮的训练样本。 但当同环境交互代价比

    2024年02月09日
    浏览(59)
  • Proximal Policy Optimization (PPO) 算法理解:从策略梯度开始

    近端策略优化(PPO)算法是OpenAI在2017提出的一种强化学习算法,被认为是目前强化学习领域的SOTA方法,也是适用性最广的算法之一。本文将从PPO算法的基础入手,理解从传统策略梯度算法(例如REIFORCE算法)、自然策略梯度算法、信赖域策略优化算法(TRPO)直到PPO算法的演

    2023年04月26日
    浏览(82)
  • 强化学习策略梯度推导

    本文主角: ∇ θ J ( θ ) ∝ ∑ s ∈ S μ π θ ( s ) ∑ a ∈ A Q π θ ( s , a ) ∇ θ π θ ( a ∣ s ) nabla_{theta}J(theta) propto sum_{s in mathcal{S}} mu^{pi_{theta}}(s) sum_{a in mathcal{A}} Q^{pi_{theta}}(s, a) nabla_{theta}pi_{theta}(a|s) ∇ θ ​ J ( θ ) ∝ ∑ s ∈ S ​ μ π θ ​ ( s ) ∑ a ∈ A ​ Q π θ

    2024年02月22日
    浏览(46)
  • 强化学习——策略梯度之Reinforce

    1、策略梯度介绍 相比与DQN,策略梯度方法的区别主要在于,我们对于在某个状态下所采取的动作,并不由一个神经网络来决定,而是由一个策略函数来给出,而这个策略函数的目的,就是使得最终的奖励的累加和最大,这也是训练目标,所以训练会围绕策略函数的梯度来进

    2024年02月14日
    浏览(41)
  • 集成学习算法梯度提升(gradient boosting)的直观看法

    reference: Intuitive Ensemble Learning Guide with Gradient Boosting 梯度提升算法的核心思想:使用前一个模型的残差作为下一个模型的目标。 使用单个机器学习模型可能并不总是适合数据。优化其参数也可能无济于事。一种解决方案是将多个模型组合在一起以拟合数据。本教程以梯度提

    2023年04月09日
    浏览(55)
  • 飞控学习笔记-梯度下降算法(gradient descent algorithm)

    笔记来源于文章:An_efficient_orientation_filter_for_inertial_and_inertial_magnetic_sensor_arrays 共轭: 四元数叉乘: 式(6)为方向余弦矩阵 欧拉角等式: w:角速度

    2024年02月16日
    浏览(39)
  • 机器学习集成学习——GBDT(Gradient Boosting Decision Tree 梯度提升决策树)算法

    机器学习神经网络——Adaboost分离器算法 机器学习之SVM分类器介绍——核函数、SVM分类器的使用 机器学习的一些常见算法介绍【线性回归,岭回归,套索回归,弹性网络】 文章目录 系列文章目录 前言 一、GBDT(Gradient Boosting Decision Tree) 梯度提升决策树简介 1.1、集成学习 1.2、

    2024年02月09日
    浏览(50)
  • ChatGPT 使用 强化学习:Proximal Policy Optimization算法(详细图解)

    ChatGPT 使用 强化学习:Proximal Policy Optimization算法 强化学习中的PPO(Proximal Policy Optimization)算法是一种高效的策略优化方法,它对于许多任务来说具有很好的性能。PPO的核心思想是限制策略更新的幅度,以实现更稳定的训练过程。接下来,我将分步骤向您介绍PPO算法。 首先,

    2023年04月10日
    浏览(33)
  • 梯度下降算法(Gradient descent)

         首先,我们需要明确梯度下降就是求一个函数的最小值,对应的梯度上升就是求函数最大值。简而言之: 梯度下降的目的就是求函数的极小值点, 例如在最小化损失函数或是线性回归学习中都要用到梯度 下降算法。       ##梯度下降算法作为很多算法的一个关键环节

    2024年01月16日
    浏览(50)
  • [机器学习] 1. 梯度下降 Gradient Descent 与随机梯度下降 Stochastic Gradient Descent

    ML Theory 太魔怔了!!!!! 从微积分课上我们学到 对一个 (mathscr C^2) 函数,其二阶泰勒展开的皮亚诺余项形式 [f(bm w\\\') = f(bm w) + langle nabla f(bm w), bm w\\\' - bm wrangle + o(|bm w\\\' - bm w|)] 这说明只要 (bm w\\\') 和 (bm w) 挨得足够接近,我们就可以用 (f(bm w) + langle nabla f(

    2024年02月08日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包