【强化学习理论】基于策略的强化学习——策略梯度算法

【强化学习理论】基于策略的强化学习——策略梯度算法

基于策略的强化学习方法通过计算策略,即动作的分布 π ( a ∣ s ) \pi(a|s) π(as)决定在状态 s s s选择动作 a a a。例如 π ( a ∣ s ) = [ 0.5 , 0.3 , 0.2 ] \pi(a|s)=[0.5, 0.3, 0.2] π(as)=[0.5,0.3,0.2],表示选择动作 a 1 a_1 a1的概率为0.5,选择动作 a 2 a_2 a2的概率为0.3,选择动作 a 3 a_3 a3的概率为0.2。**策略梯度算法(policy gradient,PG)**是经典的基于策略的强化学习方法,本文对策略梯度算法进行介绍。

注:本文是在观看【王树森】深度强化学习(DRL)P3后的整理。

1. 如何计算策略 π ( a ∣ s ) \pi(a|s) π(as)

基于策略的强化学习方法需要计算策略。在深度强化学习中,使用神经网络近似动作分布,示意图如下图所示。此时神经网络称为策略网络,记作 π ( a ∣ s ; θ ) \pi(a|s;\theta) π(as;θ) θ \theta θ表示策略网络的参数。

在这里插入图片描述

图源【王树森】深度强化学习(DRL)P3

良好的策略的目标是让所有状态的价值尽量高,则神经网络优化的目标函数 J ( θ ) \mathcal{J}(\theta) J(θ)可定义为:
J ( θ ) = E s ∈ S [ V π ( s ; θ ) ] \mathcal{J}(\theta) = \mathbb{E}_{s \in \mathcal{S}} \left[ V^{\pi}(s; \theta) \right] J(θ)=EsS[Vπ(s;θ)]
其中, S \mathcal{S} S表示强化学习环境的状态空间。假设环境的动作空间为离散型, V π ( s ; θ ) V^{\pi}(s;\theta) Vπ(s;θ)可作如下定义并根据期望的定义展开:
V π ( s ; θ ) = E a ∼ π ( ⋅ ∣ s ; θ ) [ Q π ( s , a ) ] = ∑ a π ( a ∣ s ; θ ) Q π ( s , a ) \begin{aligned} V^{\pi}(s;\theta) & = \mathbb{E}_{a \sim \pi(\cdot|s;\theta)} \left[ Q^{\pi}(s,a) \right] \\ & = \sum_{a} \pi(a|s;\theta) Q^{\pi}(s,a) \end{aligned} Vπ(s;θ)=Eaπ(s;θ)[Qπ(s,a)]=aπ(as;θ)Qπ(s,a)

此处涉及状态价值函数与动作价值函数的关系,可见【强化学习理论】状态价值函数与动作价值函数系列公式推导

2. 如何优化策略网络的参数?

使用梯度上升的方式对策略网络的参数 θ \theta θ进行更新。对于训练策略网络的具体样本给定的状态 s s s,更新式子如下:
θ ← θ + α ⋅ ∂ V π ( s ; θ ) ∂ θ \theta \leftarrow \theta + \alpha \cdot \frac{\partial V^{\pi}(s;\theta)}{\partial \theta} θθ+αθVπ(s;θ)
也有一种写法是 θ ← θ + α ⋅ ∇ θ V π ( s ; θ ) \theta \leftarrow \theta + \alpha \cdot \nabla_{\theta}V^{\pi}(s; \theta) θθ+αθVπ(s;θ)。其中, α \alpha α是网络学习率。 ∇ θ V π ( s ; θ ) \nabla_{\theta}V^{\pi}(s; \theta) θVπ(s;θ)即为策略梯度。此处的 ∇ θ V π ( s ; θ ) \nabla_{\theta}V^{\pi}(s; \theta) θVπ(s;θ)其实是随机梯度,随机性来源于 s s s

3. 如何计算策略梯度?

