【RL】Actor-Critic Methods

news2024/10/5 23:30:03

Lecture 10: Actor-Critic Methods

The simplest actor-critic (QAC)

回顾 policy 梯度的概念:

1、标量指标 J ( θ ) J(\theta) J(θ),可以是 v ˉ π \bar{v}_{\pi} vˉπ r ˉ π \bar{r}_{\pi} rˉπ

2、最大化 J ( θ ) J(\theta) J(θ) 的梯度上升算法为:
θ t + 1 = θ t + α ∇ θ J ( θ t ) = θ t + α E S ∼ η , A ∼ π [ ∇ θ ln ⁡ π ( A ∣ S , θ t ) q π ( S , A ) ] \begin{aligned} \theta_{t+1}& =\theta_t+\alpha\nabla_\theta J(\theta_t) \\ &=\theta_t+\alpha\mathbb{E}_{S\sim\eta,A\sim\pi}\Big[\nabla_\theta\ln\pi(A|S,\theta_t)q_\pi(S,A)\Big] \end{aligned} θt+1=θt+αθJ(θt)=θt+αESη,Aπ[θlnπ(AS,θt)qπ(S,A)]
3、随机梯度上升算法是:
θ 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)
从以上算法中,可以看到“actor”和”critic“:

  • 这个算法对应的是actor。
  • 估计 q t ( s , a ) q_t(s, a) qt(s,a)的算法对应于critic。

How to get q t ( s t , a t ) q_t(s_t, a_t) qt(st,at)?

  • Monte Carlo learning:如果使用MC,相应的算法称为REINFORCE或Monte Carlo policy gradient。
  • Temporal-difference learning:如果使用TD,这种算法通常称为actor-critic。

在这里插入图片描述

  • critic 对应的是“SARSA+价值函数近似”。
  • actor 对应于 policy 更新算法。
  • 该算法是 on-policy的。由于 policy 是随机的,因此无需使用 ε \varepsilon ε-greedy 等技术。
  • 这种特定的 actor-citric 算法有时称为 Q Actor-Critic (QAC)。
  • 该算法揭示了 actor-citric 方法的核心思想。 它可以扩展以生成许多其他算法。

Advantage actor-critic (A2C)

Baseline invariance

属性:policy 梯度对于附加 baseline 是不变的:
∇ θ J ( θ ) = E S ∼ η , A ∼ π [ ∇ θ ln ⁡ π ( A ∣ S , θ t ) q π ( S , A ) ] = E S ∼ η , A ∼ π [ ∇ θ ln ⁡ π ( A ∣ S , θ t ) ( q π ( S , A ) − b ( S ) ) ] \begin{aligned} \nabla_\theta J(\theta)& =\mathbb{E}_{S\sim\eta,A\sim\pi}\bigg[\nabla_\theta\ln\pi(A|S,\theta_t)q_\pi(S,A)\bigg] \\ &=\mathbb{E}_{S\sim\eta,A\sim\pi}\left[\nabla_\theta\ln\pi(A|S,\theta_t)(q_\pi(S,A)-{b(S)})\right] \end{aligned} θJ(θ)=ESη,Aπ[θlnπ(AS,θt)qπ(S,A)]=ESη,Aπ[θlnπ(AS,θt)(qπ(S,A)b(S))]
其中,附加 baseline b ( S ) b(S) b(S) S S S 的标量函数。

有效性证明:
E S ∼ η , A ∼ π [ ∇ θ ln ⁡ π ( A ∣ S , θ t ) b ( S ) ] = 0 \mathbb{E}_{S\sim\eta,A\sim\pi}\Big[\nabla_\theta\ln\pi(A|S,\theta_t)b(S)\Big]=0 ESη,Aπ[θlnπ(AS,θt)b(S)]=0
上式的具体细节为:
E S ∼ η , A ∼ π [ ∇ θ ln ⁡ π ( A ∣ S , θ t ) b ( S ) ] = ∑ s ∈ S η ( s ) ∑ a ∈ A π ( a ∣ s , θ t ) ∇ θ ln ⁡ π ( a ∣ s , θ t ) b ( s ) = ∑ s ∈ S η ( s ) ∑ a ∈ A ∇ θ π ( a ∣ s , θ t ) b ( s ) = ∑ s ∈ S η ( s ) b ( s ) ∑ a ∈ A ∇ θ π ( a ∣ s , θ t ) = ∑ s ∈ S η ( s ) b ( s ) ∇ θ ∑ a ∈ A π ( a ∣ s , θ t ) = ∑ s ∈ S η ( s ) b ( s ) ∇ θ 1 = 0 \begin{aligned} \mathbb{E}_{S\sim\eta,A\sim\pi}\left[\nabla_\theta\ln\pi(A|S,\theta_t)b(S)\right]& =\sum_{s\in\mathcal{S}}\eta(s)\sum_{a\in\mathcal{A}}\pi(a|s,\theta_t)\nabla_\theta\ln\pi(a|s,\theta_t)b(s) \\ &\begin{aligned}&=\sum_{s\in\mathcal{S}}\eta(s)\sum_{a\in\mathcal{A}}\nabla_\theta\pi(a|s,\theta_t)b(s)\end{aligned} \\ &=\sum_{s\in\mathcal{S}}\eta(s)b(s)\sum_{a\in\mathcal{A}}\nabla_\theta\pi(a|s,\theta_t) \\ &=\sum_{s\in\mathcal{S}}\eta(s)b(s)\nabla_\theta\sum_{a\in\mathcal{A}}\pi(a|s,\theta_t) \\ &\begin{aligned}=\sum_{s\in\mathcal{S}}\eta(s)b(s)\nabla_\theta1=0\end{aligned} \end{aligned} ESη,Aπ[θlnπ(AS,θt)b(S)]=sSη(s)aAπ(as,θt)θlnπ(as,θt)b(s)=sSη(s)aAθπ(as,θt)b(s)=sSη(s)b(s)aAθπ(as,θt)=sSη(s)b(s)θaAπ(as,θt)=sSη(s)b(s)θ1=0
因此,在添加 baseline 后,对 policy 的期望没有影响。

