【RL】Policy Gradient Methods(策略梯度方法)

Lecture 9: Policy Gradient Methods

Basic idea of policy gradient

之前,policy是用表格表示的:

所有state的action概率都存储在表 π ( a ∣ s ) \pi(a|s) π(as)中。 表的每个条目都由state和action索引。

在这里插入图片描述

因此可以直接访问或更改表中的值。

现在,policy可以用参数化函数来表示:
π ( a ∣ s , θ ) \pi(a |s, \theta) π(as,θ)
其中, θ ∈ R m \theta \in \mathbb{R}^m θRm是参数向量。

例如,该函数可以是一个神经网络,其输入是 s s s,输出是采取每个动作的概率,参数是 θ \theta θ

优势:当state空间较大时,表格表示在存储和泛化方面效率较低。

函数表示有时也写为 π ( a , s , θ ) \pi(a, s, \theta) π(a,s,θ) π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ(as) π θ ( a , s ) \pi_\theta(a, s) πθ(a,s)

表格表示和函数表示之间的差异

最优policy的定义:

当表示为表格时,如果policy π \pi π 可以最大化每个 state value,则该policy π \pi π 是最优的。

当用函数表示时,如果policy π \pi π 可以最大化某些标量指标,则该policy π \pi π 是最优的。

获取action的概率:

在表格情况下,可以通过查找表格 policy 来直接获取在 s s s 处取 a a a 的概率。

在函数表示的情况下,需要在给定函数结构和参数的情况下计算 π ( a ∣ s , θ ) \pi(a|s, \theta) π(as,θ) 的值。

更新policy的方法:

当用表格表示时,可以通过直接更改表中的条目来更新 policy π \pi π

当用参数化函数表示时,policy π \pi π 不能再以这种方式更新。 相反,它只能通过改变参数 θ \theta θ 来更新。

策略梯度的基本思想:

第一,定义最优 policy 的标准(或目标函数): J ( θ ) J(\theta) J(θ),其可以定义最优policy。

第二,基于梯度的优化算法来搜索最优policy
θ t + 1 = θ t + α ∇ θ J ( θ t ) \theta_{t+1}=\theta_t+\alpha\nabla_\theta J(\theta_t) θt+1=θt+αθJ(θt)

Metrics to define optimal policies

有两个指标。

第一个指标是平均 state value 或简称为平均值。 特别地,该度量定义为:
v ˉ π = ∑ s ∈ S d ( s ) v π ( s ) \bar{v}_{\pi}=\sum_{s\in\mathcal{S}}d(s)v_{\pi}(s) vˉπ=sSd(s)vπ(s)

  • v ˉ π \bar{v}_\pi vˉπ 是state value的加权平均值。

  • d ( s ) ≥ 0 d(s) \ge 0 d(s)0 是状态 s s s 的权重。

  • 由于 ∑ s ∈ S d ( s ) = 1 \sum_{s\in\mathcal{S}}d(s)=1 sSd(s)=1,可以将 d ( s ) d(s) d(s) 解释为概率分布。 那么,指标可以写为:
    v ˉ π = E [ v π ( S ) ] \bar{v}_\pi=\mathbb{E}[v_\pi(S)] vˉπ=E[vπ(S)]
    其中: S ∼ d S \sim d Sd

Vector-product form:
v ˉ π = ∑ s ∈ S d ( s ) v π ( s ) = d T v π \bar{v}_{\pi}=\sum_{s\in\mathcal{S}}d(s)v_{\pi}(s)=d^{T}v_{\pi} vˉπ=sSd(s)vπ(s)=dTvπ
其中:
v π = [ … , v π ( s ) , … ] T ∈ R ∣ S ∣ d = [ … , d ( s ) , … ] T ∈ R ∣ S ∣ \begin{aligned}v_\pi&=[\ldots,v_\pi(s),\ldots]^T\in\mathbb{R}^{|\mathcal{S}|}\\d&=[\ldots,d(s),\ldots]^T\in\mathbb{R}^{|\mathcal{S}|}\end{aligned} vπd=[,vπ(s),]TRS=[,d(s),]TRS
关于选择分布 d d d,有两个方式:

第一种情况是 d d d 与policy π \pi π 无关。

这种情况相对简单,因为指标的梯度更容易计算。

在这种情况下,具体将 d d d 表示为 d 0 d_0 d0,将 v ˉ π \bar{v}_{\pi} vˉπ 表示为 v ˉ π 0 \bar{v}_{\pi}^0 vˉπ0

关于 d 0 d_0 d0 的选择:

一种简单的方法是将所有 state 同等重要,因此选择 d 0 ( s ) = 1 / ∣ S ∣ . d_0(s)=1/|\mathcal{S}|. d0(s)=1/∣S∣.

该方法有一个特例是只对特定的state s 0 s_0 s0 感兴趣。 例如,某些任务中的情节总是从相同的state s 0 s_0 s0 开始。 那么,只关心从 s 0 s_0 s0开始的长期回报。 在这种情况下,
d 0 ( s 0 ) = 1 , d 0 ( s ≠ s 0 ) = 0. d_0(s_0)=1,\quad d_0(s\neq s_0)=0. d0(s0)=1,d0(s=s0)=0.
第二种情况是 d d d 取决于policy π \pi π