根据 V π ( s ; θ ) V^{\pi}(s;\theta) Vπ(s;θ)的定义,策略梯度可做如下展开:
∂ V π ( s ; θ ) ∂ θ = ∂ ∑ a π ( a ∣ s ; θ ) Q π ( s , a ) ∂ θ = ∑ a ∂ π ( a ∣ s ; θ ) Q π ( s , a ) ∂ θ = ∑ a Q π ( s , a ) ∂ π ( a ∣ s ; θ ) ∂ θ (Form 1) = ∑ a Q π ( s , a ) π ( a ∣ s ; θ ) ∂ ln ⁡ π ( a ∣ s ; θ ) ∂ θ = E a ∼ π ( ⋅ ∣ s , θ ) [ Q π ( s , a ) ∂ ln ⁡ π ( a ∣ s ; θ ) ∂ θ ] (Form 2) \begin{aligned} \frac{\partial V^{\pi}(s;\theta)}{\partial \theta} &= \frac{\partial \sum_{a} \pi(a|s;\theta) Q^{\pi}(s,a)}{\partial \theta} &\\ &= \sum_a \frac{\partial \pi(a|s;\theta) Q^{\pi}(s,a)}{\partial \theta} &\\ &= \sum_a Q^{\pi}(s,a) \textcolor{blue}{\frac{\partial \pi(a|s;\theta)}{\partial \theta}} &\text{(Form 1)}\\ &= \sum_a Q^{\pi}(s,a) \textcolor{blue}{\pi(a|s;\theta) \frac{\partial \ln \pi(a|s;\theta)}{\partial \theta}} &\\ &= \mathbb{E}_{a\sim \pi(\cdot|s,\theta)} \left[ Q^{\pi}(s,a) \frac{\partial \ln \pi(a|s; \theta)}{\partial \theta} \right] &\text{(Form 2)} \end{aligned} θVπ(s;θ)=θaπ(as;θ)Qπ(s,a)=aθπ(as;θ)Qπ(s,a)=aQπ(s,a)θπ(as;θ)=aQπ(s,a)π(as;θ)θlnπ(as;θ)=Eaπ(s,θ)[Qπ(s,a)θlnπ(as;θ)](Form 1)(Form 2)

因为对不同动作 a a a求和与求偏导对象 θ \theta θ无关,因此可以将求和运算从求偏导中提取出来,第一行转化为第二行;

假设 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a)与策略网络的参数 θ \theta θ无关(但严格来讲,这种假设不够严谨,因为 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a)与策略 π ( a ∣ s ; θ ) \pi(a|s; \theta) π(as;θ)有关),因此可以将其从求偏导中提取出来,第二行转化为第三行,得到求解策略梯度的第一种形式Form 1;

由于根据链式法则, π ( a ∣ s ; θ ) ∂ ln ⁡ π ( a ∣ s ; θ ) ∂ θ = π ( a ∣ s ; θ ) 1 π ( a ∣ s ; θ ) ∂ π ( a ∣ s ; θ ) ∂ θ = ∂ π ( a ∣ s ; θ ) ∂ θ \pi(a|s;\theta) \frac{\partial \ln \pi(a|s;\theta)}{\partial \theta} = \pi(a|s;\theta) \frac{1}{\pi(a|s;\theta)} \frac{\partial \pi(a|s;\theta)}{\partial \theta} = \frac{\partial \pi(a|s;\theta)}{\partial \theta} π(as;θ)θlnπ(as;θ)=π(as;θ)π(as;θ)1θπ(as;θ)=θπ(as;θ),第三行转化为第四行;

根据对离散型随机变量求期望的计算方式,第四行转化为第五行,得到求解策略梯度的第二种形式Form 2。

离散型动作空间情况下计算策略梯度

在动作空间是离散的情况下,可以使用Form 1式子计算策略梯度:计算所有动作的相应值并相加。即假设动作空间大小为3,令 f ( a ; θ ) = Q π ( s , a ) ∂ π ( a ∣ s ; θ ) ∂ θ f(a;\theta) = Q^{\pi}(s,a) \frac{\partial \pi(a|s;\theta)}{\partial \theta} f(a;θ)=Qπ(s,a)θπ(as;θ),则 ∂ V π ( s ; θ ) ∂ θ = f ( a 1 ; θ ) + f ( a 2 ; θ ) + f ( a 3 ; θ ) \frac{\partial V^{\pi}(s;\theta)}{\partial \theta} = f(a_1; \theta) + f(a_2; \theta) + f(a_3; \theta) θVπ(s;θ)=f(a1;θ)+f(a2;θ)+f(a3;θ)

连续型动作空间情况下计算策略梯度

在动作空间是连续的情况下,无法列举出所有可能的动作,因此无法使用Form 1式子。此时可以使用Form 2式子,但是由于动作分布的概率密度函数 π ( a ∣ s ; θ ) \pi(a|s;\theta) π(as;θ)比较复杂,难以计算关于 a a a的积分,因此使用Form 2式子的同时还会使用蒙特卡洛近似来近似Form 2式子的计算。