有用性证明:

设梯度为 ∇ θ J ( θ ) = E [ X ] \nabla_\theta J(\theta)=\mathbb{E}[X] θJ(θ)=E[X],其中:
X ( S , A ) ≐ ∇ θ ln ⁡ π ( A ∣ S , θ t ) [ q π ( S , A ) − b ( S ) ] X(S,A)\doteq\nabla_\theta\ln\pi(A|S,\theta_t)[q_\pi(S,A)-b(S)] X(S,A)θlnπ(AS,θt)[qπ(S,A)b(S)]
可得:

E [ X ] \mathbb{E}[X] E[X] 对于 b ( S ) b(S) b(S)是不变的。

var ( X ) \text{var}(X) var(X) 对于 b ( S ) b(S) b(S) 来说是变化的。

因为 tr ⁡ [ var ⁡ ( X ) ] = E [ X T X ] − x ˉ T x ˉ \operatorname{tr}[\operatorname{var}(X)]=\mathbb{E}[X^TX]-\bar{x}^T\bar{x} tr[var(X)]=E[XTX]xˉTxˉ,且
E [ X T X ] = E [ ( ∇ θ ln ⁡ π ) T ( ∇ θ ln ⁡ π ) ( q π ( S , A ) − b ( S ) ) 2 ] = E [ ∥ ∇ θ ln ⁡ π ∥ 2 ( q π ( S , A ) − b ( S ) ) 2 ] \begin{gathered} \mathbb{E}[X^TX] =\mathbb{E}\left[(\nabla_\theta\ln\pi)^T(\nabla_\theta\ln\pi)(q_\pi(S,A)-b(S))^2\right] \\ =\mathbb{E}\left[\|\nabla_\theta\ln\pi\|^2(q_\pi(S,A)-b(S))^2\right] \end{gathered} E[XTX]=E[(θlnπ)T(θlnπ)(qπ(S,A)b(S))2]=E[θlnπ2(qπ(S,A)b(S))2]
因此,目标为选择最佳 baseline b b b 以最小化 var ( X ) \text{var}(X) var(X)

这样做的优势是:当使用随机样本来近似 E [ X ] \mathbb{E}[X] E[X] 时,估计方差也会很小。

可以最小化 var ( X ) \text{var}(X) var(X) 的最佳基线是,对于任何 s ∈ S s \in S sS
b ∗ ( s ) = E A ∼ π [ ∥ ∇ θ ln ⁡ π ( A ∣ s , θ t ) ∥ 2 q π ( s , A ) ] E A ∼ π [ ∥ ∇ θ ln ⁡ π ( A ∣ s , θ t ) ∥ 2 ] . b^*(s)=\frac{\mathbb{E}_{A\sim\pi}[\|\nabla_\theta\ln\pi(A|s,\theta_t)\|^2q_\pi(s,A)]}{\mathbb{E}_{A\sim\pi}[\|\nabla_\theta\ln\pi(A|s,\theta_t)\|^2]}. b(s)=EAπ[θlnπ(As,θt)2]EAπ[θlnπ(As,θt)2qπ(s,A)].
尽管这个 baseline 是最佳的,但它很复杂。

可以删除权重 ∥ ∇ θ ln ⁡ π ( A ∣ s , θ t ) ∥ 2 \|\nabla_\theta\ln\pi(A|s,\theta_t)\|^2 θlnπ(As,θt)2 并选择次优 baseline:
b ( s ) = E A ∼ π [ q π ( s , A ) ] = v π ( s ) b(s)=\mathbb{E}_{A\sim\pi}[q_\pi(s,A)]=v_\pi(s) b(s)=EAπ[qπ(s,A)]=vπ(s)
这是 s 的 state value。

The algorithm of advantage actor-critic

b ( s ) = v π ( s ) b(s)=v_\pi(s) b(s)=vπ(s) 时,

梯度上升算法是:
θ t + 1 = θ t + α E [ ∇ θ ln ⁡ π ( A ∣ S , θ t ) [ q π ( S , A ) − v π ( S ) ] ] = ˙ θ t + α E [ ∇ θ ln ⁡ π ( A ∣ S , θ t ) δ π ( S , A ) ] \begin{aligned} \theta_{t+1}& =\theta_t+\alpha\mathbb{E}\Big[\nabla_\theta\ln\pi(A|S,\theta_t)[q_\pi(S,A)-v_\pi(S)]\Big] \\ &\dot{=}\theta_t+\alpha\mathbb{E}\Big[\nabla_\theta\ln\pi(A|S,\theta_t){\delta_\pi(S,A)}\Big] \end{aligned} θt+1=θt+αE[θlnπ(AS,θt)[qπ(S,A)vπ(S)]]=˙θt+αE[θlnπ(AS,θt)δπ(S,A)]
其中:
δ π ( S , A ) ≐ q π ( S , A ) − v π ( S ) \delta_\pi(S,A)\doteq q_\pi(S,A)-v_\pi(S) δπ(S,A)qπ(S,A)vπ(S)
该算法的随机版本是:
θ t + 1 = θ t + α ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) [ q t ( s t , a t ) − v t ( s t ) ] = θ t + α ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) δ t ( s t , a t ) \begin{aligned} \theta_{\boldsymbol{t}+1}& \begin{aligned}=\theta_t+\alpha\nabla_\theta\ln\pi(a_t|s_t,\theta_t)[q_t(s_t,a_t)-v_t(s_t)]\end{aligned} \\ &=\theta_t+\alpha\nabla_\theta\ln\pi(a_t|s_t,\theta_t)\delta_t(s_t,a_t) \end{aligned} θt+1=θt+αθlnπ(atst,θt)[qt(st,at)vt(st)]=θt+αθlnπ(atst,θt)δt(st,at)
此外,该算法可以重新表示为:
θ t + 1 = θ t + α ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) δ t ( s t , a t ) = θ t + α ∇ θ π ( a t ∣ s t , θ t ) π ( a t ∣ s t , θ t ) δ t ( s t , a t ) = θ t + α ( δ t ( s t , a t ) π ( a t ∣ s t , θ t ) ) ⏟ step   size ∇ θ π ( a t ∣ s t , θ t ) \begin{aligned} \theta_{t+1}& =\theta_t+\alpha\nabla_\theta\ln\pi(a_t|s_t,\theta_t)\delta_t(s_t,a_t) \\ &=\theta_t+\alpha\frac{\nabla_\theta\pi(a_t|s_t,\theta_t)}{\pi(a_t|s_t,\theta_t)}\delta_t(s_t,a_t) \\ &=\theta_t+\alpha\underbrace{\left(\frac{{\delta_t(s_t,a_t)}}{\pi(a_t|s_t,\theta_t)}\right)}_{\textbf{step size}}\nabla_\theta\pi(a_t|s_t,\theta_t) \end{aligned} θt+1=θt+αθlnπ(atst,θt)δt(st,at)=θt+απ(atst,θt)θπ(atst,θt)δt(st,at)=θt+αstep size (π(atst,θt)δt(st,at))θπ(atst,θt)
步长与相对值 δ t \delta_t δt 成正比,而不是与绝对值 q t q_t qt 成正比,更合理。

它仍然可以很好地平衡探索和开发。

此外,优势函数由 TD error 近似:
δ t = q t ( s t , a t ) − v t ( s t ) → r t + 1 + γ v t ( s t + 1 ) − v t ( s t ) \delta_t=q_t(s_t,a_t)-v_t(s_t)\rightarrow r_{t+1}+\gamma v_t(s_{t+1})-v_t(s_t) δt=qt(st,at)vt(st)rt+1+γvt(st+1)vt(st)
这个近似是合理的,因为:
E [ q π ( S , A ) − v π ( S ) ∣ S = s t , A = a t ] = E [ R + γ v π ( S ′ ) − v π ( S ) ∣ S = s t , A = a t ] \mathbb{E}[q_\pi(S,A)-v_\pi(S)|S=s_t,A=a_t]=\mathbb{E}\Big[R+\gamma v_\pi(S')-v_\pi(S)|S=s_t,A=a_t\Big] E[qπ(S,A)vπ(S)S=st,A=at]=E[R+γvπ(S)vπ(S)S=st,A=at]
好处:只需要一个网络来近似 v π ( s ) v_{\pi}(s) vπ(s),而不需要两个网络来近似 q π ( s , a ) q_{\pi}(s, a) qπ(s,a) v π ( s ) v_{\pi}(s) vπ(s)

在这里插入图片描述

这是on-policy的。 由于策略 π ( θ t ) \pi(\theta_t) π(θt) 是随机的,因此无需使用 ε \varepsilon ε-greedy等技术。

Off-policy actor-critic

Illustrative examples

考虑一个随机变量 X ∈ X = { + 1 , − 1 } X \in \mathcal{X} = \{+1, −1\} XX={+1,1}

如果 X X X 的概率分布为 p 0 p_0 p0
p 0 ( X = + 1 ) = 0.5 , p 0 ( X = − 1 ) = 0.5 p_0(X=+1)=0.5,\quad p_0(X=-1)=0.5 p0(X=+1)=0.5,p0(X=1)=0.5
那么 X X X的期望是:
E X ∼ p 0 [ X ] = ( + 1 ) ⋅ 0.5 + ( − 1 ) ⋅ 0.5 = 0. \mathbb{E}_{X\sim p_0}[X]=(+1)\cdot0.5+(-1)\cdot0.5=0. EXp0[X]=(+1)0.5+(1)0.5=0.
使用样本 { x i } \{x_i\} {xi}估计 E [ X ] \mathbb{E}[X] E[X]

Case 1

根据 p 0 p_0 p0 生成样本 { x i } \{x_i\} {xi}
E [ x i ] = E [ X ] , var [ x i ] = var [ X ] \mathbb{E}[x_i]=\mathbb{E}[X],\quad\text{var}[x_i]=\text{var}[X] E[xi]=E[X],var[xi]=var[X]
然后,平均值可以收敛到期望值:
x ˉ = 1 n ∑ i = 1 n x i → E [ X ] , as  n → ∞ \bar{x}=\frac1n\sum_{i=1}^nx_i\to\mathbb{E}[X],\quad\text{as }n\to\infty xˉ=n1i=1nxiE[X],as n
因为:
E [ x ˉ ] = E [ X ] , v a r [ x ˉ ] = 1 n v a r [ X ] \mathbb{E}[\bar{x}]=\mathbb{E}[X],\quad\mathrm{var}[\bar{x}]=\frac1n\mathrm{var}[X] E[xˉ]=E[X],var[xˉ]=n1var[X]
Case 2

样本 { x i } \{x_i\} {xi} 是根据另一个分布 p 1 p_1 p1 生成的:
p 1 ( X = + 1 ) = 0.8 , p 1 ( X = − 1 ) = 0.2 p_1(X=+1)=0.8,\quad p_1(X=-1)=0.2 p1(X=+1)=0.8,p1(X=1)=0.2
期望是:
E X ∼ p 1 [ X ] = ( + 1 ) ⋅ 0.8 + ( − 1 ) ⋅ 0.2 = 0.6 \mathbb{E}_{X\sim p_1}[X]=(+1)\cdot0.8+(-1)\cdot0.2=0.6 EXp1[X]=(+1)0.8+(1)0.2=0.6
如果使用样本的平均值,那么;
x ˉ = 1 n ∑ i = 1 n x i → E X ∼ p 1 [ X ] = 0.6 ≠ E X ∼ p 0 [ X ] \bar{x}=\frac{1}{n}\sum_{i=1}^{n}x_{i}\rightarrow\mathbb{E}_{X\sim p_{1}}[X]=0.6\neq\mathbb{E}_{X\sim p_{0}}[X] xˉ=n1i=1nxiEXp1[X]=0.6=EXp0[X]
使用 { x i } ∼ p 1 \{x_i\} \sim p_1 {xi}p1 来估计 E X ∼ p 0 [ X ] \mathbb{E}_{X\sim p_0}[X] EXp0[X]

估计 E A ∼ π [ ∗ ] \mathbb{E}_{A\sim \pi}[*] EAπ[],其中 π \pi π 是基于行为policy(behavior policy) β \beta β 样本的目标policy(target policy)。

可以通过使用重要性采样(importance sampling)技术来实现这一点。

在这里插入图片描述

Importance sampling

因为:
E X ∼ p 0 [ X ] = ∑ x p 0 ( x ) x = ∑ x p 1 ( x ) p 0 ( x ) p 1 ( x ) x ⏟ f ( x ) = E X ∼ p 1 [ f ( X ) ] {\mathbb{E}_{X\sim p_0}[X]}=\sum_xp_0(x)x=\sum_xp_1(x)\underbrace{\frac{p_0(x)}{p_1(x)}x}_{f(x)}={\mathbb{E}_{X\sim p_1}[f(X)]} EXp0[X]=xp0(x)x=xp1(x)f(x) p1(x)p0(x)x=EXp1[f(X)]
因此,我们可以估计 E X ∼ p 1 [ f ( X ) ] \mathbb{E}_{X\sim p_1}[f(X)] EXp1[f(X)] 来估计 E X ∼ p 0 [ X ] \mathbb{E}_{X\sim p_0}[X] EXp0[X]

使,
f ˉ ≐ 1 n ∑ i = 1 n f ( x i ) ,  where  x i ∼ p 1 \bar{f}\doteq\frac1n\sum_{i=1}^nf(x_i),\quad\text{ where }x_i\sim p_1 fˉn1i=1nf(xi), where xip1
那么:
E X ∼ p 1 [ f ˉ ] = E X ∼ p 1 [ f ( X ) ] var ⁡ X ∼ p 1 [ f ˉ ] = 1 n v a r X ∼ p 1 [ f ( X ) ] \begin{gathered} \mathbb{E}_{X\sim p_1}[\bar{f}] =\mathbb{E}_{X\sim p_1}[f(X)] \\ \operatorname{var}_{X\sim_{p_{1}}}[\bar{f}] =\frac1n\mathrm{var}_{X\thicksim p_1}[f(X)] \end{gathered} EXp1[fˉ]=EXp1[f(X)]varXp1[fˉ]=n1varXp1[f(X)]
因此, f ˉ \bar{f} fˉ E X ∼ p 1 [ f ( X ) ] = E X ∼ p 0 [ X ] \mathbb{E}_{X\sim p_1}[f(X)] = \mathbb{E}_{X\sim p_0}[X] EXp1[f(X)]=EXp0[X] 的良好近似:
E X ∼ p 0 [ X ] ≈ f ‾ = 1 n ∑ i = 1 n f ( x i ) = 1 n ∑ i = 1 n p 0 ( x i ) p 1 ( x i ) x i {\mathbb{E}_{X\sim p_0}[X]}\approx\overline{f}=\frac1n\sum_{i=1}^nf(x_i){=\frac1n\sum_{i=1}^n\frac{p_0(x_i)}{p_1(x_i)}x_i} EXp0[X]f=n1i=1nf(xi)=n1i=1np1(xi)p0(xi)xi
p 0 ( x i ) p 1 ( x i ) \frac{p_0(x_i)}{p_1(x_i)} p1(xi)p0(xi)被称为重要性分数(importance weight)。

如果 p 1 ( x i ) = p 0 ( x i ) p_1(x_i) = p_0(x_i) p1(xi)=p0(xi),则重要性权重为 1,而 f ˉ \bar{f} fˉ 变为 x ˉ \bar{x} xˉ

如果 p 0 ( x i ) ≥ p 1 ( x i ) p_0(x_i) ≥ p_1(x_i) p0(xi)p1(xi),则 p 0 p_0 p0 p 1 p_1 p1 更频繁地对 x i x_i xi 进行采样。 重要性权重(>1)可以强调这个样本的重要性。

其适用于给定 x x x很容易计算 p 0 ( x ) p_0(x) p0(x),但计算期望却很困难的情况。

例如,连续情况、 p 0 p_0 p0 的复杂表达或 p 0 p_0 p0 不表达(例如, p 0 p_0 p0 由神经网络表示)。

总结:

如果 { x 1 } ∼ p 1 \{ x_1 \} \sim p_1 {x1}p1

那么:
x ˉ = 1 n ∑ i = 1 n x i → E X ∼ p 1 [ X ] f ˉ = 1 n ∑ i = 1 n p 0 ( x i ) p 1 ( x i ) x i → E X ∼ p 0 [ X ] \begin{gathered} \bar{x}=\frac{1}{n}\sum_{i=1}^{n}x_{i}\rightarrow\mathbb{E}_{X\sim p_{1}}[X] \\ \begin{aligned}\bar{f}=\frac{1}{n}\sum_{i=1}^{n}\frac{p_{0}(x_{i})}{p_{1}(x_{i})}x_{i}\to\mathbb{E}_{{X\sim p_{0}}}[X]\end{aligned} \end{gathered} xˉ=n1i=1nxiEXp1[X]fˉ=n1i=1np1(xi)p0(xi)xiEXp0[X]

在这里插入图片描述

The theorem of off-policy policy gradient

与之前的 on-policy 情况一样,需要推导 off-policy 情况下的 policy 梯度。

假设 β \beta β 是生成经验样本的 behavior policy。

目标是使用这些样本来更新target policy π \pi π,以最小化指标:
J ( θ ) = ∑ s ∈ S d β ( s ) v π ( s ) = E S ∼ d β [ v π ( S ) ] J(\theta)=\sum_{s\in\mathcal{S}}d_\beta(s)v_\pi(s)=\mathbb{E}_{S\sim d_\beta}[v_\pi(S)] J(θ)=sSdβ(s)vπ(s)=ESdβ[vπ(S)]
其中 d β d_{\beta} dβ 是policy β \beta β 下的平稳分布。

Theorem (Off-policy policy gradient theorem)

在 discounted 情况下, γ ∈ ( 0 , 1 ) \gamma \in (0, 1) γ(0,1) J ( θ ) J(\theta) J(θ) 的梯度为:
∇ θ J ( θ ) = E S ∼ ρ , A ∼ β [ π ( A ∣ S , θ ) β ( A ∣ S ) ∇ θ ln ⁡ π ( A ∣ S , θ ) q π ( S , A ) ] \nabla_\theta J(\theta)=\mathbb{E}_{S\sim\rho,A\sim\beta}\left[\frac{\pi(A|S,\theta)}{\beta(A|S)}\nabla_\theta\ln\pi(A|S,\theta)q_\pi(S,A)\right] θJ(θ)=ESρ,Aβ[β(AS)π(AS,θ)θlnπ(AS,θ)qπ(S,A)]
其中 β \beta β 是behavior policy, ρ \rho ρ 是 state 分布。

The algorithm of off-policy actor-critic

off-policy 的 policy 梯度对于 baseline b ( s ) b(s) b(s) 也是不变的。

特别来说:
∇ θ J ( θ ) = E S ∼ ρ , A ∼ β [ π ( A ∣ S , θ ) β ( A ∣ S ) ∇ θ ln ⁡ π ( A ∣ S , θ ) ( q π ( S , A ) − b ( S ) ) ] \nabla_\theta J(\theta)=\mathbb{E}_{S\sim\rho,A\sim\beta}\left[\frac{\pi(A|S,\theta)}{\beta(A|S)}\nabla_\theta\ln\pi(A|S,\theta)\left(q_\pi(S,A)-{b(S)}\right)\right] θJ(θ)=ESρ,Aβ[β(AS)π(AS,θ)θlnπ(AS,θ)(qπ(S,A)b(S))]
为了减少估计方差,我们可以选择 baseline 为 b ( S ) = v π ( S ) b(S) = v_{\pi}(S) b(S)=vπ(S) 并得到:
∇ θ J ( θ ) = E [ π ( A ∣ S , θ ) β ( A ∣ S ) ∇ θ ln ⁡ π ( A ∣ S , θ ) ( q π ( S , A ) − v π ( S ) ) ] \nabla_\theta J(\theta)=\mathbb{E}\left[\frac{\pi(A|S,\theta)}{\beta(A|S)}\nabla_\theta\ln\pi(A|S,\theta)\big(q_\pi(S,A)-{v_\pi(S)}\big)\right] θJ(θ)=E[β(AS)π(AS,θ)θlnπ(AS,θ)(qπ(S,A)vπ(S))]
相应的随机梯度上升算法是:
θ t + 1 = θ t + α θ π ( a t ∣ s t , θ t ) β ( a t ∣ s t ) ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) ( q t ( s t , a t ) − v t ( s t ) ) \theta_{t+1}=\theta_t+\alpha_\theta\frac{\pi(a_t|s_t,\theta_t)}{\beta(a_t|s_t)}\nabla_\theta\ln\pi(a_t|s_t,\theta_t)\big(q_t(s_t,a_t)-v_t(s_t)\big) θt+1=θt+αθβ(atst)π(atst,θt)θlnπ(atst,θt)(qt(st,at)vt(st))
与 on-policy 案例类似:
q t ( s t , a t ) − v t ( s t ) ≈ r t + 1 + γ v t ( s t + 1 ) − v t ( s t ) ≐ δ t ( s t , a t ) q_t(s_t,a_t)-v_t(s_t)\approx r_{t+1}+\gamma v_t(s_{t+1})-v_t(s_t)\doteq\delta_t(s_t,a_t) qt(st,at)vt(st)rt+1+γvt(st+1)vt(st)δt(st,at)
那么算法就变成了:
θ t + 1 = θ t + α θ π ( a t ∣ s t , θ t ) β ( a t ∣ s t ) ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) δ t ( s t , a t ) \theta_{t+1}=\theta_t+\alpha_\theta\frac{\pi(a_t|s_t,\theta_t)}{\beta(a_t|s_t)}\nabla_\theta\ln\pi(a_t|s_t,\theta_t)\delta_t(s_t,a_t) θt+1=θt+αθβ(atst)π(atst,θt)θlnπ(atst,θt)δt(st,at)
因此:
θ t + 1 = θ t + α θ ( δ t ( s t , a t ) β ( a t ∣ s t ) ) ∇ θ π ( a t ∣ s t , θ t ) \theta_{t+1}=\theta_t+\alpha_\theta\left(\frac{\delta_t(s_t,a_t)}{\beta(a_t|s_t)}\right)\nabla_\theta\pi(a_t|s_t,\theta_t) θt+1=θt+αθ(β(atst)δt(st,at))θπ(atst,θt)

