Lecture 9: Policy Gradient Methods
Basic idea of policy gradient
之前,policy是用表格表示的:
所有state的action概率都存储在表 π ( a ∣ s ) \pi(a|s) π(a∣s)中。 表的每个条目都由state和action索引。
因此可以直接访问或更改表中的值。
现在,policy可以用参数化函数来表示:
π
(
a
∣
s
,
θ
)
\pi(a |s, \theta)
π(a∣s,θ)
其中,
θ
∈
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) πθ(a∣s) 或 π θ ( 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) π(a∣s,θ) 的值。
更新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ˉπ=s∈S∑d(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 ∑s∈Sd(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 S∼d
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ˉπ=s∈S∑d(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),…]T∈R∣S∣=[…,d(s),…]T∈R∣S∣
关于选择分布
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ˉπ≐s∈S∑dπ(s)rπ(s)=E[rπ(S)],
其中,
S
∼
d
π
S \sim d_{\pi}
S∼dπ,
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)≐a∈A∑π(a∣s)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}
n→∞limn1E[Rt+1+Rt+2+⋯+Rt+n∣St=s0]=n→∞limn1E[k=1∑nRt+k∣St=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}
n→∞limn1E[k=1∑nRt+k∣St=s0]=n→∞limn1E[k=1∑nRt+k]=s∑dπ(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
S0∼d 开始,然后是
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+1∼p(Rt+1∣St,At),p(St+1∣St,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]=s∈S∑d(s)E[t=0∑∞γtRt+1∣S0=s]=s∈S∑d(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(θ)=s∈S∑η(s)a∈A∑∇θπ(a∣s,θ)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ˉπ≃s∑dπ(s)a∑∇θπ(a∣s,θ)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=s∈S∑ρπ(s)a∈A∑∇θπ(a∣s,θ)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(θ)=s∈S∑η(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)=E[∇θlnπ(A∣S,θ)qπ(S,A)]
其中,
S
∼
η
S \sim \eta
S∼η,
A
∼
π
(
A
∣
S
,
θ
)
A \sim \pi (A| S, \theta)
A∼π(A∣S,θ)
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π(a∣s,θ)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(θ)=s∈S∑η(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)=E[∇θlnπ(A∣S,θ)qπ(S,A)]
How to prove the above equation?
考虑函数
l
n
π
ln \pi
lnπ,其中
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π(a∣s,θ)=π(a∣s,θ)∇θπ(a∣s,θ)
因此:
∇
θ
π
(
a
∣
s
,
θ
)
=
π
(
a
∣
s
,
θ
)
∇
θ
ln
π
(
a
∣
s
,
θ
)
.
\nabla_\theta\pi(a|s,\theta)=\pi(a|s,\theta)\nabla_\theta\ln\pi(a|s,\theta).
∇θπ(a∣s,θ)=π(a∣s,θ)∇θlnπ(a∣s,θ).
因此,可得:
∇
θ
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=s∑d(s)a∑∇θπ(a∣s,θ)qπ(s,a)=s∑d(s)a∑π(a∣s,θ)∇θlnπ(a∣s,θ)qπ(s,a)=ES∼d[a∑π(a∣S,θ)∇θlnπ(a∣S,θ)qπ(S,a)]=ES∼d,A∼π[∇θlnπ(A∣S,θ)qπ(S,A)]≐E[∇θlnπ(A∣S,θ)qπ(S,A)]
因为需要计算
l
n
π
(
a
∣
s
,
θ
ln π(a|s, \theta
lnπ(a∣s,θ),所以我们必须保证对于所有
s
s
s,
a
a
a,
θ
\theta
θ:
π
(
a
∣
s
,
θ
)
>
0
\pi(a|s,\theta)>0
π(a∣s,θ)>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)}},
π(a∣s,θ)=∑a′∈Aeh(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) π(a∣s,θ)。 输出层的激活函数应该是 softmax。
由于对于所有 a a a, π ( a ∣ s , θ ) > 0 \pi(a|s, \theta) > 0 π(a∣s,θ)>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π(A∣S,θ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π(at∣st,θ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π(at∣st,θ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)
ES∼d,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)]⟶∇θlnπ(a∣s,θt)qπ(s,a)
S
S
S 的采样:
S
∼
d
S \sim d
S∼d,其中分布
d
d
d 是
π
\pi
π 下的长期行为。
A A A 的采样: A ∼ π ( A ∣ S , θ ) A \sim \pi(A|S, \theta) A∼π(A∣S,θ)。 因此, 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π(at∣st,θt)=π(at∣st,θt)∇θπ(at∣st,θ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π(at∣st,θt)qt(st,at)=θt+αβt
(π(at∣st,θt)qt(st,at))∇θπ(at∣st,θ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∇θπ(at∣st,θt)
它是一种最大化
π
(
a
t
∣
s
t
,
θ
)
\pi(a_t|s_t, \theta)
π(at∣st,θ) 的梯度上升算法:
θ
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∇θπ(at∣st,θ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)
π(at∣st,θt+1)>π(at∣st,θ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) π(at∣st,θt+1)<π(at∣st,θ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}
π(at∣st,θt+1)≈π(at∣st,θt)+(∇θπ(at∣st,θt))T(θt+1−θt)=π(at∣st,θt)+αβt(∇θπ(at∣st,θt))T(∇θπ(at∣st,θt))=π(at∣st,θt)+αβt∥∇θπ(at∣st,θ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 (π(at∣st,θt)qt(st,at))∇θπ(at∣st,θ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) π(at∣st,θt) 成反比。
- 如果 π ( a t ∣ s t , θ t ) \pi(a_t|s_t, \theta_t) π(at∣st,θ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π(at∣st,θ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π(at∣st,θ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站西湖大学智能无人系统 强化学习的数学原理 公开课笔记。