基于潜变量的层级强化学习,主要依赖的工作有:SAC和real NVP
摘要
本文的目标是设计一个层级强化学习算法,按照自底向上的方式逐层构建分层表示。不同与以往HRL强制底层agent使用高层信号,从而限制或削弱其能力,进而强制层次生成,本文提出的框架中的每一层都致力于直接完成任务。
框架内的每一层都被添加了潜变量,可从先验分布中采样得到。最大熵强化学习将这些潜变量和每一层的策略结合起来,并且高层可以通过潜变量空间直接控制底层行为。更进一步,通过限制从潜变量到行为的映射为可逆映射,高层可以任意地撤销底层的行为。因此,无论是高层还是底层的行为都没有受到限制。
引言
层级强化学习的主要目标是在不同层次下进行推理和决策,协同完成任务。层级强化学习问题的核心是:如何自动建立层次?且保证层次划分的有效性(不退化到单层)?
以往方法都是引入人为限制,如限制底层只能接收部分环境状态,为底层设定额外约束或先验,等等。其结果是底层和高层都无法独立完成任务。与以往不同,在本文框架下,无论是高层还是底层的行为都没有受到限制:每一层的策略都与潜变量相结合,潜变量决定了从状态到动作的映射,底层的潜变量空间可以作为高层的动作空间,再加上可逆映射和全部环境observation——在此设定下,底层试图完成任务,如若不能,可以使任务的表示变得简单,高层在简化后的潜变量空间试图完成任务,该框架可以不断向上扩展,且每一层的结构类似,可按照同一流程进行训练。
类似于SAC和VAE,本文利用神经网络将一个采样于球形高斯先验分布的随机变量,映射成任意的动作分布
π
(
⋅
∣
s
t
)
\pi(\cdot|s_t)
π(⋅∣st)。同时为保证映射的可逆性,所采用的神经网络选取了real NVP。
本文的主要贡献是提出了一个基于潜变量的稳定的可扩展的最大熵强化学习算法,同时还有一个基于潜变量建立层级结构的框架。在训练中,每一层都可以直接使用任务reward进行训练,也可根据具体任务对reward进行分解重塑,特别是在稀疏reward的困难任务中,reward重塑对提高表现很有帮助。
注意:该模型没有在时间域分层
理论推导:概率图模型&变分推导
最大熵强化学习的介绍见SAC,优化目标为
在理论推导中,把强化学习的最优控制问题:如何决定动作以获得最优未来?转化为概率图模型的推理问题:给定未来最优,如何选择采取哪个动作?
概率图模型
推导基于上图(a)所示的概率图模型,包含概率转移
p
(
s
t
+
1
∣
s
t
,
a
t
)
p(s_{t+1}|s_t,a_t)
p(st+1∣st,at)和动作先验分布
p
(
a
t
)
p(a_t)
p(at)。我们的目的是在给定reward函数下,推导最优轨迹分布,为每一state-action 对引入一个二值随机变量
O
t
O_t
Ot,用来表示当前时间步是否为“最优”。我们的目标是推导出后验动作分布
π
∗
(
a
t
∣
s
t
)
=
p
(
a
t
∣
s
t
,
O
t
:
T
)
\pi^*(a_t|s_t)=p(a_t|s_t,O_{t:T})
π∗(at∣st)=p(at∣st,Ot:T),即最优动作能使从当前到未来所有状态都是最优的。
且
p
(
O
t
∣
s
t
,
a
t
)
=
exp
(
r
(
s
t
,
a
t
)
)
p(O_t|s_t,a_t)=\exp(r(s_t,a_t))
p(Ot∣st,at)=exp(r(st,at)),则最优轨迹分布可以写为:
我们可以利用这个分布来进行查询,如
p
(
a
t
∣
s
t
,
O
t
:
T
)
p(a_t|s_t,O_{t:T})
p(at∣st,Ot:T),下面我们将使用变分推断将查询
p
(
a
t
∣
s
t
,
O
t
:
T
)
p(a_t|s_t,O_{t:T})
p(at∣st,Ot:T)转化为最大熵强化学习问题。
变分推断
上式推导出的最优动作分布不能直接作为策略。首先,它会导出一个过于乐观的策略甚至假定转移概率也可以被修改以偏好最优行为;其次,在连续动作情况下,最优策略往往难以处理,必须进行近似。我们使用结构化的变分推断来修正这两个错误。我们限制转移概率和真实环境一致,并且将策略限制为某些参数化的分布,则变分分布
q
(
τ
)
q(\tau)
q(τ)定义为:
其中
π
(
a
t
∣
s
t
)
\pi(a_t|s_t)
π(at∣st)为待学习的参数化策略,我们通过最大化证据下界来近似它:
上式的推导为:
D
K
L
(
q
(
τ
)
∣
∣
p
(
O
0
:
T
,
τ
)
)
=
E
τ
∼
ρ
π
(
τ
)
[
log
q
(
τ
)
−
log
p
(
O
0
:
T
,
τ
)
]
=
E
τ
∼
ρ
π
(
τ
)
[
log
q
(
τ
)
−
log
p
(
O
0
:
T
)
−
log
p
(
τ
∣
O
0
:
T
)
]
=
D
K
L
(
q
(
τ
)
∣
∣
p
(
τ
∣
O
0
:
T
)
)
−
log
p
(
O
0
:
T
)
D_{KL}(q(\tau)||p(O_{0:T},\tau))=E_{\tau\sim \rho_\pi(\tau)}[\log q(\tau)-\log p(O_{0:T},\tau)] \\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=E_{\tau\sim \rho_\pi(\tau)}[\log q(\tau)-\log p(O_{0:T})-\log p(\tau|O_{0:T})] \\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=D_{KL}(q(\tau)||p(\tau|O_{0:T}))-\log p(O_{0:T})
DKL(q(τ)∣∣p(O0:T,τ))=Eτ∼ρπ(τ)[logq(τ)−logp(O0:T,τ)] =Eτ∼ρπ(τ)[logq(τ)−logp(O0:T)−logp(τ∣O0:T)] =DKL(q(τ)∣∣p(τ∣O0:T))−logp(O0:T)则
log
p
(
O
0
:
T
)
+
D
K
L
(
q
(
τ
)
∣
∣
p
(
O
0
:
T
,
τ
)
)
=
D
K
L
(
q
(
τ
)
∣
∣
p
(
τ
∣
O
0
:
T
)
)
≥
0
\log p(O_{0:T})+D_{KL}(q(\tau)||p(O_{0:T},\tau))=D_{KL}(q(\tau)||p(\tau|O_{0:T}))\ge0
logp(O0:T)+DKL(q(τ)∣∣p(O0:T,τ))=DKL(q(τ)∣∣p(τ∣O0:T))≥0
由于
p
p
p和
q
q
q的初始状态和转移概率都相同,则上式可简化为:
log
p
(
O
0
:
T
)
≥
−
D
K
L
(
q
(
τ
)
∣
∣
p
(
O
0
:
T
,
τ
)
)
=
−
E
τ
∼
ρ
π
(
τ
)
[
log
q
(
τ
)
−
log
p
(
τ
∣
O
0
:
T
)
]
=
−
E
τ
∼
ρ
π
(
τ
)
[
log
p
(
s
0
)
+
∑
t
=
0
T
log
π
(
a
t
∣
s
t
)
+
∑
t
=
0
T
log
p
(
s
t
+
1
∣
s
t
,
a
t
)
−
log
p
(
s
0
)
−
∑
t
=
0
T
log
p
(
a
t
)
−
∑
t
=
0
T
log
p
(
s
t
+
1
∣
s
t
,
a
t
)
−
∑
t
=
0
T
r
(
s
t
,
a
t
)
]
=
E
τ
∼
ρ
π
(
τ
)
[
∑
t
=
0
T
r
(
s
t
,
a
t
)
−
D
K
L
(
π
(
⋅
∣
s
t
)
∣
∣
p
(
⋅
)
)
]
≜
J
(
π
)
\log p(O_{0:T})\ge-D_{KL}(q(\tau)||p(O_{0:T},\tau))=-E_{\tau\sim \rho_\pi(\tau)}[\log q(\tau)-\log p(\tau|O_{0:T})] \\=-E_{\tau\sim \rho_\pi(\tau)}[\log p(s_0)+\sum_{t=0}^T\log\pi(a_t|s_t)+\sum_{t=0}^T\log p(s_{t+1}|s_t,a_t) \\-\log p(s_0)-\sum_{t=0}^T\log p(a_t)-\sum_{t=0}^T\log p(s_{t+1}|s_t,a_t)-\sum_{t=0}^Tr(s_t,a_t)] \\=E_{\tau\sim \rho_\pi(\tau)}\Big[\sum_{t=0}^Tr(s_t,a_t)-D_{KL}(\pi(\cdot|s_t)||p(\cdot))\Big]\triangleq J(\pi)
logp(O0:T)≥−DKL(q(τ)∣∣p(O0:T,τ))=−Eτ∼ρπ(τ)[logq(τ)−logp(τ∣O0:T)]=−Eτ∼ρπ(τ)[logp(s0)+t=0∑Tlogπ(at∣st)+t=0∑Tlogp(st+1∣st,at)−logp(s0)−t=0∑Tlogp(at)−t=0∑Tlogp(st+1∣st,at)−t=0∑Tr(st,at)]=Eτ∼ρπ(τ)[t=0∑Tr(st,at)−DKL(π(⋅∣st)∣∣p(⋅))]≜J(π)如果我们选择先验动作分布为一个均匀分布,则我们就导出了上面所示的最大熵目标。
模型:Latent Space Policy
潜变量策略
我们定义基础策略,包括:一个条件动作分布
π
(
a
t
∣
s
t
,
h
t
)
\pi(a_t|s_t,h_t)
π(at∣st,ht),其中
h
t
h_t
ht是一个潜随机变量;一个先验分布
p
(
h
t
)
p(h_t)
p(ht)。该策略的动作生成方式为:首先从先验中采样
h
t
h_t
ht,再根据条件分布生成
a
t
a_t
at。
h
t
h_t
ht的添加导出了一个新的图模型,如图b所示,基础策略被结合进MDP的状态转移里去:
p
(
s
t
+
1
∣
s
t
,
h
t
)
=
∫
A
p
(
s
t
+
1
∣
s
t
,
a
t
)
π
(
a
t
∣
s
t
,
h
t
)
d
a
t
p(s_{t+1}|s_t,h_t)=\int_Ap(s_{t+1}|s_t,a_t)\pi(a_t|s_t,h_t)da_t
p(st+1∣st,ht)=∫Ap(st+1∣st,at)π(at∣st,ht)dat如图c所示,新模型与旧模型有相似的语义,且有一组新的,更高层的动作
h
t
h_t
ht。
我们可以多次重复该过程,建立起一个任意深的分层表示。
训练
基础策略采用从潜变量到动作的双射
a
t
=
f
(
h
t
;
s
t
)
a_t=f(h_t;s_t)
at=f(ht;st),使用real NVP,则
a
t
a_t
at的概率密度表示为:
模型结构
下图右侧是整个的模型结构。左侧展示了每一层的具体结构,
s
t
s_t
st下面是两个全连接层用于生成 state embedding,
h
t
(
i
+
1
)
h_t^{(i+1)}
ht(i+1)下面是两个耦合层coupling layer in real NVP
算法
轮流训练每一层,冻结其权重,然后把下一层的潜变量作为动作空间训练新的层,每一层都使用相同的最大熵目标,每一层都为上一层简化任务。
在实现中,每一层都使用SAC作为基本算法优化最大熵目标。