在这里插入图片描述

Deterministic actor-critic (DPG)

The theorem of deterministic policy gradient

之前介绍的 policy 梯度定理仅适用于随机 policy 。

如果 policy 必须是确定性的,必须推导出一个新的 policy 梯度定理。

考虑 discounted 情况下平均 state value 的指标:
J ( θ ) = E [ v μ ( s ) ] = ∑ s ∈ S d 0 ( s ) v μ ( s ) J(\theta)=\mathbb{E}[v_\mu(s)]=\sum_{s\in\mathcal{S}}d_0(s)v_\mu(s) J(θ)=E[vμ(s)]=sSd0(s)vμ(s)
其中 d 0 ( s ) d_0(s) d0(s) 是满足 ∑ s ∈ S d 0 ( s ) = 1 \sum_{s\in\mathcal{S}}d_0(s)=1 sSd0(s)=1 的概率分布。

  • d 0 d_0 d0 被选择为独立于 μ \mu μ。 这种情况下的梯度更容易计算。

  • 选择 d 0 d_0 d0 有两种特殊但重要的情况:

    第一个特殊情况是 d 0 ( s 0 ) = 1 d_0(s_0) = 1 d0(s0)=1 d 0 ( s ≠ s 0 ) = 0 d_0(s \ne s_0) = 0 d0(s=s0)=0,其中 s 0 s_0 s0 是感兴趣的特定起始 state。

    第二个特殊情况是 d 0 d_0 d0 是与 μ \mu μ 不同的 behavior policy 的平稳分布。

