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π(A∣S,θ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π(at∣st,θ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π(A∣S,θt)qπ(S,A)]=ES∼η,A∼π[∇θlnπ(A∣S,θ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π(A∣S,θ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π(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
因此,在添加 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π(A∣S,θ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
s∈S:
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π(A∣s,θt)∥2]EA∼π[∥∇θlnπ(A∣s,θt)∥2qπ(s,A)].
尽管这个 baseline 是最佳的,但它很复杂。
可以删除权重
∥
∇
θ
ln
π
(
A
∣
s
,
θ
t
)
∥
2
\|\nabla_\theta\ln\pi(A|s,\theta_t)\|^2
∥∇θlnπ(A∣s,θ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π(A∣S,θt)[qπ(S,A)−vπ(S)]]=˙θt+αE[∇θlnπ(A∣S,θ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π(at∣st,θt)[qt(st,at)−vt(st)]=θt+α∇θlnπ(at∣st,θ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π(at∣st,θt)δt(st,at)=θt+απ(at∣st,θt)∇θπ(at∣st,θt)δt(st,at)=θt+αstep size
(π(at∣st,θt)δt(st,at))∇θπ(at∣st,θ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\} X∈X={+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.
EX∼p0[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=1∑nxi→E[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
EX∼p1[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=1∑nxi→EX∼p1[X]=0.6=EX∼p0[X]
使用
{
x
i
}
∼
p
1
\{x_i\} \sim p_1
{xi}∼p1 来估计
E
X
∼
p
0
[
X
]
\mathbb{E}_{X\sim p_0}[X]
EX∼p0[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)]}
EX∼p0[X]=x∑p0(x)x=x∑p1(x)f(x)
p1(x)p0(x)x=EX∼p1[f(X)]
因此,我们可以估计
E
X
∼
p
1
[
f
(
X
)
]
\mathbb{E}_{X\sim p_1}[f(X)]
EX∼p1[f(X)] 来估计
E
X
∼
p
0
[
X
]
\mathbb{E}_{X\sim p_0}[X]
EX∼p0[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=1∑nf(xi), where xi∼p1
那么:
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}
EX∼p1[fˉ]=EX∼p1[f(X)]varX∼p1[fˉ]=n1varX∼p1[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]
EX∼p1[f(X)]=EX∼p0[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}
EX∼p0[X]≈f=n1i=1∑nf(xi)=n1i=1∑np1(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=1∑nxi→EX∼p1[X]fˉ=n1i=1∑np1(xi)p0(xi)xi→EX∼p0[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(θ)=s∈S∑dβ(s)vπ(s)=ES∼dβ[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∼β[β(A∣S)π(A∣S,θ)∇θlnπ(A∣S,θ)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∼β[β(A∣S)π(A∣S,θ)∇θlnπ(A∣S,θ)(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[β(A∣S)π(A∣S,θ)∇θlnπ(A∣S,θ)(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+αθβ(at∣st)π(at∣st,θt)∇θlnπ(at∣st,θ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+αθβ(at∣st)π(at∣st,θt)∇θlnπ(at∣st,θ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+αθ(β(at∣st)δt(st,at))∇θπ(at∣st,θ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)]=s∈S∑d0(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
∑s∈Sd0(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(θ)=s∈S∑ρμ(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站西湖大学智能无人系统 强化学习的数学原理 公开课笔记。