一种常用的方法是选择 d d d 作为 d π ( s ) d_{\pi}(s) dπ(s),它是 π \pi π 下的平稳分布。

选择 d π d_{\pi} dπ 的解释如下。

  • 如果一个 state 从长远来看被频繁访问,那么它就更重要,值得更多重视。
  • 如果一个 state 很少被访问,那么给予它的权重较小。

第二个指标是平均一步 reward 或简单的平均 reward。
r ˉ π ≐ ∑ s ∈ S d π ( s ) r π ( s ) = E [ r π ( S ) ] , \bar{r}_\pi\doteq\sum_{s\in\mathcal{S}}d_\pi(s)r_\pi(s)=\mathbb{E}[r_\pi(S)], rˉπsSdπ(s)rπ(s)=E[rπ(S)],
其中, S ∼ d π S \sim d_{\pi} Sdπ
r π ( s ) ≐ ∑ a ∈ A π ( a ∣ s ) r ( s , a ) r_\pi(s)\doteq\sum_{a\in\mathcal{A}}\pi(a|s)r(s,a) rπ(s)aAπ(as)r(s,a)
权重 d π d_{\pi} dπ 是平稳分布。

r ˉ π \bar{r}_{\pi} rˉπ 只是一步即时reward的加权平均值。

一种等效定义!

假设 agent 遵循给定的 policy 并生成 reward 为 ( R t + 1 , R t + 2 , ⋯   ) (R_{t+1}, R_{t+2}, \cdots) (Rt+1,Rt+2,) 的轨迹。

沿着这条trajectory 的平均单步 reward 是:
lim ⁡ n → ∞ 1 n E [ R t + 1 + R t + 2 + ⋯ + R t + n ∣ S t = s 0 ] = lim ⁡ n → ∞ 1 n E [ ∑ k = 1 n R t + k ∣ S t = s 0 ] \begin{aligned} &\lim_{n\to\infty}\frac1n\mathbb{E}\Big[R_{t+1}+R_{t+2}+\cdots+R_{t+n}|S_t=s_0\Big] \\ &=\lim_{n\to\infty}\frac1n\mathbb{E}\left[\sum_{k=1}^nR_{t+k}|S_t=s_0\right] \end{aligned} nlimn1E[Rt+1+Rt+2++Rt+nSt=s0]=nlimn1E[k=1nRt+kSt=s0]
其中 s 0 s_0 s0 是 trajectory 的起始 state。

一个重要的属性是:
lim ⁡ n → ∞ 1 n E [ ∑ k = 1 n R t + k ∣ S t = s 0 ] = lim ⁡ n → ∞ 1 n E [ ∑ k = 1 n R t + k ] = ∑ s d π ( s ) r π ( s ) = r ˉ π \begin{aligned} \begin{aligned}\lim_{n\to\infty}\frac{1}{n}\mathbb{E}\left[\sum_{k=1}^nR_{t+k}|S_t=s_0\right]\end{aligned}& \begin{aligned}=\lim_{n\to\infty}\frac{1}{n}\mathbb{E}\left[\sum_{k=1}^{n}R_{t+k}\right]\end{aligned} \\ &=\sum_sd_\pi(s)r_\pi(s) \\ &=\bar{r}_{\pi} \end{aligned} nlimn1E[k=1nRt+kSt=s0]=nlimn1E[k=1nRt+k]=sdπ(s)rπ(s)=rˉπ

  • 起始state s 0 s_0 s0 并不重要。
  • r ˉ π \bar{r}_{\pi} rˉπ 的两个定义是等价的。

关于指标的备注 1

  • 所有这些指标都是 π \pi π 的函数。
  • 由于 π \pi π θ \theta θ 参数化,因此这些指标是 θ \theta θ 的函数。
  • 不同的 θ \theta θ 值可以生成不同的指标值。
  • 可以搜索 θ \theta θ 的最佳值来最大化这些指标。

关于指标的备注 2

  • 度量可以在 γ ∈ ( 0 , 1 ) \gamma \in (0, 1) γ(0,1) 的discounted情况下定义,也可以在 γ = 1 \gamma = 1 γ=1 的undiscounted情况下定义。

关于指标的备注 3

  • 直观上, r ˉ π \bar{r}_{\pi} rˉπ 更加短视,因为它只考虑即时reward,而 v ˉ π \bar{v}_\pi vˉπ 则考虑整体步骤的总reward。

  • 然而,这两个指标是等效的。 在 γ ∈ ( 0 , 1 ) \gamma \in (0, 1) γ(0,1) 的 discounted 情况下,有:
    r ˉ π = ( 1 − γ ) v ˉ π \bar{r}_\pi=(1-\gamma)\bar{v}_\pi rˉπ=(1γ)vˉπ

Excise:

在文献中会经常看到以下指标:
J ( θ ) = E [ ∑ t = 0 ∞ γ t R t + 1 ] J(\theta)=\mathbb{E}\left[\sum_{t=0}^\infty\gamma^tR_{t+1}\right] J(θ)=E[t=0γtRt+1]
S 0 ∼ d S_0 \sim d S0d 开始,然后是 A 0 A_0 A0, R 1 R_1 R1, S 1 S_1 S1, A 1 A_1 A1, R 2 R_2 R2, S 2 S_2 S2 ⋯ \cdots

A t ∼ π ( S t ) A_t\sim\pi(S_t) Atπ(St) 并且 R t + 1 , S t + 1 ∼ p ( R t + 1 ∣ S t , A t ) , p ( S t + 1 ∣ S t , A t ) R_{t+1},S_{t+1}\sim p(R_{t+1}|S_t,A_t),p(S_{t+1}|S_t,A_t) Rt+1,St+1p(Rt+1St,At),p(St+1St,At)

因为这个指标与平均值相同,因为:
J ( θ ) = E [ ∑ t = 0 ∞ γ t R t + 1 ] = ∑ s ∈ S d ( s ) E [ ∑ t = 0 ∞ γ t R t + 1 ∣ S 0 = s ] = ∑ s ∈ S d ( s ) v π ( s ) = v ˉ π \begin{aligned} \begin{aligned}J(\theta)=\mathbb{E}\left[\sum_{t=0}^\infty\gamma^tR_{t+1}\right]\end{aligned}& =\sum_{s\in\mathcal{S}}d(s)\mathbb{E}\left[\sum_{t=0}^\infty\gamma^tR_{t+1}|S_0=s\right] \\ &=\sum_{s\in\mathcal{S}}d(s)v_{\pi}(s) \\ &=\bar{v}_{\pi} \end{aligned} J(θ)=E[t=0γtRt+1]=sSd(s)E[t=0γtRt+1S0=s]=sSd(s)vπ(s)=vˉπ

Gradients of the metrics

给定一个指标,接下来

  • 导出其梯度
  • 然后,应用基于梯度的方法来优化指标。

梯度计算是 policy 梯度方法中最复杂的部分之一! 那是因为

  • 首先,需要区分不同的度量 v ˉ π \bar{v}_{\pi} vˉπ r ˉ π \bar{r}_{\pi} rˉπ v ˉ π 0 \bar{v}_{\pi}^0 vˉπ0

其次,需要区分 discounted 和 undiscounted 的情况。

关于梯度的结果总结:
∇ θ J ( θ ) = ∑ s ∈ S η ( s ) ∑ a ∈ A ∇ θ π ( a ∣ s , θ ) q π ( s , a ) \nabla_\theta J(\theta)=\sum_{s\in\mathcal{S}}\eta(s)\sum_{a\in\mathcal{A}}\nabla_\theta\pi(a|s,\theta)q_\pi(s,a) θJ(θ)=sSη(s)aAθπ(as,θ)qπ(s,a)
其中:

  • J ( θ ) J(\theta) J(θ)可以是 v ˉ π \bar{v}_{\pi} vˉπ r ˉ π \bar{r}_{\pi} rˉπ v ˉ π 0 \bar{v}_{\pi}^0 vˉπ0
  • “=” 可以表示严格相等、近似或成比例。
  • η \eta η 是 state 的分布或权重。

一些具体结果:
∇ θ r ˉ π ≃ ∑ s d π ( s ) ∑ a ∇ θ π ( a ∣ s , θ ) q π ( s , a ) , \nabla_\theta\bar{r}_\pi\simeq\sum_sd_\pi(s)\sum_a\nabla_\theta\pi(a|s,\theta)q_\pi(s,a), θrˉπsdπ(s)aθπ(as,θ)qπ(s,a),

∇ θ v ˉ π = 1 1 − γ ∇ θ r ˉ π \nabla_\theta\bar{v}_\pi=\frac1{1-\gamma}\nabla_\theta\bar{r}_\pi θvˉπ=1γ1θrˉπ

∇ θ v ˉ π 0 = ∑ s ∈ S ρ π ( s ) ∑ a ∈ A ∇ θ π ( a ∣ s , θ ) q π ( s , a ) \nabla_\theta\bar{v}_\pi^0=\sum_{s\in\mathcal{S}}\rho_\pi(s)\sum_{a\in\mathcal{A}}\nabla_\theta\pi(a|s,\theta)q_\pi(s,a) θvˉπ0=sSρπ(s)aAθπ(as,θ)qπ(s,a)

