《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch10 Actor-Critic 方法 » P2

《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch10 Actor-Critic 方法 >> P1

指标 2: 平均奖励

J ( θ ) = r ˉ μ = ∑ s ∈ S d μ ( s ) r μ ( s ) = E S ∼ d μ [ r μ ( S ) ] ( 10.20 ) \begin{aligned}J(\theta)=\bar r_\mu&=\sum\limits_{s\in {\cal S}}d_\mu(s)r_\mu(s)\\ &={\mathbb E}{S\sim d\mu}[r_\mu(S)]~~~~~~~~~~(10.20)\end{aligned} J(θ)=rˉμ=s∈S∑dμ(s)rμ(s)=ES∼dμ[rμ(S)] (10.20)

  • 其中 r μ ( s ) = E [ R ∣ s , a = μ ( s ) ] = ∑ r r p ( r ∣ s , a = μ ( s ) ) r_\mu(s)={\mathbb E}[R|s,a=\mu(s)]=\sum\limits_r rp(r|s,a=\mu(s)) rμ(s)=E[R∣s,a=μ(s)]=r∑rp(r∣s,a=μ(s)) 为即时奖励的期望
Theorem 10.4 无折扣情形下的 确定性 策略梯度原理

无折扣情形下

∇ θ J ( θ ) = ∑ s ∈ S d μ ( s ) ∇ θ μ ( s ) ( ∇ a q μ ( s , a ) ) ∣ a = μ ( s ) = E S ∼ d μ [ ∇ θ μ ( S ) ( ∇ a q μ ( S , a ) ) ∣ a = μ ( S ) ] \begin{aligned}\nabla_\theta J(\theta)&=\sum\limits_{s\in {\cal S}}d_\mu(s)\nabla_\theta \mu(s)(\nabla_a q_\mu(s,a))|{a=\mu(s)}\\ &={\mathbb E}{S\sim d_\mu}[\nabla_\theta \mu (S)(\nabla_a q_\mu(S,a))|_{a=\mu(S)}]\end{aligned} ∇θJ(θ)=s∈S∑dμ(s)∇θμ(s)(∇aqμ(s,a))∣a=μ(s)=ES∼dμ[∇θμ(S)(∇aqμ(S,a))∣a=μ(S)]

  • d μ d_\mu dμ 是策略 μ \mu μ 下的状态的状态分布。
Box 10.5: 证明 Theorem 10.4

由于 策略是确定性的, 有 v μ ( s ) = q μ ( s , μ ( s ) ) v_\mu(s)=q_\mu(s, \mu(s)) vμ(s)=qμ(s,μ(s))

由于 q μ q_\mu qμ 和 μ \mu μ 都是关于 θ \theta θ 的函数
~
∇ θ v μ ( s ) = ∇ θ q μ ( s , μ ( s ) ) = ( ∇ θ q μ ( s , a ) ) ∣ a = μ ( s ) + ∇ θ μ ( s ) ( ∇ a q μ ( s , a ) ) ∣ a = μ ( s ) ( 10.21 ) \nabla_\theta v_\mu(s)=\nabla_\theta q_\mu (s,\mu(s))=(\nabla_\theta q_\mu(s,a))|{a=\mu(s)}+\nabla\theta\mu(s)(\nabla_a q_\mu(s,a))|_{a=\mu(s)}~~~~~~~~~~(10.21) ∇θvμ(s)=∇θqμ(s,μ(s))=(∇θqμ(s,a))∣a=μ(s)+∇θμ(s)(∇aqμ(s,a))∣a=μ(s) (10.21)
~

在无折扣情形,
~
q μ ( s , a ) = E [ R t + 1 − r ˉ μ + v μ ( S t + 1 ) ∣ s , a ] = ∑ r p ( r ∣ s , a ) ( r − r ˉ μ ) + ∑ s ′ p ( s ′ ∣ s , a ) v μ ( s ′ ) = r ( s , a ) − r ˉ μ + ∑ s ′ p ( s ′ ∣ s , a ) v μ ( s ′ ) \begin{aligned}q_\mu(s,a)&={\mathbb E}[R_{t+1}\textcolor{blue}{-\bar r_\mu} + v_\mu (S_{t+1})|s,a]\\ &=\sum\limits_r p(r|s,a)(r-\bar r_\mu)+\sum\limits_{s^\prime}p(s^\prime|s,a)v_\mu(s^\prime)\\ &=r(s,a)-\bar r_\mu+\sum\limits_{s^\prime}p(s^\prime|s,a)v_\mu(s^\prime)\end{aligned} qμ(s,a)=E[Rt+1−rˉμ+vμ(St+1)∣s,a]=r∑p(r∣s,a)(r−rˉμ)+s′∑p(s′∣s,a)vμ(s′)=r(s,a)−rˉμ+s′∑p(s′∣s,a)vμ(s′)
~

