论文笔记之DPG

2023-10-27

原论文地址

阅读DPG的必要性:A2C的难收敛使得policy-based向着DDPG发展,而DDPG=Deep + DPG,因此想要理解DDPG算法,就必须先理解DPG

 

Deterministic Policy Gradient Algorithms(以下简称DPG)论文笔记

Abstract:

①:作者首先指出一种叫DPG的算法用于连续动作空间的强化学习任务。与DPG相对得是随机策略梯度即Stochastic Policy Gradient(以下简称SPG),在DPG之前,我们用高斯策略解决连续动作空间问题,用softmax策略解决离散动作空间问题,他们都是在一定概率空间内去选择动作, 而DPG是一种输出确定性策略的算法。

②:在SPG中,我们策略网络参数θ是向着期望累计奖励梯度上升的方向去更新,即,但在DPG中,作者提出了一种吸引人的形式:,即动作值函数梯度的期望

③:DPG由于输出的是确定性策略,那么自然会损失一定的探索,而探索在RL中是避免陷入局部最小的重要方法,因此作者David Silver引入了一种off-policy Actor-Critic算法(OPDAC),Q-learning就是一种典型的off-policy算法,OPDAC仿照Q-learning的思想,从随机探索的行为策略中学习目标确定性策略。

④:作者最后提出DPG在高维空间中可以表现得比SPG更好!

 

1、Introduction

SPG广泛用于连续动作空间的RL问题(当然离散空间也可用),SPG对参数为θ策略网络的输出分布中中随机选取动作action。网路输出分布为:可以是softmax或者高斯策略。策略参数θ的更新是沿着期望累计奖励梯度的方向。

DPG网络输出的为一个确定的action:,其网络参数θ的更新沿着动作值函数的梯度的方向。

此外,作者还证明了DPG是SPG的特殊情况,即当SPG的策略方差趋于0的时候,SPG就是DPG。

在随机策略梯度SPG中,我们需要对状态、动作同时积分:,然后需要对状态和动作在相应分布下采样,当维度很高的时候,采样量就会随着增大,换句话说,SPG需要有足够的采样量才能正确输出正确的策略分布来选择正确的动作,一旦动作维度很高,那么花费的工作量还是很大的。

但是作者引入的DPG只需要对状态求积分,少了对动作的积分,即不用对动作大量的采样,提升了效率。

 

2、Background

2.1、Preliminaries

强化学习的任务建立在Agent在随机的环境中与环境交流随机选择动作,从而在产生的一串串时间步组成的序列中最大化期望累计奖励。

我们将强化学习的任务建立在马尔科夫决策模型上,即MDP,MDP由状态空间,动作空间,初始状态分布,状态转移概率,实时奖励

MDP需要满足马尔科夫性质:。策略是用来选择动作的,有确定性策略和随机性策略两种,通常情况下都是随机性策略,动作由该时刻的状态决定,即

基于MDP会形成一串串轨迹

是从第t个时间步开始的累计折扣奖励。

状态值函数和动作值函数

RL的目标就是最大化从初始状态开始的期望累计奖励

目标函数可以选择V或者Q都行,value-based就是在对最大的Q值扣出相应的动作作为最优策略。而policy-based绕开了中间那步求估计值函数并求最大值函数的过程,直接去寻找最优策略。

接下来作者定义从状态s到状态s',经历t步的转移概率为,定义折扣状态分布。那么目标函数可以进一步写成

Note:

1、是在策略π下访问过的折扣状态分布,因为策略是随机的,所以每次的状态分布都是动态变化的,因此其是一个分布。

2、r(s,a)是奖励函数。

 

2.2、Stochastic Policy Gradient Theorem

SPG最基本的思想就是,既然我的目标是最大化目标函数,那么就直接调整策略参数往目标函数梯度的方向去(梯度的方向就是变化率大的方向),即梯度上升,得到了调整后的策略网络的参数,那么就相当于得到了最优策略。

Sutton在1999年发表了policy gradient theorem:在论文Policy gradient methods for reinforcement learning with function approximation的原理1:

和下面是等价的(就相当于),上面是的s、a是以离散R.V表示的,对于连续的R.V:

。(这里Q的上标π表明来Q值来自于value-based中目标策略获得的Q)

这里第二步到第三步是期望的定义得来的,s和a都是随机变量,期望是由R.V的分布决定的,X属于哪个分布,就说EX是这个分布的数学期望。此外这里可以作为是概率密度,即R.V的分布,R.V就是根据这个概率分布去采样得到各种

