演员-评论员算法是一种结合策略梯度和时序差分学习的强化学习方法。
- 演员:指策略函数
π
θ
(
a
∣
s
)
\pi_\theta(a|s)
πθ?(a∣s),输入状态输出动作或动作的概率,以期获得尽可能高的回报。
- 评论员:指价值函数
V
π
(
s
)
V^\pi(s)
Vπ(s),对当前策略的价值进行估计。
常见算法
- A3C:异步优势演员-评论员算法
- A2C:优势演员-评论员算法
1. 策略梯度与深度Q网络
策略网络希望输入一个状态,输出动作或动作的概率,使得输出动作获得的奖励最大。 (1)策略梯度
?
R
ˉ
θ
=
1
N
∑
n
=
1
N
∑
t
=
1
T
(
∑
t
′
=
t
T
γ
t
′
?
t
r
t
′
?
b
)
?
log
?
p
θ
(
a
t
n
∣
s
t
n
)
\nabla \bar{R}_\theta = \frac{1}{N}\sum_{n=1}^N \sum_{t=1}^T (\sum_{t'=t}^T \gamma^{t'-t}r_{t'}-b) \nabla \log p_\theta(a_t^n|s_t^n)
?Rˉθ?=N1?n=1∑N?t=1∑T?(t′=t∑T?γt′?trt′??b)?logpθ?(atn?∣stn?)
其中,
G
=
∑
t
′
=
t
T
γ
t
′
?
t
r
t
′
G=\sum_{t'=t}^T \gamma^{t'-t}r_{t'}
G=∑t′=tT?γt′?trt′?表示累积奖励,但是G是一个随机变量。给定相同状态s,采取动作a,而每次计算获得的奖励不同。我们有两种方式计算G值:
- 采样:做少量采样,但采样结果不稳定。
- 期望:使用网络估测累积奖励值,引入基于价值的方法DQN。DQN有两种函数:
Q
π
(
s
∣
a
)
,
V
π
(
s
)
Q^\pi(s|a),V^\pi(s)
Qπ(s∣a),Vπ(s)。
2. 演员-评论员算法
如何利用深度Q网络估计累计奖励G值呢?
- 随机变量G的期望值正好是Q:
E
[
G
t
n
]
=
Q
π
θ
(
s
t
n
,
a
t
n
)
E[G_t^n]=Q^{\pi_\theta}(s_t^n,a_t^n)
E[Gtn?]=Qπθ?(stn?,atn?)
理解:累计奖励G是在状态s采取动作a获得的奖励,与Q函数定义相同。
- 用价值函数
V
π
θ
(
s
t
n
)
V^{\pi_\theta}(s_t^n)
Vπθ?(stn?)来表示基线
理解:
V
π
θ
(
s
t
n
)
V^{\pi_\theta}(s_t^n)
Vπθ?(stn?)是
Q
π
θ
(
s
t
n
,
a
t
n
)
Q^{\pi_\theta}(s_t^n,a_t^n)
Qπθ?(stn?,atn?)的期望值,所以相减会有正有负。
基于上述两种思想,演员-评论员算法的策略梯度为:
?
R
ˉ
θ
=
1
N
∑
n
=
1
N
∑
t
=
1
T
(
Q
π
θ
(
s
t
n
,
a
t
n
)
?
V
π
θ
(
s
t
n
)
)
?
log
?
p
θ
(
a
t
n
∣
s
t
n
)
\nabla \bar{R}_\theta = \frac{1}{N}\sum_{n=1}^N \sum_{t=1}^T (Q^{\pi_\theta}(s_t^n,a_t^n)-V^{\pi_\theta}(s_t^n)) \nabla \log p_\theta(a_t^n|s_t^n)
?Rˉθ?=N1?n=1∑N?t=1∑T?(Qπθ?(stn?,atn?)?Vπθ?(stn?))?logpθ?(atn?∣stn?)
缺点 需要估计两个网络:Q网络和V网络。估测不准的风险变成两倍。
3. 优势演员-评论员算法(A2C)
为了解决需要估计两个网络导致的不稳定的问题,我们使用V网络来表示Q网络。
- 只估测网络V,用V的值来表示Q的值
Q
π
θ
(
s
t
n
,
a
t
n
)
=
E
[
r
t
n
+
V
π
θ
(
s
t
+
1
n
)
]
Q^{\pi_\theta}(s_t^n,a_t^n) = E[r_t^n+V^{\pi_\theta}(s_{t+1}^n)]
Qπθ?(stn?,atn?)=E[rtn?+Vπθ?(st+1n?)] 注意:引入随机变量
r
t
n
r_t^n
rtn?,但相对于累计奖励G,它的方差小一点。 - 把期望值去掉
Q
π
θ
(
s
t
n
,
a
t
n
)
=
r
t
n
+
V
π
θ
(
s
t
+
1
n
)
Q^{\pi_\theta}(s_t^n,a_t^n) = r_t^n+V^{\pi_\theta}(s_{t+1}^n)
Qπθ?(stn?,atn?)=rtn?+Vπθ?(st+1n?)
原始的异步优势演员-评论员算法论文试了各种方法,最后发现这个方法最好。
优势函数
Q
π
θ
(
s
t
n
,
a
t
n
)
=
r
t
n
+
V
π
θ
(
s
t
+
1
n
)
Q^{\pi_\theta}(s_t^n,a_t^n) = r_t^n+V^{\pi_\theta}(s_{t+1}^n)
Qπθ?(stn?,atn?)=rtn?+Vπθ?(st+1n?)
策略梯度
?
R
ˉ
θ
=
1
N
∑
n
=
1
N
∑
t
=
1
T
(
r
t
n
+
V
π
θ
(
s
t
+
1
n
)
?
V
π
θ
(
s
t
n
)
)
?
log
?
p
θ
(
a
t
n
∣
s
t
n
)
\nabla \bar{R}_\theta = \frac{1}{N}\sum_{n=1}^N \sum_{t=1}^T (r_t^n+V^{\pi_\theta}(s_{t+1}^n)-V^{\pi_\theta}(s_t^n)) \nabla \log p_\theta(a_t^n|s_t^n)
?Rˉθ?=N1?n=1∑N?t=1∑T?(rtn?+Vπθ?(st+1n?)?Vπθ?(stn?))?logpθ?(atn?∣stn?)
改进
|