蒙特卡洛近似是指从分布中抽样多个随机样本以近似期望。

具体而言,从策略函数中采样动作 a ^ \hat{a} a^ a ^ ∼ π ( ⋅ ∣ s ; θ ) \hat{a} \sim \pi(\cdot|s;\theta) a^π(s;θ),令 g ( a ^ ; θ ) = Q π ( s , a ^ ) ∂ ln ⁡ π ( a ^ ∣ s ; θ ) ∂ θ g(\hat{a};\theta) = Q^{\pi}(s,\hat{a}) \frac{\partial \ln \pi(\hat{a}|s; \theta)}{\partial \theta} g(a^;θ)=Qπ(s,a^)θlnπ(a^s;θ) g ( a ^ ; θ ) g(\hat{a};\theta) g(a^;θ)是策略梯度的无偏估计,可以用于近似策略梯度,则 ∂ V π ( s ; θ ) ∂ θ = E a ^ ∼ π ( ⋅ ∣ s , θ ) [ g ( a ^ ; θ ) ] \frac{\partial V^{\pi}(s;\theta)}{\partial \theta} = \mathbb{E}_{\hat{a} \sim \pi(\cdot|s,\theta)}[g(\hat{a};\theta)] θVπ(s;θ)=Ea^π(s,θ)[g(a^;θ)]

这种计算方式也适用于离散型动作空间的情况。

4. 策略梯度算法流程

  • 获得当前时刻状态 s t s_t st
  • 从策略网络 π ( ⋅ ∣ s t ; θ ) \pi(\cdot|s_t;\theta) π(st;θ)中随机采样得到动作 a t a_t at
  • 计算 q t ≈ Q π ( s t , a t ) q_t \approx Q^{\pi}(s_t,a_t) qtQπ(st,at)(使用某种估计方法)
  • 计算策略梯度
    • 计算网络参数的梯度 d θ , t = ∂ ln ⁡ π ( a t ∣ s t ; θ ) ∂ θ \mathrm{d}_{\theta, t} = \frac{\partial \ln \pi(a_t|s_t;\theta)}{\partial \theta} dθ,t=θlnπ(atst;θ)
    • 计算策略梯度 g ( a t ; θ t ) = q t ⋅ d θ , t \mathrm{g}(a_t;\theta_t) = q_t \cdot \mathrm{d}_{\theta,t} g(at;θt)=qtdθ,t
  • 更新策略网络的参数 θ t + 1 ← θ t + α ⋅ g ( a t ; θ t ) \theta_{t+1} \leftarrow \theta_t + \alpha \cdot \mathrm{g}(a_t;\theta_t) θt+1θt+αg(at;θt)

5. 在策略梯度算法中如何计算状态动作价值?

这一节对应于上一节策略梯度算法流程中计算 Q π ( s t , a t ) Q^{\pi}(s_t,a_t) Qπ(st,at)的步骤。这一步计算有两种方法,一种是基于蒙特卡洛近似的方法,另一种是基于神经网络拟合的方法。

基于蒙特卡洛近似计算状态动作价值——REINFORCE

  • 使用当前策略采样得到轨迹 s 1 , a 1 , r 1 , . . . , s T , a T , r T s_1, a_1, r_1, ..., s_T, a_T, r_T s1,a1,r1,...,sT,aT,rT
  • 为轨迹中的每一个 ( s t , a t ) (s_t,a_t) (st,at)计算折扣回报 u t = ∑ k = t T γ k − t r k u_t = \sum_{k=t}^T \gamma^{k-t} r_k ut=k=tTγktrk
  • 由于 Q π ( s t , a t ) = E [ U t ∣ S t = s t , A t = a t ] Q^{\pi}(s_t, a_t) = \mathbb{E}[U_t|S_t=s_t,A_t=a_t] Qπ(st,at)=E[UtSt=st,At=at],可以使用 u t u_t ut近似 Q π ( s t , a t ) Q^{\pi}(s_t, a_t) Qπ(st,at),即 q t = u t q_t = u_t qt=ut

基于神经网络拟合计算状态动作价值——Actor-Critic

暂略。

参考

【王树森】深度强化学习(DRL)P3

第 9 章 策略梯度算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值