通过证明他两的积分为1,即可作为概率密度。

Note:

如果将公式中的改成,那么就是REFORCEMENT算法,关于REFORCEMENT可以看看我的另一篇

 

2.3、Stochastic Actor-Critic Algorithms

SAC算法由2部分组成,一部分策略网络Actor,另一部分是值函数网络Critic,是网络的参数,用值函数近似的方法去估计Q的真实值: ,可以采用TD算法去估计。

Sutton在论文Policy gradient methods for reinforcement learning with function approximation的原理2中的证明表明了若值函数近似器满足以下2个条件:

那么perfomance objective就可以改写成,和2.2节对比,就是用值函数近似器代替了Q真值。

从条件1中可以看出,Critic网路通过TD算法可以实现条件(1),基于Q表的TD算法采用软更新近似Q真实值。基于nn的TD算法采用最小化二乘误差的方法近似Q值,常见的值函数近似器有nn、线性拟合等。从条件(2)可以看出,值函数近似器是关于的线性函数。

值函数近似本来是会引入bias的,当满足上述2个条件后,值函数近似器代替Q真值将不会引入bias。

(这个地方一直有疑惑,感觉nn符合条件1没问题,但是条件2怎么去理解就不清楚了,有知道的同学麻烦指点一下)

 

2.4、Off-Policy Actor-Critic

off-policy算法有2个不同的策略组成,典型的off-policy就是Q-learning算法。一个是行为策略,一个是目标策略,并且。判断Actor-Critic是否为off-policy主要看其Critic是否为off-policy。

定义目标函数为:,其中第一步到第二步是根据贝尔曼公式推到出来的V是Q的期望,即:

对目标函数求梯度:,这就是off-policy policy-gradient,其中为重要性采样修正因子,这是off-policy特有的,关于重要性采样,可以看我的另一篇介绍重要性采样

Off-PolicyActor-Critic(以下简称OffPAC):

使用行为策略去环境交流产生一串串轨迹。

Critic网络利用轨迹采样,通过V-learning来估计V真实值(注意这个真实值的上标是π,说明是在最终目标策略下的真实值)作为Critic。显然Critic需要IS修正因子。

Actor网络利用轨迹采样,通过,利用随机梯度上升去调整网络参数θ。由于随机策略下需要对action采样,故也需要IS修正因子,这里和为什么V-learning需要重要性采样原理是一样的。因为如果不加这个修正因子的话,那么就不能确保说行为策略产生的动作a会使得策略网络参数θ的更新朝着正确的方向进行,在这一点上,修正因子和Critic的作用是一样的,都是为了修正行为策略的动作a偏离目标策略希望的a的程度,所以说,IS修正因子就是为动作action而准备的。

因此Critic和Actor网络都需要修正因子,即2个IS修正因子。

 

3、Gradients of Deterministic Policies

总算开始引入正题了!

作者在3.1和3.2节分别给出了非正规和正规的导出方式。

3.1、Action-Value Gradients

在RL任务中,策略评估负责预测值函数,通常可以采用DP、MC或者TD,策略改善通常使用贪心策略,即,k表示第k轮轨迹,表示第k轮轨迹的策略,式子体现了策略的更新,注意上标这个策略还不是目标策略π,而是前往目标策略过程中的策略。

但是这种策略改善方式在离散动作空间还能使用,如果在连续的动作空间,那么你就得去找值函数的全局最大,显然是不切合实际的,因此作者提出了一种新的思路:调整策略参数θ朝着值函数Q梯度上升的方向,对于每一个遍历的状态s,都将对参数θ进行更新。考虑到状态的单步更新的程度都不同,因此会采用小批量更新,即求策略分布下采样到的所有状态对值函数Q梯度的期望:来提高更新的稳定性。

表示在策略下遍历到的状态分布,由于每个轨迹遍历的状态都不一样,故他是个分布)

因此,确定性策略下策略改善的方式为:

 

3.2、Deterministic Policy Gradient Theorem

正式定义如下:确定性策略:,目标函数:

其余和随机性策略类似,目标函数performance objective:

然后给出确定性策略梯度定理:

从这个公式中我们看出:梯度只对状态积分,相比于随机性策略,对动作的积分空间大大减少,意味着无需对动作进行采样了,大大提高了效率。

 

