赞
踩
首先放视频链接李宏毅老师深度强化学习课程
这是一种policy based和value based方法的结合。首先复习一下加了discount和baseline的policy gradient算法:
∇
R
ˉ
θ
≈
1
N
∑
n
=
1
N
∑
t
=
1
T
n
(
∑
t
′
=
t
T
n
γ
t
′
−
t
r
t
′
n
−
b
)
∇
log
p
θ
(
a
t
n
∣
s
t
n
)
\nabla \bar{R}_{\theta} \approx \frac{1}{N} \sum_{n=1}^{N} \sum_{t=1}^{T_{n}}\left(\sum_{t^{\prime}=t}^{T_{n}} \gamma^{t^{\prime}-t} r_{t^{\prime}}^{n}-b\right) \nabla \log p_{\theta}\left(a_{t}^{n} | s_{t}^{n}\right)
∇Rˉθ≈N1n=1∑Nt=1∑Tn(t′=t∑Tnγt′−trt′n−b)∇logpθ(atn∣stn)
这里有一个问题,括号里的累计收益
G
t
n
G^n_t
Gtn可能是一个很不稳定的随机变量,即state
s
s
s采取action
a
a
a后轨迹可能有很大不同。而我们sample的轨迹又不能是太多,可能就会相差很多。所以我们希望用期望值代替sample的值。这时候就需要引入value based方法。发现这个期望值刚好是
Q
Q
Q值,即
E
[
G
t
n
]
=
Q
π
θ
(
s
t
n
,
a
t
n
)
E\left[G_{t}^{n}\right]=Q^{\pi_{\theta}}\left(s_{t}^{n}, a_{t}^{n}\right)
E[Gtn]=Qπθ(stn,atn)
这时候baseline可以用state value function
V
π
θ
(
s
t
n
)
V^{\pi_{\theta}}\left(s_{t}^{n}\right)
Vπθ(stn),这样括号里就变成
Q
π
(
s
t
n
,
a
t
n
)
−
V
π
(
s
t
n
)
Q^{\pi}\left(s_{t}^{n}, a_{t}^{n}\right)-V^{\pi}\left(s_{t}^{n}\right)
Qπ(stn,atn)−Vπ(stn),看起来需要用两个网络来分别计算,现在考虑到:
Q
π
(
s
t
n
,
a
t
n
)
=
E
[
r
t
n
+
V
π
(
s
t
+
1
n
)
]
Q^{\pi}\left(s_{t}^{n}, a_{t}^{n}\right)=E\left[r_{t}^{n}+V^{\pi}\left(s_{t+1}^{n}\right)\right]
Qπ(stn,atn)=E[rtn+Vπ(st+1n)]
我们为了简单,把期望去掉,得到
Q
π
(
s
t
n
,
a
t
n
)
=
r
t
n
+
V
π
(
s
t
+
1
n
)
Q^{\pi}\left(s_{t}^{n}, a_{t}^{n}\right)=r_{t}^{n}+V^{\pi}\left(s_{t+1}^{n}\right)
Qπ(stn,atn)=rtn+Vπ(st+1n),这样原式就可以换成
r
t
n
+
V
π
(
s
t
+
1
n
)
−
V
π
(
s
t
n
)
r_{t}^{n}+V^{\pi}\left(s_{t+1}^{n}\right)-V^{\pi}\left(s_{t}^{n}\right)
rtn+Vπ(st+1n)−Vπ(stn),这便是优势函数版的actor-critic,即Advantage Actor-Critic。
训练的过程是交互——更新V网络——更新policy——再互动
关键在于加了多个worker,具体的过程如下
一种特别的AC算法,这个算法在于critic部分不但能告诉好与不好,还能指出要采用哪一个action。也可以理解为利用actor解决最大化Q的这个optimization problem。
直观理解就是利用
π
\pi
π输出一个action
a
a
a,放入Q网络后,能后使Q值尽可能的大。
感觉最关键一点就是利用 π ( s i ) \pi(s_i) π(si)产生 a a a,同时以最大化 Q ( s i , π ( s i ) ) Q\left(s_{i}, \pi\left(s_{i}\right)\right) Q(si,π(si))为 π \pi π的优化目标。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。