一种紧凑且有用的梯度形式:
∇ θ J ( θ ) = ∑ s ∈ S η ( s ) ∑ a ∈ A ∇ θ π ( a ∣ s , θ ) q π ( s , a ) = E [ ∇ θ ln ⁡ π ( A ∣ S , θ ) q π ( S , A ) ] \begin{aligned}\nabla_\theta J(\theta)&=\sum_{s\in\mathcal{S}}\eta(s)\sum_{a\in\mathcal{A}}\nabla_\theta\pi(a|s,\theta)q_\pi(s,a)\\&=\mathbb{E}\big[\nabla_\theta\ln\pi(A|S,\theta)q_\pi(S,A)\big]\end{aligned} θJ(θ)=sSη(s)aAθπ(as,θ)qπ(s,a)=E[θlnπ(AS,θ)qπ(S,A)]
其中, S ∼ η S \sim \eta Sη A ∼ π ( A ∣ S , θ ) A \sim \pi (A| S, \theta) Aπ(AS,θ)

Why is this expression useful?

可以用样本来近似梯度。
∇ θ J ≈ ∇ θ ln ⁡ π ( a ∣ s , θ ) q π ( s , a ) \nabla_\theta J\approx\nabla_\theta\ln\pi(a|s,\theta)q_\pi(s,a) θJθlnπ(as,θ)qπ(s,a)

∇ θ J ( θ ) = ∑ s ∈ S η ( s ) ∑ a ∈ A ∇ θ π ( a ∣ s , θ ) q π ( s , a ) = E [ ∇ θ ln ⁡ π ( A ∣ S , θ ) q π ( S , A ) ] \begin{aligned}{\nabla_\theta J(\theta)}&=\sum_{s\in\mathcal{S}}\eta(s)\sum_{a\in\mathcal{A}}\nabla_\theta\pi(a|s,\theta)q_\pi(s,a)\\&=\mathbb{E}{\left[\nabla_\theta\ln\pi(A|S,\theta)q_\pi(S,A)\right]}\end{aligned} θJ(θ)=sSη(s)aAθπ(as,θ)qπ(s,a)=E[θlnπ(AS,θ)qπ(S,A)]

How to prove the above equation?

