Q-learning for continuous actions
a
=
a
r
g
m
a
x
a
Q
(
s
,
a
)
a = argmax_a Q(s,a)
a=argmaxaQ(s,a)
Q-learning 在处理连续值的时候会比较不方便,传统的做法:
· sample一些离散的action: 无法取到最优
· 用梯度上升法逐次求解:计算量大
都有一些缺点。
我们将网络化为一个标准的形式,将a代入,让优化问题变得简单:
μ
\mu
μ像高斯分布的均值,
Σ
\Sigma
Σ像高斯分布的方差。
为了最大化Q, 应该让
a
=
μ
(
s
)
a=\mu(s)
a=μ(s)
但是用Qlearning处理连续的action仍然不是最好的方法
Actor Critic
review
policy gradient: 无法保证采样足够多的次数,G的值很不稳定
value base(q learning)
ac
将policy gradient括号里面的部分换成Q function - V function 即可。
但是这样需要解Q和V两个network,把它们化简成一个
Q
π
(
s
t
,
a
t
)
=
E
[
r
t
+
V
π
(
s
t
+
1
)
]
Q^\pi(s_t,a_t) = E[r_t + V^\pi(s_{t+1})]
Qπ(st,at)=E[rt+Vπ(st+1)]
(可以去掉期望,不知道为什么)
Q
π
(
s
t
,
a
t
)
−
V
π
(
s
t
)
=
r
t
+
V
π
(
s
t
+
1
)
−
V
π
(
s
t
)
Q^\pi(s_t,a_t) - V^\pi(s_{t}) = r_t + V^\pi(s_{t+1}) - V^\pi(s_{t})
Qπ(st,at)−Vπ(st)=rt+Vπ(st+1)−Vπ(st)
这个地方引入了
r
t
r_t
rt, 也是有variance的,但是会比policy gradient原先的G的variance要小,因为G表示的是未来所有的reward的总和
A2C流程图
tips:
·
π
(
s
)
\pi(s)
π(s)和
V
π
(
s
)
V^\pi(s)
Vπ(s)的参数可以共用,前者输出的是action的概率分布
· 如何保证exploration:对
π
(
s
)
\pi(s)
π(s)输出的distribution增加一个限制,entropy不能太小,各个action被采用的几率要平均一点
A3C - Asychronous Advantage Actor-Critic
多个worker 异步并行
pathwise derivative policy gradient
Q-learning 解continuous actions的特别的方法。 有四个改变: