策略梯度

article/2025/9/25 10:19:44

Policy Gradient Methods for Reinforcement Learning with Function Approximation(PG)

 

在强化学习的算法中存在两种算法,一个是基于价值函数的算法,另一个是基于策略梯度的算法。为什么要提出策略梯度算法呢?

  1. 基于策略的学习可能会具有更好的收敛性,这是因为基于策略的学习虽然每次只改善一点点,但总是朝着好的方向在改善;而在基于值函数的算法中,价值函数在后期会一直围绕最优价值函数持续小的震荡而不收敛。
  2. 在对于那些拥有高维度或连续状态空间来说,使用基于价值函数的学习在得到价值函数后,制定策略时,需要比较各种行为对应的价值大小。这样如果行为空间维度较高或者是连续的,则从中比较得出一个有最大价值函数的行为这个过程就比较难了,这时候使用基于策略的学习就高效的多。
  3. 基于价值函数的学习通常是学不到随机策略的,使用策略梯度算法可以直接输入转态,得到对应动作或者动作的概率分布。

在PG这篇论文中探讨了RL中函数逼近的另一种方法。我们不是近似一个值函数并用它来计算一个确定性策略,而是直接用一个独立的函数逼近器用它自己的参数来近似一个随机策略。例如,策略可以由一个神经网络来表示,该神经网络的输入是状态的表示,其输出是动作选择概率,其权值是策略参数。让作为策略参数的向量表示,表示策略的最终表现。然后,在策略梯度方法中,策略参数的更新与梯度近似成比例。

与价值函数方法不同,这里θ的微小变化只会导致策略和状态分布的微小变化。定义策略的目标函数存在两种,一种是平均报酬公式,另一种是从初始状态获得的长期回报。

  1. 平均报酬

 

  1. 长期报酬回报

 

       对于上述两种目标函数,梯度均为

       当我们使用函数逼近器fws,a来模拟Qπs,a时,上式可以改写为:

 

Deterministic Policy Gradient Algorithms(DPG)

策略梯度算法广泛应用于具有连续动作空间的强化学习问题。基本思想是代表策略参数概率分布。在某个状态下根据参数向量随机选择行动。策略梯度算法通常是通过对这种随机策略进行抽样,并根据累积收益的增加来调整策略参数。

在这篇文章中,考虑确定性策略为。从实际的角度来看,随机策略梯度与确定性策略梯度存在着重要的区别。在随机的情况下,策略梯度在状态空间和动作空间上积分,而在确定性的情况下,它只在状态空间上积分。因此,计算随机策略梯度可能需要更多的样本,特别是在行动空间有多个维度的情况下。为了学习确定性目标策略(利用确定性策略梯度的效率)。我们利用确定性策略梯度推导出一种离线行为批评算法,该算法使用可微分函数逼近器估计行为价值函数,然后在近似行为价值梯度的方向上更新策略参数。

  1. Stochastic Policy Gradient 理论

评价表现目标方程为:

 

 

根据策略梯度理论(PG),最基本的策略梯度计算方程为如下

 

利用这个方程,可以通过策略梯度来调整参数来以优化最终的表现。但是问题在于还需要估计的值。

  1. Stochastic Actor-Critic 算法

Actor-Critic是基于策略理论的常用框架。Actor会通过计算上述方程来调整策略函数πθs的参数θ。由于真实的动作价值函数 是未知的,我们使用一个参数化的函数近似器来代替,并且让Critic使用策略评估算法来估量它。

由于是 是近似,使用它会造成与真实值的偏差。为了消除偏差,应满足两个条件:

参数w应该最小化均方误差

 

  1. Deterministic Policy Gradient理论

对于确定性策略,定义概率分布以及目标方程:

 

那么确定性策略梯度可以推导出如下:

 

  1. On-Policy Deterministic Actor-Critic

和随机化策略Actor-Critic一样,确定性策略也包含两部分,Critic估计行为价值函数,Actor估计行为价值函数的梯度。Actor根据上面的方程调整的参数,并且用来逼近真实值。例如,Critic使用Sarsa更新来评估动作价值函数:

 

  1. Off-Policy Actor-Critic

我们称已探索过的轨迹为已知策略,未探索过的为目标策略。在off-policy中表现目标方程定义为:目标策略的状态价值函数在已知策略上的状态分布上取平均:

 

对其进行微分即得到off-policy策略梯度:

θJβπθS A ρβsθπθa|sQπs,adads

 

这个近似式去掉了一个依赖动作价值梯度的项

  1. Off-Policy Deterministic Actor-Critic

现在要用off-policy的方法去让智能体通过随机已知策略生成的轨迹学习确定目标策略

定义目标方程以及策略梯度:

同样确定性策略梯度中也丢弃了依赖于动作价值梯度的项:

这里,用一个可微的动作价值函数来代替真实的动作价值函数,需要同时满足两个条件:

 

并且让Critic通过已知策略生成的轨迹来评估它。比如使用Q-learning:

 

Asynchronous Methods for Deep Reinforcement Learning(A3C)

深度强化学习最近被人发现貌似不太稳定,有人提出很多改善的方法,这些方法有很多共同的地方:一个online的agent碰到的观察到的数据序列是非静态的,然后就是,online的RL更新是强烈相关的。通过将agent的数据存储在一个 experience replay 单元中,数据可以从不同的时间步骤上,批处理或者随机采样。这种方法可以降低不平稳性,然后去掉了更新的相关性,但是与此同时,也限制了该方法只能是 off-policy 的 RL 算法。

Experience replay 有如下两个缺点:

1. 每一次交互都会耗费更多的内存和计算;

2. 需要 off-policy 的学习算法从更老的策略中产生的数据上进行更新。

本文中我们提出了一种很不同的流程来做 DRL。不用 experience replay,而是以异步的方式,并行执行多个 agent,在环境中的多个示例当中。这种平行结构可以将 agent的数据“去相关(decorrelates)”到一个更加静态的过程当中去,因为任何给定的时间步骤,并行的agent都会经历不同的状态。这个简单的想法确保了一个更大的范围,基础的 on-policy RL 算法,如:Sarsa,n-step methods,以及 actor-critic 方法,以及 off-policy 算法,如:Q-learning,利用CNN可以更加鲁棒和有效的进行应用。

本文的并行RL结构也提供了一些实际的好处,前人的方法都是基于特定的硬件,如GPUs或者大量分布式结构,本文的算法可以在单机上用多核 CPU 来执行。取得了比 之前基于 GPU 的算法 更好的效果,(A3C)算法的效果更优秀。

 one-step Q-learning 是朝着one-step返回的方向去更新动作值函数。但是利用one-step方法的缺陷在于:得到一个奖励r仅仅直接影响了 得到该奖励的状态动作对的值。其他状态动作对的值仅仅间接的通过更新 来影响。这就使得学习过程缓慢,因为许多更新都需要传播一个奖赏值给相关进行的状态和动作。

 

一种快速的传播奖赏的方法是利用n-step returns。 在n-step Q-learning中,Qs,a是朝向 n-step return 进行更新。这样就使得一个奖赏直接地影响了n个正在进行的状态动作对的值。这也使得给相关 状态动作对的奖赏传播更加有效。

另外就是定义了“优势函数”,即:利用Q值减去状态值,定义为:

       这种方法也可以看做是actor-critic结构,其中,策略π可以看做是actor,bt是critic。

我们在这里介绍A3C算法,其中维持一个策略以及一个估计值函数。就像我们的n步q学习的变体一样,我们的角色-批评家的变体也在前视图中起作用并使用相同的n步返回组合来更新策略和值函数。当迭代步数达到或者到达终止状态时,更新策略和值函数。我们通常使用一个卷积神经网络有一个softmax输出策略和一个线性输出的价值函数,共享所有非输出层参数。

下面简单介绍一下使用n步回报的A3C算法步骤:

(1) 假设全局和线程内部的策略模型参数向量分别为';全局和线程内部的价值模型参数:;设置全局变量

(2) 初始化线程步数计数器

(3)重新设置全局策略模型参数的梯度,设置全局价值模型参数梯度

(4) 同步全局和线程内部的策略模型参数,同步全局和线程内部的价值模型参数

(5)设置,并获得初始状态

(6)在状态通过策略模型选择动作,并执行该动作;

(7) 通过步骤(6)获得对应的奖赏值,并达到新的状态

(8) 更新参数,:

(9) 判断是否为终止状态或者,如果满足上述条件跳转到步骤(6),否则跳出循环,执行步骤(10);

(10) 计算每一次采样的价值:

