Policy Gradient的缺点
根据策略梯度方法,参数更新的方法是
θ
n
e
w
=
θ
o
l
d
+
α
∇
θ
J
\theta_{new}=\theta_{old}+\alpha\nabla_\theta J
θnew=θold+α∇θJ
策略梯度算法的硬伤就在更新步长
α
\alpha
α,当步长不合适时,更新的参数所对应的策略是一个更不好的策略,当利用这个更不好的策略进行采样学习时,再次更新的参数会更差,因此很容易导致越学越差,最后崩溃。
(对于监督性学习来说,当某次迭代前后结果相差太大时,下一次更新有可能会解决这个问题)
合适的步长是指当策略更新后,回报函数的值不能更差。为了实现这一点,一般的想法就是将新策略的回报分解为旧策略的回报加上旧策略的一些什么东西。
贝尔曼公式的等效方法
假设
η
(
π
θ
)
\eta(\pi_{\theta})
η(πθ)表示当前策略
π
θ
\pi_\theta
πθ下轨迹
τ
\tau
τ的累积反馈值期望(
π
θ
→
π
\pi_\theta\rightarrow\pi
πθ→π):
η
(
π
)
=
E
τ
∼
π
[
∑
t
=
0
∞
γ
t
(
r
(
s
t
)
)
]
\eta(\pi)=E_{\tau\sim\pi}[\sum_{t=0}^\infty\gamma^t(r(s_t))]
η(π)=Eτ∼π[t=0∑∞γt(r(st))]
其中
γ
\gamma
γ是折扣系数。则新策略
π
~
\widetilde{\pi}
π
与旧策略
π
\pi
π之间存在以下关系(类似于贝尔曼公式):
η
(
π
~
)
=
η
(
π
)
+
E
τ
∼
π
~
[
∑
t
=
0
∞
γ
t
A
π
(
s
t
,
a
t
)
]
,(1)
\eta(\widetilde{\pi})=\eta(\pi)+E_{\tau\sim\widetilde{\pi}}[\sum_{t=0}^\infty\gamma^tA_\pi(s_t,a_t)]\text{,(1)}
η(π
)=η(π)+Eτ∼π
[t=0∑∞γtAπ(st,at)],(1)
其中
A
A
A称为优势函数。上式可以理解为:新策略后的累积反馈期望值=旧策略累积反馈期望值+新旧策略在该轨迹上的优势差。
优势函数
(1)假设
s
s
s是当前状态,
a
1
,
a
2
a_1,a_2
a1,a2是接下来可能的两个动作,则值函数
V
(
s
)
V(s)
V(s)表示状态
s
s
s下所有可能动作值函数关于动作概率的平均值。
Q
(
s
,
a
1
)
Q(s,a_1)
Q(s,a1)是单个动作对应的值函数。
V
π
(
s
)
=
π
(
a
1
∣
s
)
Q
π
(
s
,
a
1
)
+
π
(
a
2
∣
s
)
Q
(
s
,
a
2
)
V_\pi(s)=\pi(a_1|s)Q_\pi(s,a_1)+\pi(a_2|s)Q(s,a_2)
Vπ(s)=π(a1∣s)Qπ(s,a1)+π(a2∣s)Q(s,a2)
(2)
Q
π
(
s
,
a
)
−
V
π
(
s
)
Q_\pi(s,a)-V_\pi(s)
Qπ(s,a)−Vπ(s)指的是动作值函数相比于当前状态的值函数的优势,如果它大于0,这说明它比平均动作要好。
A
(
s
,
a
1
)
=
Q
π
(
s
,
a
1
)
−
V
π
(
s
)
A(s,a_1)=Q_\pi(s,a_1)-V_\pi(s)
A(s,a1)=Qπ(s,a1)−Vπ(s)
上述(1)可以进一步转换为:
η
(
π
~
)
=
η
(
π
)
+
∑
t
=
0
∞
∑
s
P
(
s
t
=
s
)
∑
a
π
~
(
a
∣
s
)
γ
t
A
π
(
s
,
a
)
=
η
(
π
)
+
∑
s
ρ
π
~
(
s
)
∑
a
π
~
(
a
∣
s
)
A
π
(
s
,
a
)
,(2)
\begin{aligned} \eta(\widetilde{\pi})&=\eta(\pi)+\sum_{t=0}^\infty\sum_sP(s_t=s)\sum_a\widetilde{\pi}(a|s)\gamma^tA_\pi(s,a)\\ \\ \\ &=\eta(\pi)+\sum_s\rho_{\widetilde{\pi}}(s)\sum_a\widetilde{\pi}(a|s)A_\pi(s,a)\text{,(2)} \end{aligned}
η(π
)=η(π)+t=0∑∞s∑P(st=s)a∑π
(a∣s)γtAπ(s,a)=η(π)+s∑ρπ
(s)a∑π
(a∣s)Aπ(s,a),(2)
其中
即
ρ
π
~
(
s
)
=
∑
t
=
0
∞
γ
t
P
(
s
t
=
s
)
\rho_{\widetilde{\pi}}(s)=\sum_{t=0}^\infty\gamma^tP(s_t=s)
ρπ
(s)=t=0∑∞γtP(st=s)
四个技巧
基于式子(2),有以下四个技巧来解决问题
技巧(1):使用旧策略的状态分布近似代替新策略的状态分布。
ρ
π
~
(
s
)
≈
ρ
π
(
s
)
\rho_{\widetilde{\pi}}(s)\approx\rho_\pi(s)
ρπ
(s)≈ρπ(s)
技巧(2):重要性采样方法,对动作分布进行处理。
∑
a
π
~
(
a
∣
s
)
A
π
(
s
,
a
)
=
E
a
∼
π
[
π
~
(
a
∣
s
)
π
(
a
∣
s
)
A
π
(
s
,
a
)
]
\sum_a\widetilde{\pi}(a|s)A_\pi(s,a)=E_{a\sim\pi}[\frac{\widetilde{\pi}(a|s)}{\pi(a|s)}A_\pi(s,a)]
a∑π
(a∣s)Aπ(s,a)=Ea∼π[π(a∣s)π
(a∣s)Aπ(s,a)]
结合(1),(2)两个技巧,可以得到
η
(
π
)
\eta(\pi)
η(π)的替代目标函数
J
(
π
)
J(\pi)
J(π)
J
(
π
~
)
=
η
(
π
)
+
E
s
∼
ρ
,
a
∼
π
[
π
~
(
a
∣
s
)
π
(
a
∣
s
)
A
π
(
s
,
a
)
]
,(3)
J(\widetilde{\pi})=\eta(\pi)+E_{s\sim\rho,a\sim\pi}[\frac{\widetilde{\pi}(a|s)}{\pi(a|s)}A_\pi(s,a)]\text{,(3)}
J(π
)=η(π)+Es∼ρ,a∼π[π(a∣s)π
(a∣s)Aπ(s,a)],(3)
式子(2)和(3)的不同之处在于状态概率的不同,所以
J
(
π
~
)
J(\widetilde{\pi})
J(π
)和
η
(
π
~
)
\eta(\widetilde{\pi})
η(π
)为一阶相似
{
J
(
π
)
=
η
(
π
)
∇
θ
J
(
π
)
∣
θ
=
θ
o
l
d
=
∇
θ
η
(
π
)
∣
θ
=
θ
o
l
d
\begin{cases} J(\pi)=\eta(\pi) \\ \nabla_\theta J(\pi)|_{\theta=\theta_{old}}=\nabla_\theta \eta(\pi)|_{\theta=\theta_{old}} \end{cases}
{J(π)=η(π)∇θJ(π)∣θ=θold=∇θη(π)∣θ=θold
通过一阶近似等条件,可以确定凸函数
η
(
π
~
)
\eta(\widetilde{\pi})
η(π
)的下界
即:
η
(
π
~
)
≥
J
(
π
~
)
−
C
⋅
D
K
L
m
a
x
(
π
,
π
~
)
,
C
=
2
ϵ
γ
(
1
−
γ
)
2
\eta(\widetilde{\pi})\geq J(\widetilde{\pi})-C·D_{KL}^{max}(\pi,\widetilde{\pi})\text{,}C=\frac{2\epsilon\gamma}{(1-\gamma)^2}
η(π
)≥J(π
)−C⋅DKLmax(π,π
),C=(1−γ)22ϵγ
其中,
D
K
L
(
π
,
π
~
)
D_{KL}(\pi,\widetilde{\pi})
DKL(π,π
)表示两个分布的KL散度。其次,可以利用这个下界证明策略的单调性(证明略)。
技巧(3)利用平均KL散度代替最大KL散度
技巧(4)使用
π
\pi
π代替
ρ
\rho
ρ
通过(3),(4)得到最终的优化目标函数与条件
m
a
x
θ
E
s
∼
π
,
a
∼
π
[
π
~
(
a
∣
s
)
π
(
a
∣
s
)
A
π
(
s
,
a
)
]
subject to
E
s
∼
π
[
D
K
L
(
π
(
⋅
∣
s
)
,
π
~
(
⋅
∣
s
)
)
]
≤
δ
\begin{aligned} max_\theta E_{s\sim\pi,a\sim\pi}[\frac{\widetilde{\pi}(a|s)}{\pi(a|s)}A_\pi(s,a)]\\ \\ \text{subject to }E_{s\sim\pi}[D_{KL}(\pi(·|s),\widetilde{\pi}(·|s))]\leq\delta \end{aligned}
maxθEs∼π,a∼π[π(a∣s)π
(a∣s)Aπ(s,a)]subject to Es∼π[DKL(π(⋅∣s),π
(⋅∣s))]≤δ