DataWhale 深度强化学习课程(六 策略梯度和Actor-Critic算法)

一、策略梯度

与基于价值 (value-based)的算法不同,这类算法直接对策略本身进行近似优化,在这种情况下,可以将策略描述成一个带有参数 θ \theta θ 的连续函数,该函数将某个状态作为输入,输出的不再是某个确定性的离散动作,而是对应的动作概率分布,通常用 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ(as) 表示,称作随机性策略。

1.1 基于价值算法的缺点

以DQN为代表的算法在众多任务上取得了不错的效果,且具备较好的收敛性,但这类算法也存在一些缺点。

  • 无法表示连续动作:DQN等算法是通过学习状态和动作的价值函数来间接指导策略,因此只能处理离散动作空间的问题,无法表示连续动作空间的问题。(机器人的运动控制问题,连续动作空间是非常常见的,比如控制机器人的运动速度、角度等);
  • 高方差:基于价值的方法通常都是通过采样的方式估计价值函数,会导致估计的方差很高,从而影响算法的收敛性。虽然一些tricks能在一定程度上减小方差,但是这些方法并不能完全解决这个问题;
  • 探索与利用的平衡问题:DQN等算法在实现时通常选择贪心的确定性策略,而很多问题的最优策略是随机策略,即需要以不同的概率选择不同的动作。虽然可以通过 ϵ − g r e e d y \epsilon-greedy ϵgreedy 等方式实现一定程度的随机策略,但是并不离线,并不能很好地平衡探索与利用的关系。

1.2 策略梯度算法

策略梯度算法是一类直接对策略进行优化的算法,但它的优化目标与基于价值的算法是一样的,都是累积的价值期望 V ∗ ( s ) V^*(s) V(s)。我们通常用 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ(as) 来表示策略,即在状态 s s s 下采取动作 a a a 的概率分布 p ( a ∣ s ) p(a|s) p(as)
轨迹的形成
上述为一个回合(episode),把所有状态和动作组合起来,称为轨迹 τ \tau τ
轨迹
轨迹出现的概率如下:
轨迹产生的概率
对于一条轨迹 τ \tau τ 来说,对应奖励就可以计算为 R ( τ ) = ∑ 0 T r ( s t , a t ) R(\tau) = \sum_0^Tr(s_t,a_t) R(τ)=0Tr(st,at)
轨迹价值的计算
策略的价值期望公式为:
策略的价值期望公式
目标:最大化策略的价值期望 J ( π θ ) J(\pi_{\theta}) J(πθ),又为目标函数。有了目标函数之后,只要能求出梯度,就可以使用万能的梯度上升或梯度下降来求解对应的最优参数 θ ∗ \theta^* θ

寻求价值期望的梯度:
1.做一个转换
转换
2.求部分
对数公式
3.求总体
只与中间参数有关
4.求全局
目标函数梯度
基于价值算法是通过学习价值函数来指导策略的;
基于策略的算法则是对策略进行优化。

1.3 REINFORCE 算法

轨迹是由状态和动作组合而成序列,实际上一方面环境的初始状态是随机的,另一方面智能体每次采取的动作是随机的,从而导致每条轨迹的长度都可能不一样,即我们可以不必采样所有的轨迹,而是采样一部分且数量足够多的轨迹,然后利用这些轨迹的平均值来近似求解目标函数的梯度。这种方法就是蒙特卡洛策略梯度算法,也称作REINFORCE算法。

目标函数梯度求解:(使用 REINFORCE 算法的做法是每次采样 N 条轨迹,然后对这 N 条轨迹的梯度求平均。)

梯度平均

1.4 策略梯度推导进阶(基于平稳分布的策略梯度推导)

轨迹概率公式跟平稳分布等效,因此
策略梯度算法目标函数
梯度
价值的部分可以用神经网络模型来近似,只是略有不同的是这里的 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a) 相比于DQN 算法中的 Q 函数多了一个策略 π \pi π 作为输入,并且输出的不再是所有动作对应的 Q 值,而是针对当前和状态的单个值,更像是评判策略的价值而不是状态的价值,用来近似 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a) 的模型称作 C r i t i c Critic Critic,另外只包含策略梯度的一部分的模型称作 A c t o r Actor Actor

1.5 策略函数的设计

1.5.1 离散动作的策略函数

DQN中Q函数通常是包含一个输入层、一个隐藏层和一个输出层,输入为模型能够接收的状态,输出等于每个动作的Q值。对于策略函数来说,也可以采用类似的设计,只不过输出的不是Q值,而是各个动作的概率分布,概率大于0且和为1。网络模型的输出有正由负,可以采用softmax方式来进行处理,梯度也可如下计算
在这里插入图片描述

梯度转换

1.5.2 连续动作的策略函数

对于连续动作空间,通常策略对应的动作可以从高斯分布 N ( ϕ ( x ) T θ , σ 2 ) \mathbb{N}(\phi(x)^T\theta,\sigma^2) N(ϕ(x)Tθ,σ2),对应的梯度也可求得,如下:
在这里插入图片描述

二、Actor-Critic 算法

2.1 策略梯度算法的缺点

梯度算法优点:

  1. 适配的连续动作空间
  2. 适配随机策略(基于策略,因此可以适配随机策略,计算出来的策略梯度是无偏的)
    缺点:
  3. 采样效率低
  4. 高方差
  5. 收敛性差(策略梯度方法并不能保证全局最优解,存在多个局部最优解,可能会在局部最优点附近停滞)
  6. 难以处理的高维离散动作空间

结合了策略梯度和价值函数的 Actor-Critic 算法能同时兼顾两者的优点,甚至能缓解两种方法都很难解决的高方差问题。策略梯度算法是因为直接对策略参数化,相当于既要利用策略与环境交互采样,又要利用采样去估计策略梯度,而基于价值的算法也需要与环境交互采样来估计值函数,因此也会有高方差。

结合以后,Actor负责估计策略梯度和采样。但Critic即原来的值函数部分就不需要采样而只负责估计值函数了,并且由于它估计的值函数指的是策略函数的值,相当于带来了一个更稳定的估计,来指导Actor的更新,反而能缓解策略梯度估计带来的方差。

2.2 Q Actor-Critic 算法

原始AC算法!
网络参数替换
上述算法通常称之为 Q A c t o r − C r i t i c Q Actor-Critic QActorCritic 算法,也是最简单的 $ Actor-Critic$ 算法,框架如下:算法架构

2.3 A2C 与 A3C 算法

为了解决高方差问题,引入一个优势函数,用来表示当前状态和动作相对于平均水平的优势,基线是指在同一个状态下的基线。
基线
优势函数可以理解为给定状态下,选择动作相对于平均水平的优势,相当于多了一个自身平均水平的参照物,减小方差,然后目标函数如下:
目标函数
A3C算法i选哪个党羽增加多个进程,每个进程每隔一段时间都会将自己的参数同步到全局网络中,提高训练效率。
A3C架构

2.4 广义优势估计

优势估计理论上还是要通过蒙特卡洛算法进行估计,还是会产生一定的高方差,将时序差分和蒙特卡洛结合,产生新的估计方式,即引入超参数的 T D ( λ ) TD(\lambda) TD(λ) ,即GAE。
推导
参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NXU2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值