3.3、Limit of the Stochastic Policy Gradient

作者证明了确定性策略梯度是随机性策略梯度的极限情况,即策略方差趋于0的时候。

 

4、Deterministic Actor-Critic Algorithms

确定性策略可用于on-policy算法,也可以用于off-policy算法。对于on-policy算法,我们可以采用Sarsa作为Critic,对于off-policy算法,我们可以采用Q-learning作为Critic。作者还提出了类似于随机性策略中的消除bias的2个条件。

4.1、On-Policy Deterministic Actor-Critic 

确定性策略一大弊端就是输出是确定性的值,缺乏探索性,容易陷入局部最优,因此可以在输出上人为增加一点点噪声(OrnsteinUhlenbeck噪声、高斯噪声等)干扰,以体现探索性。

On-policy Deterministic Actor-Critic由2部分组成:一部分是on-policy的Critic,如Sarsa用于预测Q值,策略改善部分由Actor不断提升Q值,对于s1,能输出确定性的a1来;另一部分是Actor网络,确定性Actor网络参数的提升不再是以策略梯度与critic相乘的形式,而是朝着Q值梯度上升的方向。和随机性策略一样,我们还是用一个值函数近似器来代替Q真实值

2个网络参数更新如下

Note:w和θ的更新都是单样本更新。如果像确定性策略梯度定理那样,则θ的更新就是小批量梯度上升。

 

4.2、Off-Policy Deterministic Actor-Critic

off-policy由2个策略组成,记为我们需要学习的目标策略,是个确定性策略,为行为策略,通常是确定性策略上增加一定的噪声。

定义performance objective:

Note:

1、第二步到第三步是因为目标策略π是确定性策略。因为是概率密度,故这里可以将看成冲激函数形式。

2、确定性策略的目标函数只对状态积分

其梯度为:

确定性策略中梯度只与状态有关,不需要对动作采样,故就不需要IS修正因子了。

Off-policy Deterministic Actor-Critic:轨迹由产生。该算法由2部分组成,一部分是Critic,采用Q-learning算法来近似Q真实值:。另一部分是Actor,和4.1节的on-policy Deterministic AC算法一样,参数的更新沿着Q值梯度上升的方向。

2个网络参数更新如下:

由于Critic使用Q-learning,Actor使用确定性策略,其对动作不积分不采样。故两者都不需要重要性采样,不需要IS修正因子。

 

4.3、Compatible Function Approximation

延续随机策略的2个条件,对于确定性策略,作者也提出了2个条件:

 

总结:

DPG三大主要优势:

①:调整策略参数θ朝着值函数Q梯度上升的方向。

②:确定性策略梯度的performance objective只对状态积分,相比于随机性策略,对动作的积分空间大大减少,意味着无需对动作进行采样了,大大提高了效率。

③:Actor使用确定性策略,其对动作不积分不采样,不需要IS修正因子。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

论文笔记之DPG 的相关文章