由于 r ( s , a ) = ∑ r r p ( r ∣ s , a ) r(s,a)=\sum\limits_r r p(r|s,a) r(s,a)=r∑rp(r∣s,a) 与 θ \theta θ 无关
~
∇ θ q μ ( s , a ) = 0 − ∇ θ r ˉ μ + ∑ s ′ p ( s ′ ∣ s , a ) ∇ θ v μ ( s ′ ) \nabla \theta q\mu (s,a)=0-\nabla \theta\bar r\mu+\sum\limits_{s^\prime}p(s^\prime|s,a) \nabla \theta v\mu(s^\prime) ∇θqμ(s,a)=0−∇θrˉμ+s′∑p(s′∣s,a)∇θvμ(s′)
~

将上式 代入 式 (10.21)
~
∇ θ v μ ( s ) = − ∇ θ r ˉ μ + ∑ s ′ p ( s ′ ∣ s , μ ( s ) ) ∇ θ v μ ( s ′ ) + ∇ θ μ ( s ) ( ∇ a q μ ( s , a ) ) ∣ a = μ ( s ) ⏟ u ( s ) s ∈ S \nabla_\theta v_\mu(s)=-\nabla \theta\bar r\mu+\sum\limits_{s^\prime}p(s^\prime|s,\mu(s)) \nabla \theta v\mu(s^\prime)+\underbrace{\nabla_\theta\mu(s)(\nabla_a q_\mu(s,a))|{a=\mu(s)}}{u(s)}~~~~~~s\in {\cal S} ∇θvμ(s)=−∇θrˉμ+s′∑p(s′∣s,μ(s))∇θvμ(s′)+u(s) ∇θμ(s)(∇aqμ(s,a))∣a=μ(s) s∈S
~

上述方程对所有 s ∈ S s\in{\cal S} s∈S, 联合获得矩阵-向量形式;
~
[ ⋮ ∇ θ v μ ( s ) ⋮ ] ⏟ ∇ θ v μ ∈ R m n = − 1 n ⊗ ∇ θ r ˉ μ + ( P μ ⊗ I m ) [ ⋮ ∇ θ v μ ( s ′ ) ⋮ ] ⏟ ∇ θ v μ ∈ R m n + [ ⋮ u ( s ) ⋮ ] ⏟ u ∈ R m n \underbrace{\begin{bmatrix}\vdots\\ \nabla_\theta v_\mu(s)\\ \vdots\end{bmatrix}}{\nabla\theta v_\mu \in {\mathbb R}^{mn}}=-{\bf 1}n\otimes \nabla\theta \bar r_\mu +(P_\mu \otimes I_m)\underbrace{\begin{bmatrix}\vdots\\ \nabla_\theta v_\mu(s^\prime)\\ \vdots\end{bmatrix}}{\nabla\theta v_\mu \in {\mathbb R}^{mn}}+\underbrace{\begin{bmatrix}\vdots\\ u(s)\\ \vdots\end{bmatrix}}_{u \in {\mathbb R}^{mn}} ∇θvμ∈Rmn ⋮∇θvμ(s)⋮ =−1n⊗∇θrˉμ+(Pμ⊗Im)∇θvμ∈Rmn ⋮∇θvμ(s′)⋮ +u∈Rmn ⋮u(s)⋮

  • 其中 n = ∣ S ∣ n=|\cal S| n=∣S∣, m m m 为 θ \theta θ 的维度,
    P μ P_\mu Pμ 是状态转移矩阵, [ P μ ] s s ′ = p ( s ′ ∣ s , μ ( s ) ) [P_\mu]_{ss^\prime}=p(s^\prime|s,\mu(s)) [Pμ]ss′=p(s′∣s,μ(s))

可简写为
~
∇ θ v μ = u − 1 n ⊗ ∇ θ r ˉ μ + ( P μ ⊗ I m ) ∇ θ v μ \nabla_\theta v_\mu =u-{\bf 1}n \otimes \nabla\theta \bar r_\mu+(P_\mu\otimes I_m)\nabla_\theta v_\mu ∇θvμ=u−1n⊗∇θrˉμ+(Pμ⊗Im)∇θvμ
~