Theorem (Deterministic policy gradient theorem in the discounted case)

在折扣情况下, γ ∈ ( 0 , 1 ) \gamma \in (0, 1) γ(0,1) J ( θ ) J(\theta) J(θ) 的梯度为:
∇ θ J ( θ ) = ∑ s ∈ S ρ μ ( s ) ∇ θ μ ( s ) ( ∇ a q μ ( s , a ) ) ∣ a = μ ( s ) = E S ∼ ρ μ [ ∇ θ μ ( S ) ( ∇ a q μ ( S , a ) ) ∣ a = μ ( S ) ] \begin{aligned} \nabla_{\theta}J(\theta)& =\sum_{s\in\mathcal{S}}\rho_{\mu}(s)\nabla_{\theta}\mu(s)\left(\nabla_{a}q_{\mu}(s,a)\right)|_{a=\mu(s)} \\ &=\mathbb{E}_{S\sim\rho_{\mu}}\left[\nabla_{\theta}\mu(S)\big(\nabla_{a}q_{\mu}(S,a)\big)|_{a=\mu(S)}\right] \end{aligned} θJ(θ)=sSρμ(s)θμ(s)(aqμ(s,a))a=μ(s)=ESρμ[θμ(S)(aqμ(S,a))a=μ(S)]

The algorithm of deterministic actor-critic