考虑函数 l n π ln \pi l,其中 l n ln ln是自然对数。 很容易看出:
∇ θ ln ⁡ π ( a ∣ s , θ ) = ∇ θ π ( a ∣ s , θ ) π ( a ∣ s , θ ) \nabla_\theta\ln\pi(a|s,\theta)=\frac{\nabla_\theta\pi(a|s,\theta)}{\pi(a|s,\theta)} θlnπ(as,θ)=π(as,θ)θπ(as,θ)
因此:
∇ θ π ( a ∣ s , θ ) = π ( a ∣ s , θ ) ∇ θ ln ⁡ π ( a ∣ s , θ ) . \nabla_\theta\pi(a|s,\theta)=\pi(a|s,\theta)\nabla_\theta\ln\pi(a|s,\theta). θπ(as,θ)=π(as,θ)θlnπ(as,θ).
因此,可得:
∇ θ J = ∑ s d ( s ) ∑ a ∇ θ π ( a ∣ s , θ ) q π ( s , a ) = ∑ s d ( s ) ∑ a π ( a ∣ s , θ ) ∇ θ ln ⁡ π ( a ∣ s , θ ) q π ( s , a ) = E S ∼ d [ ∑ a π ( a ∣ S , θ ) ∇ θ ln ⁡ π ( a ∣ S , θ ) q π ( S , a ) ] = E S ∼ d , A ∼ π [ ∇ θ ln ⁡ π ( A ∣ S , θ ) q π ( S , A ) ] ≐ E [ ∇ θ ln ⁡ π ( A ∣ S , θ ) q π ( S , A ) ] \begin{aligned} \nabla_{\theta}J& \begin{aligned}&=\sum_sd(s)\sum_a{\nabla_\theta\pi(a|s,\theta)}q_\pi(s,a)\end{aligned} \\ &=\sum_sd(s)\sum_a\pi(a|s,\theta)\nabla_\theta\ln\pi(a|s,\theta)q_\pi(s,a) \\ &=\mathbb{E}_{{S\sim d}}\left[\sum_a\pi(a|S,\theta)\nabla_\theta\ln\pi(a|S,\theta)q_\pi(S,a)\right] \\ &=\mathbb{E}_{S\sim d,{A}\sim\pi}\begin{bmatrix}\nabla_\theta\ln\pi(A|S,\theta)q_\pi(S,A)\end{bmatrix} \\ &\doteq\mathbb{E}\big[\nabla_\theta\ln\pi(A|S,\theta)q_\pi(S,A)\big] \end{aligned} θJ=sd(s)aθπ(as,θ)qπ(s,a)=sd(s)aπ(as,θ)θlnπ(as,θ)qπ(s,a)=ESd[aπ(aS,θ)θlnπ(aS,θ)qπ(S,a)]=ESd,Aπ[θlnπ(AS,θ)qπ(S,A)]E[θlnπ(AS,θ)qπ(S,A)]
因为需要计算 l n π ( a ∣ s , θ ln π(a|s, \theta l(as,θ),所以我们必须保证对于所有 s s s, a a a, θ \theta θ
π ( a ∣ s , θ ) > 0 \pi(a|s,\theta)>0 π(as,θ)>0
这可以通过使用 softmax 函数来处理,该函数可以将向量中的条目从 ( − ∞ , + ∞ ) (− \infty, + \infty) (,+)标准化为 ( 0 , 1 ) (0, 1) (0,1)

例如,对于任何向量 x = [ x 1 , ⋯   , x n ] T x = [x_1, \cdots , x_n]^T x=[x1,,xn]T,有:
z i = e x i ∑ j = 1 n e x j z_i=\frac{e^{x_i}}{\sum_{j=1}^ne^{x_j}} zi=j=1nexjexi
其中, z i ∈ ( 0 , 1 ) z_i \in (0, 1) zi(0,1) 并且 ∑ i = 1 n z i = 1 \sum_{i=1}^nz_i=1 i=1nzi=1

policy 函数的形式为:
π ( a ∣ s , θ ) = e h ( s , a , θ ) ∑ a ′ ∈ A e h ( s , a ′ , θ ) , \pi(a|s,\theta)=\frac{e^{h(s,a,\theta)}}{\sum_{a^{\prime}\in\mathcal{A}}e^{h(s,a^{\prime},\theta)}}, π(as,θ)=aAeh(s,a,θ)eh(s,a,θ),
其中, h ( s , a , θ ) h(s, a, \theta) h(s,a,θ)是其他函数。

这种基于 softmax 函数的形式可以通过输入为 s s s、参数为 θ \theta θ 的神经网络来实现。 网络有 ∣ A ∣ |\mathcal{A}| A 输出,每个输出对应于动作 a a a π ( a ∣ s , θ ) \pi(a|s, \theta) π(as,θ)。 输出层的激活函数应该是 softmax。

由于对于所有 a a a π ( a ∣ s , θ ) > 0 \pi(a|s, \theta) > 0 π(as,θ)>0,因此参数化策略是随机的,因此具有探索性。

还存在确定性 policy 梯度(DPG)方法。

Gradient-ascent algorithm (REINFORCE)

第一个策略梯度算法来寻找最优策略:

最大化 J ( θ ) J(\theta) J(θ) 的梯度上升算法为:
θ t + 1 = θ t + α ∇ θ J ( θ ) = θ t + α E [ ∇ θ ln ⁡ π ( A ∣ S , θ t ) q π ( S , A ) ] \begin{aligned} \theta_{t+1}& =\theta_t+\alpha\nabla_\theta J(\theta) \\ &=\theta_t+\alpha\mathbb{E}\bigg[\nabla_\theta\ln\pi(A|S,\theta_t)q_\pi(S,A)\bigg] \end{aligned} θt+1=θt+αθJ(θ)=θt+αE[θlnπ(AS,θt)qπ(S,A)]
真实梯度可以用随机梯度代替:
θ t + 1 = θ t + α ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) q π ( s t , a t ) \theta_{t+1}=\theta_t+\alpha\nabla_\theta\ln\pi(a_t|s_t,\theta_t)q_\pi(s_t,a_t) θt+1=θt+αθlnπ(atst,θt)qπ(st,at)
此外,由于 q π q_{\pi} qπ 未知,因此可以近似:
θ t + 1 = θ t + α ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) q t ( s t , a t ) \theta_{t+1}=\theta_t+\alpha\nabla_\theta\ln\pi(a_t|s_t,\theta_t){q_t(s_t,a_t)} θt+1=θt+αθlnπ(atst,θt)qt(st,at)
How to do sampling?
E S ∼ d , A ∼ π [ ∇ θ ln ⁡ π ( A ∣ S , θ t ) q π ( S , A ) ] ⟶ ∇ θ ln ⁡ π ( a ∣ s , θ t ) q π ( s , a ) \mathbb{E}_{{S\sim d,A\sim}\pi}\left[\nabla_\theta\ln\pi(A|S,\theta_t)q_\pi(S,A)\right]\longrightarrow\nabla_\theta\ln\pi(a|s,\theta_t)q_\pi(s,a) ESd,Aπ[θlnπ(AS,θt)qπ(S,A)]θlnπ(as,θt)qπ(s,a)
S S S 的采样: S ∼ d S \sim d Sd,其中分布 d d d π \pi π 下的长期行为。

A A A 的采样: A ∼ π ( A ∣ S , θ ) A \sim \pi(A|S, \theta) Aπ(AS,θ)。 因此, a t a_t at 应该在 s t s_t st 处的 π ( θ t ) \pi(θ_t) π(θt) 之后进行采样。

因此,策略梯度方法是on-policy的。

How to interpret this algorithm?