(11)设置变量

(12)设置变量,如果i不等于,进行下一步,否则跳转到步骤(17);

(13) 设置

(14) 计算积累策略模型参数的梯度:

(15) 计算积累价值模型参数的梯度

(16) 跳转到步骤(12);

(17) 对全局模型θ进行异步更新:

(19) 判断是否大于,如果是则跳出循环,否则跳到步骤(3)。

 

Continuous Control With Deep Reinforcement Learning(DDPG)

虽然DQN算法目前在RL游戏领域表现良好,但是DQN在解决高维观测空间的问题时,只能处理离散的低维动作空间。许多有趣的任务,尤其是身体控制任务,有连续的(实值)和高维的行动空间。DQN不能直接应用于连续域,因为它依赖于找到使动作值函数最大化的动作,而在连续值情况下,每一步都需要迭代优化过程。

我们称之为深度DDPG (Deep DPG)的model-free方法可以为所有人学习竞争策略,我们的任务使用低维观测(例如笛卡尔坐标或关节角度)使用相同的超参数和网络结构。在许多情况下,我们还能够直接从像素中学习良好的策略,再次保持超参数和网络结构不变。

以往的实践证明,如果只使用单个”Q神经网络”的算法,学习过程很不稳定,因为Q网络的参数在频繁梯度更新的同时,又用于计算Q网络和策略网络的梯度。基于此,DDPG分别为策略网络、Q网络各创建两个神经网络拷贝,一个叫做online,一个叫做target:

 

在训练完一个mini-batch的数据之后,通过SGA/SGD算法更新online网络的参数,然后再通过soft update算法更新 target 网络的参数。soft update是一种running average的算法:

       DDPG算法的步骤如下:

 


http://chatgpt.dhexx.cn/article/6iCrV33F.shtml

相关文章

推荐系统中的偏差

推荐系统消偏 推荐系统中的偏差IPW ——逆概率加权DICE ——区分兴趣和偏差建模因果推断 推荐系统中的偏差 预估问题 我们一般会注重两种误差,偏差和方差, 方差与模型泛化能力有关:通常关注模型的复杂度与是否过拟合;偏差则表现为…

特征偏度和异常值处理

(一)机器学习基础 - 偏度、正态化以及 Box-Cox 变换 https://my.oschina.net/mathinside/blog/4942126 对于数据挖掘、机器学习中的很多算法,往往会假设变量服从正态分布。例如,在许多统计技术中,假定误差是正态分布…

推荐系统去偏(Debiased Recommendation)研究进展概述

©作者 | 张景森 学校 | 中国人民大学信息学院硕士 文章来源 | RUC AI Box 引言 推荐系统作为解决信息过载的一种重要手段,已经在不同的应用场景下取得了不错的效果。近些年来关于推荐系统的研究主要集中在如何设计更好的模型来适应用户行为数据,进而…

【综述】推荐系统偏差问题 去偏最新研究进展(Bias and Debias in Recommender System)

文章目录 1. 推荐系统的反馈回路1.1 User -> Data1.2 Data -> Model1.3 Model -> User 2. 推荐系统中的Bias2.1 数据偏差(data bias)2.1.1 选择偏差(Selection Bias)2.1.2 曝光偏差(Exposure Bias)2.1.3 一致性偏差(Conformity Bias)2.1.4 位置偏差(Position Bias) 2.…

数据偏度介绍和处理方法

偏度(skewness)是用来衡量概率分布或数据集中不对称程度的统计量。它描述了数据分布的尾部(tail)在平均值的哪一侧更重或更长。偏度可以帮助我们了解数据的偏斜性质,即数据相对于平均值的分布情况。 有时,正…

【期权系列】基于偏度指数的择时分析

【期权衍生指标系列】基于偏度指数的择时分析 本篇文章是基于研究报告的复现作品,旨在记录个人的学习过程和复现过程中的一些思路。 感谢中信期货研究员前辈的宝贵思路。 一、偏度指数 1.偏度指数简介 偏度是描述数据分布形态的统计量,其描述的是统…

对于偏度的理解

偏度公式如下: 现在想解决如何从图像上解决为正为负的问题,如图所示:? 个人理解:偏度中的偏是针对变量相对于中心点(期望值)距离的一种描述;如果厚尾的话,就说明有很多点…

量化策略研究:股票中的偏度效应