基于 policy 梯度,最大化 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\rho_{\mu}}\left[\nabla_{\theta}\mu(S)\big(\nabla_{a}q_{\mu}(S,a)\big)|_{a=\mu(S)}\right] θ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)\big(\nabla_aq_\mu(s_t,a)\big)|_{a=\mu(s_t)} θt+1=θt+αθθμ(st)(aqμ(st,a))a=μ(st)

在这里插入图片描述

这是一种 off-policy 实现,其中 behavior policy β \beta β 可能与 μ \mu μ 不同。

β \beta β 也可以用 μ + noise \mu+ \text{noise} μ+noise 代替。

选择函数来表示 q ( s , a , w ) q(s, a, w) q(s,a,w)

  • 线性函数: q ( s , a , w ) = ϕ T ( s , a ) w \begin{aligned}q(s,a,w)=\phi^T(s,a)w\end{aligned} q(s,a,w)=ϕT(s,a)w,其中 ϕ ( s , a ) \phi(s, a) ϕ(s,a) 是特征向量。
  • 神经网络:深度确定性策略梯度(DDPG)方法。

Summary

  • The simplest actor-critic
  • Advantage actor-critic
  • Off-policy actor-critic
  • Deterministic actor-critic




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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机服务器中了DevicData勒索病毒怎么办?DevicData勒索病毒解密数据恢复

网络技术的发展与更新为企业提供了极大便利,让越来越多的企业走向了正规化、数字化,因此,企业的数据安全也成为了大家关心的主要话题,但网络是一把双刃剑,即便企业做好了安全防护,依旧会给企业的数据安全带…

Prometheus+Grafana 监控

第1章Prometheus 入门 Prometheus 受启发于 Google 的 Brogmon 监控系统(相似的 Kubernetes 是从 Google的 Brog 系统演变而来),从 2012 年开始由前 Google 工程师在 Soundcloud 以开源软件的 形式进行研发,并且于 2015 年早期对…

如何在Linux搭建Inis网站,并发布至公网实现远程访问【内网穿透】

如何在Linux搭建Inis网站,并发布至公网实现远程访问【内网穿透】 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道(云端设置)2.3.…

论文阅读:How Do Neural Networks See Depth in Single Images?

是由Technische Universiteit Delft(代尔夫特理工大学)发表于ICCV,2019。这篇文章的研究内容很有趣,没有关注如何提升深度网络的性能,而是关注单目深度估计的工作机理。 What they find? 所有的网络都忽略了物体的实际大小,而关注他们的垂直…

全球最强开源大模型一夜易主!谷歌Gemma 7B碾压Llama 2 13B,今夜重燃开源之战

一声炸雷深夜炸响,谷歌居然也开源LLM了?! 这次,重磅开源的Gemma有2B和7B两种规模,并且采用了与Gemini相同的研究和技术构建。 有了Gemini同源技术的加持,Gemma不仅在相同的规模下实现SOTA的性能。 而且更令…

嵌入式学习-qt-Day3

嵌入式学习-qt-Day3 一、思维导图 二、作业 完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳…

Transformer 架构—Encoder-Decoder

文章目录 前言 一、Encoder 家族 1. BERT 2. DistilBERT 3. RoBERTa 4. XML 5. XML-RoBERTa 6. ALBERT 7. ELECTRA 8. DeBERTa 二、Decoder 家族 1. GPT 2. GPT-2 3. CTRL 4. GPT-3 5. GPT-Neo / GPT-J-6B 三、Encoder-Decoder 家族 1. T5 2. BART 3. M2M-100 4. BigBird 前言 …