因为:
∇ θ ln ⁡ π ( a t ∣ s t , θ t ) = ∇ θ π ( a t ∣ s t , θ t ) π ( a t ∣ s t , θ t ) \nabla_\theta\ln\pi(a_t|s_t,\theta_t)=\frac{\nabla_\theta\pi(a_t|s_t,\theta_t)}{\pi(a_t|s_t,\theta_t)} θlnπ(atst,θt)=π(atst,θt)θπ(atst,θt)
因此,算法可以写为:
θ t + 1 = θ t + α ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) q t ( s t , a t ) = θ t + α ( q t ( s t , a t ) π ( a t ∣ s t , θ t ) ) ⏟ β t ∇ θ π ( a t ∣ s t , θ t ) . \begin{aligned} \theta_{t+1}& \begin{aligned}=\theta_t+\alpha\nabla_\theta\ln\pi(a_t|s_t,\theta_t)q_t(s_t,a_t)\end{aligned} \\ &=\theta_t+\alpha\underbrace{\left(\frac{q_t(s_t,a_t)}{\pi(a_t|s_t,\theta_t)}\right)}_{\beta_t}\nabla_\theta\pi(a_t|s_t,\theta_t). \end{aligned} θt+1=θt+αθlnπ(atst,θt)qt(st,at)=θt+αβt (π(atst,θt)qt(st,at))θπ(atst,θt).
因此,有算法的重要表达式:
θ t + 1 = θ t + α β t ∇ θ π ( a t ∣ s t , θ t ) \theta_{t+1}=\theta_t+\alpha\beta_t\nabla_\theta\pi(a_t|s_t,\theta_t) θt+1=θt+αβtθπ(atst,θt)
它是一种最大化 π ( a t ∣ s t , θ ) \pi(a_t|s_t, \theta) π(atst,θ) 的梯度上升算法:
θ t + 1 = θ t + α β t ∇ θ π ( a t ∣ s t , θ t ) \theta_{t+1}=\theta_t+\alpha\beta_t\nabla_\theta\pi(a_t|s_t,\theta_t) θt+1=θt+αβtθπ(atst,θt)
α β t \alpha \beta_t αβt足够小时:

如果 β t > 0 \beta_t > 0 βt>0,选择 ( s t , a t ) (s_t, a_t) (st,at) 的概率就会增强:
π ( a t ∣ s t , θ t + 1 ) > π ( a t ∣ s t , θ t ) \pi(a_t|s_t,\theta_{t+1})>\pi(a_t|s_t,\theta_t) π(atst,θt+1)>π(atst,θt)
β t \beta_t βt越大,增强作用越强。

如果 β t < 0 \beta_t < 0 βt<0,则 π ( a t ∣ s t , θ t + 1 ) < π ( a t ∣ s t , θ t ) \pi_(a_t|s_t, \theta_{t+1}) < \pi(a_t|s_t, \theta_t) π(atst,θt+1)<π(atst,θt)

θ t + 1 − θ t \theta_{t+1} − \theta_t θt+1θt 足够小时,有:
π ( a t ∣ s t , θ t + 1 ) ≈ π ( a t ∣ s t , θ t ) + ( ∇ θ π ( a t ∣ s t , θ t ) ) T ( θ t + 1 − θ t ) = π ( a t ∣ s t , θ t ) + α β t ( ∇ θ π ( a t ∣ s t , θ t ) ) T ( ∇ θ π ( a t ∣ s t , θ t ) ) = π ( a t ∣ s t , θ t ) + α β t ∥ ∇ θ π ( a t ∣ s t , θ t ) ∥ 2 \begin{aligned} \pi(a_t|s_t,\theta_{t+1})& \approx\pi(a_t|s_t,{\theta_t})+(\nabla_\theta\pi(a_t|s_t,{\theta_t}))^T({\theta_{t+1}-\theta_t}) \\ &=\pi(a_t|s_t,{\theta_t})+\alpha\beta_t(\nabla_\theta\pi(a_t|s_t,\theta_t))^T(\nabla_\theta\pi(a_t|s_t,\theta_t)) \\ &=\pi(a_t|s_t,{\theta_t})+\alpha\beta_t\|\nabla_\theta\pi(a_t|s_t,\theta_t)\|^2 \end{aligned} π(atst,θt+1)π(atst,θt)+(θπ(atst,θt))T(θt+1θt)=π(atst,θt)+αβt(θπ(atst,θt))T(θπ(atst,θt))=π(atst,θt)+αβtθπ(atst,θt)2

θ t + 1 = θ t + α ( q t ( s t , a t ) π ( a t ∣ s t , θ t ) ) ⏟ β t ∇ θ π ( a t ∣ s t , θ t ) \theta_{t+1}=\theta_t+\alpha\underbrace{\left({\frac{q_t(s_t,a_t)}{\pi(a_t|s_t,\theta_t)}}\right)}_{\beta_t}\nabla_\theta\pi(a_t|s_t,\theta_t) θt+1=θt+αβt (π(atst,θt)qt(st,at))θπ(atst,θt)

系数 η t \eta_t ηt可以很好地平衡勘探 exploration 和开采 exploitation。

首先, η t \eta_t ηt q t ( s t , a t ) q_t(s_t, a_t) qt(st,at) 成正比

  • 如果 q t ( s t , a t ) q_t(s_t, a_t) qt(st,at) 很大,则 β t \beta_t βt 也很大。
  • 因此,算法旨在增强具有更大价值的action。