移项
1 n ⊗ ∇ θ r ˉ μ = u + ( P μ ⊗ I m ) ∇ θ v μ − ∇ θ v μ ( 10.22 ) {\bf 1}n \otimes \nabla\theta \bar r_\mu=u+(P_\mu\otimes I_m)\nabla_\theta v_\mu-\nabla_\theta v_\mu~~~~~~~~~~(10.22) 1n⊗∇θrˉμ=u+(Pμ⊗Im)∇θvμ−∇θvμ (10.22)
~

由于 d μ d_\mu dμ 是状态分布, 有 d μ T P μ = d μ T d_\mu^T P_\mu = d_\mu^T dμTPμ=dμT, d μ T 1 n = 1 d_\mu^T{\bf 1}_n=1 dμT1n=1
~

式 (10.22) 两边同乘 d μ T ⊗ I m d_\mu^T \otimes I_m dμT⊗Im
d μ T ⊗ I m ⊗ 1 n ⊗ ∇ θ r ˉ μ = d μ T ⊗ I m ⊗ u + d μ T ⊗ I m ⊗ ( P μ ⊗ I m ) ∇ θ v μ − d μ T ⊗ I m ⊗ ∇ θ v μ ∇ θ r ˉ μ = d μ T ⊗ I m u + d μ T ⊗ I m ∇ θ v μ − d μ T ⊗ I m ∇ θ v μ = d μ T ⊗ I m u = ∑ s ∈ S d μ ( s ) u ( s ) = ∑ s ∈ S d μ ( s ) ∇ θ μ ( s ) ( ∇ a q μ ( s , a ) ) ∣ a = μ ( s ) = E S ∼ d μ [ ∇ θ μ ( S ) ( ∇ a q μ ( S , a ) ) ∣ a = μ ( S ) ] \begin{aligned}d_\mu^T \otimes I_m\otimes {\bf 1}n \otimes \nabla\theta \bar r_\mu&=d_\mu^T \otimes I_m\otimes u+d_\mu^T \otimes I_m\otimes (P_\mu\otimes I_m)\nabla_\theta v_\mu-d_\mu^T \otimes I_m\otimes \nabla_\theta v_\mu\\ \nabla_\theta \bar r_\mu&=d_\mu^T \otimes I_m u+d_\mu^T \otimes I_m \nabla_\theta v_\mu-d_\mu^T \otimes I_m \nabla_\theta v_\mu\\ &=d_\mu^T \otimes I_m u\\ &=\sum\limits_{s\in {\cal S}}d_\mu(s)u(s)\\ &=\sum\limits_{s\in {\cal S}}d_\mu(s)\nabla_\theta \mu(s)(\nabla_a q_\mu(s,a))|{a=\mu(s)}\\ &={\mathbb E}{S\sim d_\mu}[\nabla_\theta \mu(S)(\nabla_a q_\mu (S,a))|_{a=\mu(S)}]\end{aligned} dμT⊗Im⊗1n⊗∇θrˉμ∇θrˉμ=dμT⊗Im⊗u+dμT⊗Im⊗(Pμ⊗Im)∇θvμ−dμT⊗Im⊗∇θvμ=dμT⊗Imu+dμT⊗Im∇θvμ−dμT⊗Im∇θvμ=dμT⊗Imu=s∈S∑dμ(s)u(s)=s∈S∑dμ(s)∇θμ(s)(∇aqμ(s,a))∣a=μ(s)=ES∼dμ[∇θμ(S)(∇aqμ(S,a))∣a=μ(S)]

10.4.2 算法描述

最大化 J ( θ ) J(\theta) J(θ) 的梯度上升算法

θ t + 1 = θ t + α θ E S ∼ η [ ∇ θ μ ( S ) ( ∇ a q μ ( S , a ) ) ∣ a = μ ( S ) ] \theta_{t+1}=\theta_t+\alpha \theta {\mathbb E}{S\sim \eta}[\nabla_\theta \mu(S)(\nabla_a q_\mu(S,a))|_{a=\mu(S)}] θt+1=θt+αθES∼η[∇θμ(S)(∇aqμ(S,a))∣a=μ(S)]

相应的随机梯度算法为: θ t + 1 = θ t + α θ ∇ θ μ ( s t ) ( ∇ a q μ ( s t , a ) ) ∣ a = μ ( s t ) \theta_{t+1}=\theta_t+\alpha_\theta \nabla_\theta\mu(s_t)(\nabla_a q_\mu(s_t,a))|_{a=\mu(s_t)} θt+1=θt+αθ∇θμ(st)(∇aqμ(st,a))∣a=μ(st)