随机推荐

  • 流文件保存到本地的两种方法

    1 FileStream fs new FileStream path FileMode Create fs Write ImageBuff 0 ImageBuff Length fs Close 注释 ImageBuff 图片流 byte
  • HEX(Xilinx MCS)文件格式详解

    文章目录 自己定义个文件格式 HEX文件格式详解 HEX 文件是指以hex为后缀 采用Intel HEX编码规则的文件 可以直接使用文本编辑工具打开 通常用来对微控制器或ROM进行编程 本质上都是对存储器编程 其中包含了每个地址对应的数据
  • QT connect()连接函数的一点说明

    QObject connect中的signal和slot函数一定要有参数类型 但是 不可以有参数名 指定信号和方法时 必须使用SIGNAL 和SLOT 宏 例如 关联信号和槽函数 connect configureWindow SIGNAL
  • MySQL索引失效场景实例演示

    文章目录 一 环境信息 二 表 数据准备 三 复合索引的失效情况 最左前缀法则 or查询 四 单列索引的失效情况 like模糊查询使用前通配符 索引列上使用函数 字符串索引没加引号 使用 lt gt gt lt is null 或 is n
  • Jenkins安装与配置

    什么是CICD CI CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法 CI CD 的核心概念是持续集成 持续交付和持续部署 作为一个面向开发和运营团队的解决方案 CI CD 主要针对在集成新代码时所引发的问题 亦称 集成
  • Ubuntu16.04下基于Docker的Caffe-GPU版本环境搭建总结

    Caffe的GPU环境搭建在docker支持下并不困难 但是过程比较杂 所需依赖如下 本文会说明安装方法 帮助大家少走弯路 GNU Linux x86 64 with kernel version gt 3 10 Docker gt 1 9
  • 这是一个更新版本服务代码python

    import win32serviceutil import win32service import win32event import os import logging import inspect import time from u
  • 【计算机网络】实验报告三:Cisco Packet Tracer 实验

    Cisco Packet Tracer 实验 1 直接连接两台 PC 构建 LAN 2 用交换机构建 LAN 3 交换机接口地址列表 4 生成树协议 Spanning Tree Protocol 5 路由器配置初步 6 静态路由 7 动态路
  • 1045 快速排序

    著名的快速排序算法里有一个经典的划分过程 我们通常采用某种方法取一个元素作为主元 通过交换 把比主元小的元素放到它的左边 比主元大的元素放到它的右边 给定划分后的 N 个互不相同的正整数的排列 请问有多少个元素可能是划分前选取的主元 例如给
  • typora高亮_用Typora实现写作排版一体化

    用Typora实现写作排版一体化 一般的推文制作过程 大概都是在本地word写好文案以后 再导入到第三方的推文编辑器中进行排版 最后再黏贴到微信的图文素材编辑器里生成图文发布 经常看到许多公众号文章充满花里胡哨的元素 大概都是因为使用了推文
  • SpringBoot整合Elasticsearch(最新最全,高效安装到使用)

    文章目录 一 安装Elasticsearch相关插件 1 选择版本 2 安装Elasticsearch 3 安装node 4 安装grunt 5 安装es head插件 6 安装kibana 7 安装ik分词器 二 整合SpringBoot
  • 从零开始学编程——DOS命令

    一 DOS操作系统 DOS 英文 Disk Operating System 是一款由微软早期推出的磁盘操作系统 可以通过一系列dos命令直接对硬盘文件进行增删改查 DOS和windiws的最大不同之处在于它是一个字符式操作系统 所有的操作
  • Oracle 表空间查询与操作方法

    一 查询篇 1 查询oracle表空间的使用情况 select b file id 文件ID b tablespace name 表空间 b file name 物理文件名 b bytes 总字节数 b bytes sum nvl a by
  • 自动化办公更简单了:新版python-office,有哪些更新?

    职场经验谈 大家好 这里是程序员晚枫 小破站 小红薯都叫这个名 去年4月开源了一个Python自动化办公项目 python office GitHub和Gitee都能看到 1行代码实现复杂的自动化办公任务 帮助不懂代码的小白 快速使用Pyt
  • Unity鼠标控制物体的旋转、移动、缩放等

    这个是控制相机 44条消息 unity 相机 旋转缩放查看 物体或地图 unity旋转查看物体 野区捕龙为宠的博客 CSDN博客 下面的是控制物体本身 知识点 Input GetMouseButton 0 获取鼠标输入 参数为一个int值
  • QT moveToThread解析

    目录 简介 源码分析 判断是否可以执行移动动作 执行移动动作 调用moveToThread helper 调用setThreadData helper 简介 每一个QObject子类都会关联到一个具体QThread线程上 QObject有一
  • 同一块磁盘下,非lvm的扩容

    1 想要给跟分区扩容 2 先安装growpart yum install cloud utils growpart 3 growpart dev sda 2 发现lsblk看到扩容了 但是实际df还是没扩容 4 需要执行xfs growfs
  • 数据库系统之NoSQL数据库系统

    NoSQL Database Systems 什么是NoSQL数据库系统 为什么使用NoSQL NoSQL数据库系统的属性 半结构化的 无模式的数据模型 专业分布模型 弱一致性 Relaxing durability Versioning
  • 操作系统_03_内存管理(个人总结)

    声明 1 本文为我的个人复习总结 并非那种从零基础开始普及知识 内容详细全面 言辞官方的文章 2 由于是个人总结 所以用最精简的话语来写文章 3 若有错误不当之处 请指出 为什么要有虚拟地址 使各个进程使用的内存 相互独立 单片机没有操作系
  • 论文笔记之DPG

    原论文地址 阅读DPG的必要性 A2C的难收敛使得policy based向着DDPG发展 而DDPG Deep DPG 因此想要理解DDPG算法 就必须先理解DPG Deterministic Policy Gradient Algori