其次, β t \beta_t βt π ( a t ∣ s t , θ t ) \pi(a_t|s_t, \theta_t) π(atst,θt) 成反比。

  • 如果 π ( a t ∣ s t , θ t ) \pi(a_t|s_t, \theta_t) π(atst,θt) 较小,则 β t \beta_t βt 较大。
  • 因此,算法旨在探索概率较低的action。

因此,
θ t + 1 = θ t + α ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) q π ( s t , a t ) \theta_{t+1}=\theta_t+\alpha\nabla_\theta\ln\pi(a_t|s_t,\theta_t)q_\pi(s_t,a_t) θt+1=θt+αθlnπ(atst,θt)qπ(st,at)
被替换为:
θ t + 1 = θ t + α ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) q t ( s t , a t ) \theta_{t+1}=\theta_t+\alpha\nabla_\theta\ln\pi(a_t|s_t,\theta_t)q_t(s_t,a_t) θt+1=θt+αθlnπ(atst,θt)qt(st,at)
其中, q t ( s t , a t ) q_t(s_t, a_t) qt(st,at) q π ( s t , a t ) q_{\pi}(s_t, a_t) qπ(st,at) 的近似值。

  • 如果 q π ( s t , a t ) q_{\pi}(s_t, a_t) qπ(st,at) 通过Monte Carlo 估计来近似,则该算法有一个具体名称:REINFORCE。
  • REINFORCE 是最早、最简单的策略梯度算法之一。
  • 许多其他策略梯度算法(例如 actor-critic 方法)可以通过扩展 REINFORCE 来获得。

在这里插入图片描述

Summary

Contents of this lecture:

  • Metrics for optimality
  • Gradients of the metrics
  • Gradient-ascent algorithm
  • A special case: REINFORCE




以上内容为B站西湖大学智能无人系统 强化学习的数学原理 公开课笔记。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/399855.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

药物检测设备行业分析:市场年均复合增长速度为14.04%

在制药行业中&#xff0c;质量检验检测过程尤为重要。因为药品质量关系到人们的身体健康&#xff0c;如何控制好药品的质量安全&#xff0c;做好药品生产管理过程中的质量风险管理工作&#xff0c;是药品生产企业面临的重要问题。 为保证做好药品质量、安全方面的控制&#xff…

☀️将大华摄像头画面接入Unity 【1】配置硬件和初始化摄像头

一、硬件准备 目前的设想是后期采用网口供电的形式把画面传出来&#xff0c;所以这边我除了大华摄像头还准备了POE供电交换机&#xff0c;为了方便索性都用大华的了&#xff0c;然后全都连接电脑主机即可。 二、软件准备 这边初始化摄像头需要用到大华的Configtool软件&#…

ipad作为扩展屏的最简单方式(无需数据线)

ipad和win都下载安装toDesk&#xff0c;并且都处于同一局域网下 连接ipad&#xff0c;在ipad中输入win设备的设备密码和临时密码&#xff0c;连接上后可以看到ipad会是win屏幕的镜像&#xff0c;此时退出连接&#xff0c;准备以扩展模式再次连接。 注意&#xff0c;如果直接从…

#gStore-weekly | gMaster功能详解之数据库管理

gMaster提供了数据库管理功能。该功能可以对集群中的数据库进行集中管理&#xff0c;可以查看各个数据库详细信息。能够方便的对数据库进行新建、构建、导出、备份、还原、删除操作。 登录gMaster&#xff0c;点击左侧菜单【数据库】下的【数据库管理】&#xff0c;进入数据库…

数据脱敏(六)脱敏算法-加密算法

脱敏算法篇使用阿里云数据脱敏算法为模板,使用算子平台快速搭建流程来展示数据 "加密脱敏"是一种数据处理技术&#xff0c;主要用于保护个人隐私和数据安全。它通过将敏感信息&#xff08;如姓名、身份证号、电话号码等&#xff09;进行加密处理&#xff0c;使其无法…

linux 系统的目录结构

为什么某些执行程序位于/bin、/sbin、/usr/bin或/usr/sbin目录下&#xff1f;例如&#xff0c;less命令位于/usr/bin目录下。为什么不是/bin、/sbin或/usr/sbin&#xff1f;这些目录之间有什么区别呢&#xff1f; 在这篇文章中&#xff0c;让我们主要讲述一下Linux文件系统结构…

【前端】前端三要素之JavsScript基础

写在前面&#xff1a;本文仅包含JavaScript内容&#xff0c;DOM知识传送门在这里&#xff0c;BOM传送门在这里。 本文内容是假期中刷的黑马Pink老师视频&#xff08;十分感谢Pink老师&#xff09;&#xff0c;原文保存在个人的GitLab中&#xff0c;如果需要写的网页内容信息等可…

【Java EE初阶二十二】https的简单理解

1. 初识https 当前网络上,主要都是 HTTPS 了,很少能见到 HTTP.实际上 HTTPS 也是基于 HTTP.只不过 HTTPS 在 HTTP 的基础之上, 引入了"加密"机制&#xff1b;引入 HTTPS 防止你的数据被黑客篡改 &#xff1b; HTTPS 就是一个重要的保护措施.之所以能够安全, 最关键的…

