Deterministic Policy Gradient Algorithms

2023-11-02 10:50

本文主要是介绍Deterministic Policy Gradient Algorithms,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文研究具有连续动作的确定性策略梯度算法。确定性策略梯度有一种特别吸引人的形式:它是行动-价值函数的期望梯度。这种简单的形式意味着确定性策略梯度的估计比一般的随机政策梯度的估计要有效得多。为了确保充分的探索,我们引入了一种非策略行为-批评算法,该算法从探索行为策略中学习确定的目标策略。我们证明了确定性策略梯度算法在高维行为空间中可以显著优于随机算法。

背景:

1)策略梯度算法通常通过对该随机策略进行抽样,并向更大的累积回报方向调整策略参数。本文考虑确定性策略a = μ θ(s)。

2)使用确定性策略梯度推导出一种off-policy actor - critic算法,该算法使用可微函数逼近器估计动作价值函数,然后沿着近似动作价值梯度的方向更新策略参数。

3)此外,该算法不需要比之前的方法更多的计算:每次更新的计算成本与动作维度和策略参数数量是线性的。

3. Gradients of Deterministic Policies

 通过应用链式法则,我们可以看到策略改进可以分解为动作值相对于动作的梯度,以及策略相对于策略参数的梯度

 

按照惯例,∇θµθ(s)是一个雅可比矩阵,其中每一列是策略的第一个动作维度相对于策略参数θ的梯度∇θ[µθ(s)]d。

 3.2. Deterministic Policy Gradient Theorem

 

 4. Deterministic Actor-Critic Algorithms

我们现在使用确定性策略梯度定理来推导on-policy and off-policy actor-critic algorithms。我们从最简单的例子开始——policy 更新,使用一个简单的Sarsa批评家——以便尽可能清楚地说明想法。然后考虑policy 外的情况,这次使用一个简单的q学习评论器来说明关键思想。这些简单的算法在实践中可能存在收敛性问题,这一方面是由于函数逼近器引入的偏差,另一方面是由于非策略学习引起的不稳定性。然后转向使用兼容函数逼近和梯度时间差分学习的更原则性的方法。

4.1. On-Policy Deterministic Actor-Critic 

批评者对行为价值函数进行估计,而行动者则提升行为价值函数的梯度。具体而言,行动者通过方程9的随机梯度上升来调整确定性策略µθ(s)的参数θ 

 例如,在下面的确定性行动者-批评者算法中,批评者使用Sarsa更新来估计行动价值函数(Sutton and Barto, 1998),

 4.2. Off-Policy Deterministic Actor-Critic

我们现在考虑从由任意随机行为策略π(s, a)生成的轨迹中学习确定的目标策略μ θ(s)的off-policy 。像以前一样,我们将性能目标修改为目标策略的值函数,在行为策略的状态分布上进行平均

 

 

我们注意到,stochastic off-policy actor-critic algorithms通常对行为者和评价者都使用重要性采样(Degris等人,2012b)。然而,由于确定性策略梯度消除了对动作的积分,我们可以避免对actor进行重要性采样;通过使用Qlearning,我们可以避免在评价器中进行重要性采样 

 

 

 7. Conclusion

我们提出了一个确定性策略梯度算法的框架。这些梯度可以比随机对应的梯度更有效地估计,避免了行动空间上有问题的积分。在实践中,确定性的actor-critic在具有50个连续动作维度的bandit中明显优于随机对应的几个数量级,并解决了具有20个连续动作维度和50个状态维度的挑战性强化学习问题。

这篇关于Deterministic Policy Gradient Algorithms的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/330090

相关文章

Nn criterions don’t compute the gradient w.r.t. targets error「pytorch」 (debug笔记)

Nn criterions don’t compute the gradient w.r.t. targets error「pytorch」 ##一、 缘由及解决方法 把这个pytorch-ddpg|github搬到jupyter notebook上运行时,出现错误Nn criterions don’t compute the gradient w.r.t. targets error。注:我用

Study Plan For Algorithms - Part24

1. 包含min函数的栈 定义栈的数据结构,要求在该类型中实现一个 min 函数,能够获取栈的最小元素。在该栈中,调用 min、push 以及 pop 函数的时间复杂度均为 O (1)。 方法: class MinStack:def __init__(self):self.stack = []self.min_stack = [float('inf')]def push(self, x):sel

torch.backends.cudnn.benchmark和torch.use_deterministic_algorithms总结学习记录

经常使用PyTorch框架的应该对于torch.backends.cudnn.benchmark和torch.use_deterministic_algorithms这两个语句并不陌生,在以往开发项目的时候可能专门化花时间去了解过,也可能只是浅尝辄止简单有关注过,正好今天再次遇到了就想着总结梳理一下。 torch.backends.cudnn.benchmark 是 PyTorch 中的一个设置

【CSS渐变】背景中的百分比:深入理解`linear-gradient`,进度条填充

在现代网页设计中,CSS渐变是一种非常流行的视觉效果,它为网页背景或元素添加了深度和动态感。linear-gradient函数是实现线性渐变的关键工具,它允许我们创建从一种颜色平滑过渡到另一种颜色的视觉效果。在本篇博客中,我们将深入探讨linear-gradient函数中的百分比值,特别是像#C3002F 50%, #e8e8e8 0这样的用法,以及它们如何影响渐变效果。 什么是linear-g

第十五章 WS-Policy 配置类详细信息 - 配置 XData 块的详细信息(二)

文章目录 第十五章 WS-Policy 配置类详细信息 - 配置 XData 块的详细信息(二)`<method>``<request>``<response>` 第十五章 WS-Policy 配置类详细信息 - 配置 XData 块的详细信息(二) <method> <method> 元素将策略与父 <service> 元素指定的 Web 服务或客户端内的特定 Web 方法

AI学习指南深度学习篇-随机梯度下降法(Stochastic Gradient Descent,SGD)简介

AI学习指南深度学习篇-随机梯度下降法(Stochastic Gradient Descent,SGD)简介 在深度学习领域,优化算法是至关重要的一部分。其中,随机梯度下降法(Stochastic Gradient Descent,SGD)是最为常用且有效的优化算法之一。本篇将介绍SGD的背景和在深度学习中的重要性,解释SGD相对于传统梯度下降法的优势和适用场景,并提供详细的示例说明。 1.

Study Plan For Algorithms - Part21

1. 二叉树的镜像 输入一个二叉树,输出它的镜像。 方法一: class TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightdef mirrorTree(root):if not root:return Nonetemp, left,

[数字信号处理][Python] numpy.gradient()函数的算法实现

先看实例 import numpy as npsignal = [3,2,1,3,8,10]grad = np.gradient(signal)print(grad) 输出结果是 [-1. -1. 0.5 3.5 3.5 2. ] 这个结果是怎么来的呢? np.gradient 计算信号的数值梯度,也就是信号值的变化率。它使用中心差分法来计算中间点的梯度,并使用前向差分法和后向差分法

General Algorithms - Graph

BFS Red Knights Shortest Path - World CodeSprint 12 - DFS Even TreeRoads and Libraries MST Kruskal MST Really Special Subtree A BFS Red Knight’s Shortest Path - World CodeSprint

强化学习实践(二):Dynamic Programming(Value \ Policy Iteration)

强化学习实践(二):Dynamic Programming(Value \ Policy Iteration) 伪代码Value IterationPolicy IterationTruncated Policy Iteration 代码项目地址 伪代码 具体的理解可以看理论学习篇,以及代码中的注释,以及赵老师原著 Value Iteration Policy Itera