SpringBoot---集成MybatisPlus

介绍 使用SpringBoot集成MybatisPlus框架。 第一步&#xff1a;添加MybatisPlus依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.4</version> </dependenc…

MIT6.S081学习——一、环境搭建、资料搜集

MIT6.S081学习——一、环境搭建、资料搜集 1、环境准备2、资料搜集2、环境搭建2.1 Linux环境准备2.2 环境搭建2.2.1 根据官网指导代码进行相关工具的安装2.2.2 下载并且编译QEMU 3、VSCode远程连接Ubuntu3.1 安装remote-ssh3.1.1 安装插件3.1.2 配置config文件 3.2 Ubuntu安装S…

springcloud:2.OpenFeign 详细讲解

OpenFeign 是一个基于 Netflix 的 Feign 库进行扩展的工具,它简化了开发人员在微服务架构中进行服务间通信的流程,使得编写和维护 RESTful API 客户端变得更加简单和高效。作为一种声明式的 HTTP 客户端,OpenFeign 提供了直观的注解驱动方式,使得开发人员可以轻松定义和调用…

Redis突现拒绝连接问题处理总结

一、问题回顾 项目突然报异常 [INFO] 2024-02-20 10:09:43.116 i.l.core.protocol.ConnectionWatchdog [171]: Reconnecting, last destination was 192.168.0.231:6379 [WARN] 2024-02-20 10:09:43.120 i.l.core.protocol.ConnectionWatchdog [151]: Cannot reconnect…

win32 汇编读文件

做了2个小程序&#xff0c;没有读成功&#xff1b;文件打开了&#xff1b; .386.model flat, stdcalloption casemap :noneinclude windows.inc include user32.inc includelib user32.lib include kernel32.inc includelib kernel32.lib include Comdlg32.inc includelib …

Pormise---如何解决javascript中回调的信任问题?【详解】

如果阅读有疑问的话&#xff0c;欢迎评论或私信&#xff01;&#xff01; 本人会很热心的阐述自己的想法&#xff01;谢谢&#xff01;&#xff01;&#xff01; 文章目录 回调中的信任问题回调给我们带来的烦恼&#xff1f;调用过早调用过晚调用的次数太少或太多调用回调时未能…

数据结构之链表经典算法QJ题目

目录 单链表经典算法题目1. 单链表相关经典算法OJ题&#xff1a;移除链表元素思路一&#xff1a;思路二&#xff1a; 2. 单链表相关经典算法QI题&#xff1a;链表的中间节点思路一思路二 3. 单链表相关经典算法QJ题&#xff1a;反转链表思路一思路二 4. 单链表相关经典算法QJ题…

pytest 框架自动化测试

随笔记录 目录 1. 安装 2. 安装pytest 相关插件 2.1 准备阶段 2.2 安装 2.3 验证安装成功 3. pytest测试用例的运行方式 3.1 主函数模式 3.1.1 主函数执行指定文件 3.1.2 主函数执行指定模块 3.1.3 主函数执行某个文件中的某个类、方法、函数 3.1.4 主函数执行生…

学习鸿蒙背后的价值?星河版开放如何学习?

现在是2024年&#xff0c;华为在1月18开展了鸿蒙千帆起仪式发布会。宣布了鸿蒙星河版&#xff0c;并对开发者开放申请&#xff0c;此次发布会主要是说明了&#xff0c;鸿蒙已经是全栈自研底座&#xff0c;鸿蒙星河版本的编程语言改为ArkTS/仓颉&#xff0c;内核改为鸿蒙原生内核…

操作系统虚拟内存(上)

一、虚拟内存简要 1.为什么需要虚拟内存? 如果第一个程序在 2000 的位置写入一个新的值&#xff0c;将会擦掉第二个程序存放在相同位置上的所有内容&#xff0c;所以同时运行两个程序是根本行不通的&#xff0c;这两个程序会立刻崩溃&#xff0c;所以想要在这种情况下&#…

SQL 练习题目(入门级)

今天发现了一个练习SQL的网站--牛客网。里面题目挺多的&#xff0c;按照入门、简单、中等、困难进行了分类&#xff0c;可以直接在线输入SQL语句验证是否正确&#xff0c;并且提供了测试表的创建语句&#xff0c;也可以方便自己拓展练习&#xff0c;感觉还是很不错的一个网站&a…

OpenAI 的 GPTs 提示词泄露攻击与防护实战:防御卷(一)

前面的OpenAI DevDay活动上&#xff0c;GPTs技术的亮相引起了广泛关注。随着GPTs的创建权限开放给Plus用户&#xff0c;社区里迅速涌现了各种有趣的GPT应用&#xff0c;这些都是利用了Prompt提示词的灵活性。这不仅展示了技术的创新潜力&#xff0c;也让人们开始思考如何获取他…

Java 面向对象进阶 15 接口(黑马)

案例&#xff1a; 代码&#xff1a; Animal类代码&#xff1a; public abstract class Animal {private String name;private int age;public Animal() {}public Animal(String name, int age) {this.name name;this.age age;}public String getName() {return name;}public…