AI人工智能写作,这5款AI软件帮你解决写作难题

在如今这个信息爆炸的时代&#xff0c;写作已经成为我们生活和工作中必不可少的一部分。但是&#xff0c;对于很多人来说&#xff0c;写作可能是一件挺费劲的事情&#xff0c;需要花费很多时间和精力。不过&#xff0c;幸运的是&#xff0c;随着人工智能技术的不断进步&#xf…

【2024软件测试面试必会技能】Selenium(5):元素定位的介绍及使用

Selenium元素定位介绍&#xff1a; 元素的定位和操作是自动化测试的核心部分&#xff0c;其中操作又是建立在定位的基础上的&#xff0c;举例&#xff1a;一个对象就是一个人&#xff0c;我们可以通过身份证号、姓名或者他的住址找到这个人。那么一个web对象也是一样的&#xf…

声反射是如何保护内耳的?

声反射是如何保护内耳的&#xff1f; 反射是人和动物通过中枢神经系统对刺激所产生的规律性反应。 在人耳中也同样存在这样一种反射&#xff0c;叫做“声反射”。当人耳受到足够强度的声刺激时&#xff0c;双耳镫骨肌发生反射性收缩&#xff0c;这就是声反射&#xff0c;又称镫…

Vue3_基础使用_3

今天主要学习的是hooks, vue3的使用比vue2方便很多了&#xff0c;但是呢各个功能块的逻辑有时候还是会缠绕在一起&#xff0c;这个时候使用hooks进行模块化管理开发&#xff0c;说白了就是将每个单独的业务放到自己的.ts中去写&#xff0c;以后修改就找到这个ts 不用到处去翻…

5.【架构师成长之路】职场新人:如何快速变得专业(下)

文章目录 导言一、凡事不苟且二、心态要开放1、勇于承担各种事2、别害怕犯错 本文总结说明 导言 上一篇文章我们讲了&#xff0c;作为新人最重要的事情就是“快速变得专业”。 我们先自问自答了一个问题&#xff1a;“新人为何要快速变得专业&#xff1f;新人难道不能就循序渐…

科技快讯:鸿道Intewell操作系统突破国际垄断,引领工控新革命

科东软件Intewell鸿道工业操作系统&#xff0c;已在多种严苛环境下运行检验&#xff0c;并应用于工业控制、智能制造、汽车电子、轨道交通、能源电力、航天航空等实时性要求极高的领域&#xff0c;历经30年的不懈努力和研发迭代&#xff0c;在功能和性能上可以替代风和VxWorks操…

【论文阅读】【yolo系列】YOLO-Pose的论文阅读

Abstract 我们介绍YOLO-pose&#xff0c;一种无热图联合检测的新方法&#xff0c;基于流行的YOLO目标检测框架的图像二维多人姿态估计。 【现有方法的问题】现有的基于热图的两阶段方法是次优的&#xff0c;因为它们不是端到端可训练的&#xff0c;训练依赖于surrogate L1 loss…

【JVM】计数器引用和可达性分析

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;JVM ⛺️稳中求进&#xff0c;晒太阳 C/C的内存管理 在C/C这类没有自动垃圾回收机制的语言中&#xff0c;一个对象如果不再使用&#xff0c;需要手动释放&#xff0c;否则就会出现内存泄漏…

常见消息中间件分享

文章目录 概念核心角色作用&使用场景应用解耦异步通信削峰填谷大数据流处理 使用模型点对点模型发布-订阅模型 常见消息中间件介绍一、kafka二、RabbitMQ三、RocketMQ 比较一、Kafka如何实现高吞吐量二、RocketMQ如何实现事务消息 概念 消息中间件是基于队列与消息传递技术…

猿辅导送给新时代家长的一份教育指南,让孩子“学会学习”

新课标发布以来&#xff0c;各学科综合素养内容占比逐渐提升&#xff0c;成为校内教学考察的新方向&#xff0c;素养教育也成为学校、家长讨论的新话题。论坛上&#xff0c;各领域教育创新者、教育实践者围绕素养教育&#xff0c;探讨了学习本质、学习兴趣、作业问题、厌学情绪…

JAVA并发编程之原子性、可见性与有序性

并发编程-原子性、可见性与有序性 一、CPU的可见性 1.1 缓存一致性问题的出现 CPU处理器在处理速度上&#xff0c;远胜于内存&#xff0c;主内存执行一次内存的读写操作&#xff0c;所需要的时间足够处理器去处理上百条指令。 为了弥补处理器与主内存处理能力之间的差距&am…

2023 re:Invent 用 PartyRock 10 分钟构建你的 AI 应用

前言 一年一度的亚马逊云科技的 re:Invent 可谓是全球云计算、科技圈的狂欢&#xff0c;每次都能带来一些最前沿的方向标&#xff0c;这次也不例外。在看完一些 keynote 和介绍之后&#xff0c;我也去亲自体验了一些最近发布的内容。其中让我感受最深刻的无疑是 PartyRock 了。…