2022年4月份以来,加密货币市场的暴跌强调了市场中性策略的重要性;基于此,有部分Quanter提出了基于加密货币的偏度策略:“Skewness/Lottery Trading Strategy in Cryptocurrencies”。 为此,小编不禁好奇:偏…

Maven安装和配置(详细版)

Maven安装和配置 Maven安装1、安装链接:2、配置环境变量: Maven配置1、修改Maven仓库下载镜像及修改仓库位置:2、在Idea上配置Maven: 测试Maven安装能否安装jar包 Maven安装 1、安装链接: Maven – Download Apache …

Maven 安装/学习入门详解!

Maven安装: Maven 软件的下载 为了使用 Maven 管理工具,我们首先要到官网去下载它的安装软件。通过百度搜索“Maven 点击 Download 链接,就可以直接进入到 Maven 软件的下载页面: 我们当时使用的是 apache-maven-3.5.2 版本&a…

Maven安装(超详解)

2.4.1 下载 下载地址:Maven – Download Apache Maven 在提供的资料中,已经提供了下载好的安装包。如下 : 2.4.2 安装步骤 Maven安装配置步骤: 解压安装 配置仓库 配置Maven环境变量 1、解压 apache-maven-3.6.1-bin.zip&a…

Maven安装教程详解

一、准备工作 1、确定电脑上已经成功安装jdk7.0以上版本 2、win10操作系统 3、maven安装包 下载地址:http://maven.apache.org/download.cgi 二、解压Maven安装包 在上述地址中下载最新的Maven版本,解压到指定目录(此处根据自己的…

Maven安装及配置(附带安装包)

Maven安装及配置 目录 Maven安装及配置 一: 安装包准备: 二: 安装配置 三: Maven 依赖地址更改为阿里镜像 四: idea中配置maven 一: 安装包准备: apache-maven-3.6.3-bin 链接&#xff1…

Maven安装和使用(详细版)

目录 演示版本: 安装 1.下载和解压 2.安装配置 IDEA使用Maven 1.IDEA配置Maven环境 2.新建maven项目 演示版本: maven:apache-maven-3.6.1 IEDA:2021.3 Windows:11 安装 1.下载和解压 1.下载去maven官网下载…

Maven安装与环境配置(Windows)

注意:Maven3以上版本要求安装jdk1.7以上版本。1、下载安装包 在Maven官网下载最新版的安装包:http://maven.apache.org/download.cgi 2、解压安装包 3、配置Maven环境变量 配置M2_HOME环境变量,指向maven的安装目录,并将bin目…

maven安装jar包

解决问题 主要解决开发过程中jar包依赖无法通过中央仓库、阿里云仓库等地方直接下载或者说对应的仓库中没有对应的jar包,比如 java-1.0.2.jar 这个jar包,很难从maven中央仓库中下载。这个时候我们就需要把对应的jar包给copy到本地,然后通过m…

Maven安装和配置(超详细+配置idea)

一、Maven安装准备 1、maven下载 1.1、百度网盘链接下载 链接:https://pan.baidu.com/s/1fGDRnWCfN3mrDM9oV5y01g?pwd1234 提取码:1234 1.2、maven官网下载 链接:maven官网下载 二、maven安装步骤 2、解压安装 解压…

Ubuntu下Maven安装和使用

Ubuntu下Maven安装和使用 一、安装Maven 安装Maven之前,必须安装了JDK,另外IDEA可以从https://download.jetbrains.8686c.com/idea/ideaIC-2016.2.5.tar.gz下载,里面有说明如何安装IDEA 1.1 首先下载Maven的压缩包 下载apache-maven-3.8.…

Maven安装

下载地址:http://maven.apache.org/download.cgi 下载后解压到自己想安装的目录 配置环境变量: MAVEN_HOME : D:\ProgramFiles\apache-maven-3.6.1 (压缩所在的路径) PATH: %MAVEN_HOME%\bin 修改setting.xml配置文件(在压缩路径的conf文…

android换机备份,安卓手机备份迁移指南

原标题:安卓手机备份迁移指南 买了新手机,本来是一件非常开心的事情,但是如何将旧手机上的有用信息转移到新手机上,这可是一件让大家很犯愁的事情,今天就跟着小编一起来看看安卓手机的四种转移数据的方法吧。 1、一键换…