必须特别注意为什么 critic 是异策略off-policy,但不需要重要性采样技术。

特别地,critic 需要的经验样本是 ( s t , a t , r t + 1 , s t + 1 , a ~ t + 1 ) (s_t, a_t, r_{t+1}, s_{t+1}, \tilde a_{t+1}) (st,at,rt+1,st+1,a~t+1),其中 a ~ t + 1 = μ ( s t + 1 ) \tilde a_{t+1}= μ(s_{t+1}) a~t+1=μ(st+1)。这个经验样本的生成涉及两个策略。第一个是用于在 s t s_t st 生成 a t a_t at 的策略 【行为策略, a t a_t at 用于和环境交互】,第二个是用于在 s t + 1 s_{t+1} st+1 生成 a ~ t + 1 \tilde a_{t+1} a~t+1 的策略 【目标策略 μ \mu μ,是 critic 拟评估的策略】。

应该注意的是, a ~ t + 1 \tilde a_{t+1} a~t+1 不用于与下一个时间步中的环境进行交互。因此, μ \mu μ 不是行为策略。因此,critic 是异策略off-policy

如何选择函数 q ( s , a , w ) q(s, a, w) q(s,a,w)? ------> 神经网络

提出确定性策略梯度方法的原始研究工作[74]采用线性函数 q ( s , a , w ) = ϕ T ( s , a ) w q(s, a, w) = \phi^T (s, a)w q(s,a,w)=ϕT(s,a)w,其中 ϕ ( s , a ) \phi(s,a) ϕ(s,a) 为特征向量。〔 DPG 〕

目前流行使用神经网络 表示 q ( s , a , w ) q(s, a, w) q(s,a,w),如深度确定性策略梯度(deep deterministic policy gradient, DDPG) 方法[75]。

如何选择行为策略 β \beta β?

它可以是任何探索性政策。它也可以是通过在 μ μ μ 中加入噪声得到的随机策略[75]。在这种情况下, μ μ μ 也是行为策略,因此这种方式是 同策略on-policy 的实现。

10.5 总结

最简单的 actor-critic 算法 QAC。该算法类似于上一章介绍的策略梯度算法------REINFORCE。唯一的区别是 QAC 中的 Q 值估计依赖于 TD 学习,而 REINFORCE 依赖于蒙特卡罗估计。

advantage actor-critic: 策略梯度对任何附加基线都是不变的。最优基线可以帮助减少估计方差

off-policy异策略: importance sampling重要性采样

SAC、TRPO、PPO、TD3

10.6 Q & A

1、actor-critic 和 策略梯度方法之间的关系是什么?

actor-critic 方法实际上是策略梯度方法。

在任何策略梯度算法中,都需要估计动作价值。当使用带有价值函数近似的时序差分学习( temporal-difference learning) 来估计动作价值时,这种策略梯度算法被称为 actor - critic。

"actor-critic" 这个名字突出了它的算法结构,它结合了策略更新和价值更新的组件。这个结构也是所有强化学习算法中使用的基本结构。

QAC + 基线技巧 减小 近似方差 = advantage actor-critic

Q:为什么确定性策略梯度方法是 off-policy?

A: 确定性情况下的真梯度不涉及动作随机变量

因此,当我们使用样本来近似真实梯度时,不需要对动作进行采样,因此可以使用任何策略。因此,确定性策略梯度方法是 off-policy。

〔 江湖 见 〕

相关推荐
HSunR18 分钟前
概率论 期末 笔记
笔记·概率论
红色的山茶花29 分钟前
YOLOv9-0.1部分代码阅读笔记-loss_tal.py
笔记·深度学习·yolo
车轮滚滚__2 小时前
uniapp对接unipush 1.0 ios/android
笔记
云边有个稻草人4 小时前
【优选算法】—复写零(双指针算法)
笔记·算法·双指针算法
冷眼看人间恩怨13 小时前
【Qt笔记】QDockWidget控件详解
c++·笔记·qt·qdockwidget
Hejjon18 小时前
SpringBoot 整合 SQLite 数据库
笔记
西洼工作室21 小时前
【java 正则表达式 笔记】
java·笔记·正则表达式
初学者7.21 小时前
Webpack学习笔记(2)
笔记·学习·webpack
新手上路狂踩坑1 天前
Android Studio的笔记--BusyBox相关
android·linux·笔记·android studio·busybox
stm 学习ing1 天前
HDLBits训练3
c语言·经验分享·笔记·算法·fpga·eda·verilog hdl