【论文阅读—深度强化学习打王者荣耀】Parametrized Deep Q-Networks Learning: Reinforcement Learning with Discrete-Continuous Hybrid Action Space
标题 Parametrized Deep Q-Networks Learning: Reinforcement Learning with Discrete-Continuous Hybrid Action Space
论文地址
https://arxiv.org/abs/1810.06394v1
离散连续空间相关实现代码
https://github.com/cycraig/MP-DQN
关键点 离散连续空间
腾讯的 AI Lab 在这篇文章中提出了P-DQN算法, 文章关注 Real Time Strategic (RTS) games 中的应用 (discrete-continuous hybrid action space) 中的问题,并且在旗下的王者荣耀游戏中进行实验测试。
摘要
目前大多数深度强化学习算法要求 action space 要么是离散的 (e.g., Go and Atari) ,要么是连续的 (e.g. MuJoCo and Torcs), 为解决 Real Time Strategic (RTS) games 中的应用问题,文章提出了一种可以解决离散连续混合空间中问题的P-DQN算法。
在计算完整体的参数后,算法首先从一个 discrete set
[
K
]
[K]
[K] 中选取一个上层的离散action, 再选择一个连续的下层 parameter
x
k
∈
X
k
x_k\in \mathcal{X_k}
xk∈Xk, 这个 parameter 和先前选择的离散动作相关。这里
X
k
\mathcal{X_k}
Xk是一个包含所有
k
∈
[
K
]
k \in [K]
k∈[K] 对应的离散集合。
定义动作空间如下:
A = { ( k , x k ) ∣ x k ∈ X k f o r a l l k ∈ [ K ] } ( 1.1 ) \mathcal{A} = \{(k, x _k) |x_k\in \mathcal{X_k} \ \rm{for \ all\ } \mathcal{k} \in [K] \} \ \ \ \ (1.1) A={(k,xk)∣xk∈Xk for all k∈[K]} (1.1)
该文章的方法可以看成将DQN拓展到混合空间,首先定义了一个 deterministic function ,用于将state和每一个discrete action映射到continuous parameter ;文章还定义了一个action-value function,用于将state和有限的混合动作映射到真实的values
值得注意的是,下层的 continuous parameter 是可选的,不同的离散 action 之间可以拥有相同的continuous parameter
Parametrized Deep Q-Networks (P-DQN)
考虑一个拥有(1.1)中 action space
A
\mathcal{A}
A 的MDP,对于
a
∈
A
a \in \mathcal{A}
a∈A,有
Q
(
s
,
a
)
=
Q
(
s
,
k
,
x
k
)
Q(s, a) = Q(s, k, x_k)
Q(s,a)=Q(s,k,xk)。定义在
t
t
t 时刻选择的离散动作为
k
t
k_t
kt,关联的 continuous parameter 为
x
k
t
x_{k_t}
xkt,现在Bellman equation 变成:
Q
(
s
t
,
k
,
x
k
)
=
E
r
t
,
s
t
+
1
[
r
t
+
γ
m
a
x
k
∈
[
K
]
s
u
p
x
k
∈
X
k
Q
(
s
t
+
1
,
k
,
x
k
)
∣
s
t
=
s
,
a
t
=
(
k
t
,
x
k
t
)
]
(
3.1
)
Q(s_t, k, x_k) = \mathop{\mathbb{E}}\limits_{r_t, s_{t+1}}[r_t + \gamma \ \mathop{\rm{max}}\limits_{k \in [K]} \mathop{\rm{sup}}\limits_{x_k \in \mathcal{X_k}} \it{Q}(s_{t+1}, k, x_k)|s_t = s, a_t = (k_t, x_{k_t})] \ \rm(3.1)
Q(st,k,xk)=rt,st+1E[rt+γ k∈[K]maxxk∈XksupQ(st+1,k,xk)∣st=s,at=(kt,xkt)] (3.1) 对于等式右边,对每
k
∈
[
K
]
\mathcal{k} \in [K]
k∈[K]先计算
x
k
∗
=
a
r
g
s
u
p
x
k
∈
X
k
Q
(
s
t
+
1
,
k
,
x
k
)
{x_k^* = \rm{argsup}_{x_k \in \mathcal{X_k}} \ \it{Q}(s_{t+1}, k, x_k)}
xk∗=argsupxk∈Xk Q(st+1,k,xk),接着选择最大的
Q
(
s
t
+
1
,
k
,
x
k
∗
)
Q(s_{t+1, k , x_k^*})
Q(st+1,k,xk∗)
值得注意的是,当function Q Q Q 固定,对于任何 s ∈ S s \in S s∈S以及 k ∈ [ K ] k \in [K] k∈[K],可以将 a r g s u p x k ∈ X k Q ( s , k , x k ) \ \rm{argsup_{\it{x_k \in \mathcal{X}_k}} \ \it{Q}(s, k, x_k)} argsupxk∈Xk Q(s,k,xk)视作函数 x k Q : S → X k x_k^Q : S \to \mathcal{X}_k xkQ:S→Xk,则(3.1)中的Bellman equation可以改成
Q ( s t , k , x k ) = E r t , s t + 1 [ r t + γ m a x k ∈ [ K ] Q ( s t + 1 , k , x k Q ( s t + 1 ) ) ∣ s t = s ] Q(s_t, k, x_k) = \mathop{\mathbb{E}}\limits_{r_t, s_{t+1}}[r_t + \gamma \ \mathop{\rm{max}}\limits_{k \in [K]} \it{Q}(s_{t+1}, k, x_k^Q(s_{t+1}))|s_t = s] Q(st,k,xk)=rt,st+1E[rt+γ k∈[K]maxQ(st+1,k,xkQ(st+1))∣st=s]
和DQN的思想一样,用深度神经网络
Q
(
s
,
k
,
x
k
;
w
)
Q(s, k, x_k; w)
Q(s,k,xk;w) 近似
Q
(
s
,
k
,
x
k
)
Q(s, k, x_k)
Q(s,k,xk)用一个 deterministic policy network
x
k
(
.
;
θ
)
:
S
→
X
k
x_k(.;\theta):S \to \mathcal{X}_k
xk(.;θ):S→Xk来近似
x
k
Q
x_k^Q
xkQ。当
w
w
w固定的时候,我们希望找到一组
θ
\theta
θ满足:
Q
(
s
,
k
,
x
k
(
s
;
θ
)
;
w
)
≈
s
u
p
x
k
∈
X
k
Q
(
s
,
k
,
x
k
;
w
)
f
o
r
e
a
c
h
k
∈
[
K
]
(
3.2
)
Q(s,k, x_k(s;\theta);w) \approx \mathop{\rm{sup}}\limits_{x_k \in \mathcal{X}_k} Q(s, k ,x_k; w) \rm{ \ for \ each \ }\mathcal{k} \in [K] \ \ (3.2)
Q(s,k,xk(s;θ);w)≈xk∈XksupQ(s,k,xk;w) for each k∈[K] (3.2)
设
w
t
,
θ
t
w_t,\theta_t
wt,θt为t时刻的value network和deterministic policy network的参数,对于固定的
n
≥
1
n\ge1
n≥1,定义n-step目标
y
t
y_t
yt为:
y
t
=
∑
i
=
0
n
−
1
γ
i
r
t
+
i
+
γ
n
m
a
x
k
∈
[
K
]
Q
(
s
t
+
n
,
k
,
x
k
(
s
t
+
n
,
θ
t
)
;
w
t
)
(
3.3
)
y_t = \sum_{i=0}^{n-1} \gamma^ir_{t+i}+\gamma^n\mathop{\rm{max}}\limits_{k \in [K]}Q(s_{t+n}, k, x_k(s_{t+n}, \theta_t); w_t) \ \ \ \ (3.3)
yt=i=0∑n−1γirt+i+γnk∈[K]maxQ(st+n,k,xk(st+n,θt);wt) (3.3)
定义两个loss function:
l
t
Q
(
w
)
=
1
2
[
Q
(
s
t
,
k
t
,
x
k
t
;
w
)
−
y
t
]
2
a
n
d
l
t
Θ
(
θ
)
=
−
∑
k
=
1
K
Q
(
s
t
,
k
,
x
k
(
s
t
;
θ
)
;
w
t
)
(
3.4
)
\mathcal{l_t^Q(w) = \frac{1}{2}[Q(s_t, k_t, x_{k_t};w)-y_t]^2} \ \ \rm{and} \ \ \mathcal{l_t^\Theta(\theta) = -\sum_{k=1}^{\rm{K}}\it{Q}(s_t, k, x_k(s_t; \theta);w_t)} \ \ \ \ (3.4)
ltQ(w)=21[Q(st,kt,xkt;w)−yt]2 and ltΘ(θ)=−k=1∑KQ(st,k,xk(st;θ);wt) (3.4)
文章用stochastic gradient methods更新weights。当
w
w
w固定时,为最小化(3.4)中的
l
t
Θ
(
θ
)
\mathcal{l_t^\Theta(\theta)}
ltΘ(θ),理想情况下可以通过一个符合two-timescale update rule的方式来完成。具体来说,更新
w
w
w的时候用到的stepsize
α
t
\alpha_t
αt和更新
θ
\theta
θ的stepsize
β
t
\beta_t
βt比较微不足道(asymptotically negligible)。同时需要
α
t
,
β
t
{\alpha_t, \beta_t}
αt,βt满足Robbins-Monro
condition
具体算法如下:
需要注意的是,在探索过程中算法需要一个定义在
A
\mathcal{A}
A上的分布
ξ
\xi
ξ,实践中可以为
A
\mathcal{A}
A上的均匀分布。
The Asynchronous n-step P-DQN Algorithm
为了加速训练过程,仿照 n-step DQN 文章提出了asynchronous n-step P-DQN。考虑一个每一个process计算自己的local gradient并和全局 “parameter server” 交互的 centralized distributed training framework:每一个process运行一个独立的环境产生转移轨迹并用自己的转移来计算 w w w和 θ \theta θ的梯度,这些梯度后续被一起用于计算全局的parameters。
具体算法如下:
实验
文章一共采用了三个实验场景,分别是:1) a simulation example, 2) scoring a goal in
simulated RoboCup soccer, 3) the solo mode in game KOG。
前面两个实验的详细设定和结果可以可以通过阅读论文了解,下面介绍第三个实验:
Solo mode of King of Glory
在实验中,game的state用以179维的特征向量表示,数据由game engin直接生成。这些特征包含两个部分(basic attributes of the units and the relative positions of other units with respect to the hero controlled by the player as well as the attacking relations between units)
实验将英雄的action简化成
K
=
6
K = 6
K=6的离散动作:
M
o
v
e
,
A
t
t
a
c
k
,
U
s
e
S
k
i
l
l
1
,
U
s
e
S
k
i
l
l
2
,
U
s
e
S
k
i
l
l
3
,
R
e
t
r
e
a
t
Move, Attack,UseSkill1,UseSkill2,UseSkill3,Retreat
Move,Attack,UseSkill1,UseSkill2,UseSkill3,Retreat。 一些action可能拥有额外continuous parameters来使行为更加精准。例如
k
=
M
o
v
e
k = Move
k=Move,方向由
x
k
=
α
x_k = \alpha
xk=α定义,
α
∈
[
0
,
2
π
]
\alpha \in [0,2\pi]
α∈[0,2π]。值得注意的是,每一个英雄的技能是独一无二的,完整的动作列以及关联的parameters如下:
由于
M
a
g
i
c
P
o
i
n
t
Magic Point
MagicPoint和
C
o
o
l
D
o
w
n
Cool Down
CoolDown的相关限制,实际操作中
m
a
x
k
∈
[
K
]
max_{k \in [K]}
maxk∈[K]被替换成
m
a
x
k
∈
[
K
]
a
n
d
k
i
s
u
s
a
b
l
e
max_{k \in [K] and \ k \ is \ usable}
maxk∈[K]and k is usable,多步目标由前文的(3.3)计算
Reward for KoG
相关描述如下:
整体reward公式如下:
公式中系数只是大概的设定了一下,文章中的实验在一定范围内对这些数据并不是特别敏感。
文章采取了Algorithm 2 (with 48 parallel workers),network x ( θ ) μ ( θ ) x(\theta) \mu(\theta) x(θ)μ(θ) are both in the size of 256-128-64 nodes in each hidden layer, Q ( w ) Q(w) Q(w)is in size of 256-128-64-64 为了缩短episode length,采用了跳帧(frame skipping)技术并设置frame skipping parameter为2。
更进一步,对Algorithm 2中的参数,有: t m a x = 20 t_{max} = 20 tmax=20;训练用到 ϵ − g r e e d y ( ϵ = 0.255 ) \epsilon-greedy(\epsilon = 0.255) ϵ−greedy(ϵ=0.255)来采样,具体为前五个动作概率为0.005而 R e t r e a t Retreat Retreat概率为0.0005;如果采样得到的动作是不可行的,就在可行的动作中用贪心方法选择。learning rate设置为0.001
文章中算法与DDPG对比结果如下: