这篇文章是2018年的NIPS,通过Meta-Learning技术来设计出一种时间一致性的探索策略。这篇文章的思想其实非常简单,就是在现有policy的输入上增加了一个高斯分布的Latent Space(潜在空间),从而形成一种结构性的随机探索策略MAESN。 这种探索策略最大的特点有2个:
- 一个是基于梯度的元学习算法学到的,故具有Fast Adaptation到新的task的特点。
- 另一个是具有时间一致性特点,在策略中参入了与时间相关的因素,使得Agent在探索的时候,好像有了“视野”一般,会根据算法走到哪一步来决定相应的探索。
写在最前面:这篇文章是用于解决探索问题的,如果你的算法遭遇了探索性欠缺的困境,不妨来读读这篇文章!
参考列表: ①MAESN论文解读 ②Tensorlow源码
Meta-Reinforcement Learning of Structured Exploration Strategies
Abstract
- 传统的RL算法采用的探索策略一般都是只和Agent所处环境中的状态State相关的函数,如
π
(
a
∣
s
)
\pi(a|s)
π(a∣s)。这种做法虽然简单,但是一来这种探索方式和时间无关;二来真实的环境往往涉及多个tasks(在RL中,task就相当于多个env),那么想在多个tasks的任务中,获取有效的经验样本,显然经典的探索策略是欠缺的,或者说很低效,只适用于Task-Agnostic。
- 那么一个直接的思想就是,利用先前的经验来学习出一个可以适应多任务的探索策略出来,然后面对相似结构的新环境就可以快速生产出有效的经验样本出来,也就是说我们使用元学习算法去学习出一个可以快速适应到新环境的探索策略!说到快速适应的元学习算法,首先想起的就是MAML了,因此这篇文章就是以MAML为原型,一种基于梯度下降的元学习算法——Model Agnostic exploration with structured noise(MAESN)。
- MAESN的原理如图所示:算法利用过去的经验来学习出一个初始化策略参数
θ
\theta
θ以及一个潜在空间
z
z
z(实际上就是一个可学习的网络产生的高斯分布
N
\mathcal{N}
N),这个隐空间会往
π
\pi
π里注入随机性噪声,从而产生一个结构性探索策略
π
θ
(
a
∣
s
,
z
)
\pi_\theta(a|s,z)
πθ?(a∣s,z)。需要注意的是,潜在空间是一个和时间步相关的结构,因为
μ
、
σ
\mu、\sigma
μ、σ都是可学习的参数,随着step不断变化的量,是和时间相关的,因此也就使得潜在空间的时间相关以及整个探索策略的时间一致性。
- 实验结果表明,这种可学习的探索策略比经典的Meta-RL算法或者传统的只涉及动作空间随机性的RL算法能产生更有效的经验样本,使得算法本身的学习更有效率。想想也是,当你的探索策略长着一双"眼睛"的时候,即它会根据走到哪一步了从而产生合适的样本来供Agent学习。
Introduction
经典Meta-RL算法或者RL算法的探索策略遇到较为复杂的环境,比如多个tasks的任务,那么那种只靠动作空间的随机性是很低效的,往往会让算法陷入不理想的局部最优。因为他们都是Task-Agnostic的,所以无法利用task结构本身来提供好的探索,即先前的经验。又因为现实中的RL任务大多都比较复杂,包含着多个tasks,如果探索策略可以利用先前的经验去产生经验样本,那么就可以快速适应到具有相似结构的新的tasks上。就像Agent在其他家务活上拥有一定的经验,那么当给他一个新的家务的时候,他就可以利用过去在其他家务上的经验去产生一种高效的探索策略,从而可以快速学习这个新家务。 因此,文章的主要目的在于研究出一种算法:可以利用多个不同且结构相似的tasks产生的过去的经验来元学习出一种探索策略。经典的Meta-RL算法虽然也是元学习算法,但是他们的探索策略都比较拉跨,原因如下:
- 经典的Meta-RL算法的探索策略往往取自于RL的思想,是直接利用在动作空间制造扰动的,和策略网络直接相关的动作——
π
(
a
∣
s
)
\pi(a|s)
π(a∣s)。由于策略往往需要达到最优,即确定性的。而众所周知,具备好的探索能力的探索策略是要随机性的,这是经典算法的一大缺陷。
- 通过RNN的一次前向传递使得它们能够非常快速地适应,但与从头开始学习相比,这极大地限制了它们的渐近性,因为RNN一般不对应于收敛迭代优化过程(这一条我自己不是很理解)。
- 他们都是Task-Agnostic的,面对复杂的环境时经典Meta-RL算法可能学不到好东西。
- 探索策略一般只与状态有关,不满足时间一致性,极大的削弱了Agent“面对什么样的境况而产生合适的经验”的能力。个人认为,大多的RL算法在训练后期都很“无力”,这一般都是陷入了局部最优,而此时的经验样本来自于逐渐趋于确定性的探索策略,不仅如此,由于仅仅取决于状态,那么后期由于策略网络的逐渐确定性,往往下一个状态也是基本确定的,这样子探索得来的样本不会使得Agent有较大的表现提升或者说逃离局部最优,此时的经验样本是低效的。因此凸显了时间一致性的重要性以及探索策略不能单单只取决于状态,因为状态在后期会消磨策略的随机性。
作者设计的元学习算法MAESN具有如下特点:
- 利用结构相似且不同的task产生的先前的经验去学习策略参数
θ
\theta
θ的初始化值以及一个潜空间
z
z
z。
- 具有时间一致性。
- 比单纯动作空间的扰动具有更高的效率。
- 通过梯度下降可以快速适应到新的task上。
- 适用于复杂或多tasks的环境。
- 形成的结构化策略仍保持一定的随机性。
Model Agnostic Exploration with Structured Noise
Overview
MAESN可以理解为在MAML的基础上,加入了结构化的随机探索策略。这种随机探索策略的随机性不仅来自于动作的扰动,而且来自于通过元学习得到的潜空间。 这个潜空间具有时间一致性。 在MAESN算法中,策略
θ
\theta
θ和潜空间都会被元学习,从而可以快速适应到新的task上。
Policies with Latent State
为了设计出时间一致性的随机探索,作者提出构建一个潜空间,其本质就是一个高斯分布——
z
~
N
(
μ
,
σ
)
z\sim\mathcal{N}(\mu, \sigma)
z~N(μ,σ),将这个潜在空间产生的随机噪声和状态一起加入到探索策略中,输出的就是我们在这个step的探索动作
a
~
π
θ
(
a
∣
s
,
z
)
a\sim\pi_\theta(a|s, z)
a~πθ?(a∣s,z)其中隐变量相当于是一个条件,具体如图所示: Note:
- 隐变量
z
z
z在每一个回合采样1次,因此提供了时间连贯的随机性,也为动作的获得提供了连贯性。
- MAESN将会特地为每个episode从潜空间中取出一个条件值,但需要注意的是,动作还是每个时间步取一次。
- 因为
π
θ
\pi_\theta
πθ?是一个非线性的神经网络,所以具有随机性的潜空间作为输入就会产生一个任意复杂的分布。
- 后续会讲到,
μ
、
σ
\mu、\sigma
μ、σ是可学习的参数。
Meta-Learning Latent Variable Policies
接下来是这个结构性随机策略的训练细节。 作者使用Gradient-based元学习(或者直白一点就是MAML)和变分推断(VI)相结合。具体来说,设
μ
i
,
σ
i
\mu_i,\sigma_i
μi?,σi?为每一个task i的变分参数,也就是说策略参数
θ
\theta
θ是各个task共享的,而初始变分参数
(
μ
0
,
σ
0
)
、
(
μ
1
,
σ
1
)
?
(\mu_0,\sigma_0)、(\mu_1,\sigma_1)\cdots
(μ0?,σ0?)、(μ1?,σ1?)?是每个task独有的。
- 变分思想体现在,每个变分参数都是由一个网络组成的,相当于一个非线性函数,而我们的目标在于在变分参数作为变量下,最大化期望累计奖励。如何更新呢?通过梯度下降来backward到变分参数上。既然涉及到梯度下降,故我们的目标函数必须是可微分的,这里我们就可以借用MAML这篇论文中提及RL中的Gradient-based系列算法。此外经典VI少不了KL散度的加入,也就是说在目标函数中加上一项隐变量和单位高斯分布的KL散度作为正则项。
- 元学习部分体现在,在内循环中,针对每个task,隐变量从变分参数
μ
、
σ
\mu、\sigma
μ、σ中采样;动作从隐变量为条件的分布中采样,然后做目标函数对变分参数的梯度更新,从而获得Fast-weights——
μ
′
,
σ
′
\mu',\sigma'
μ′,σ′。然后Meta-Learner将集合所有tasks上Fast-weights的loss损失和来更新Slow-weights——
θ
、
(
μ
0
,
σ
0
)
、
(
μ
1
,
σ
1
)
?
\theta、(\mu_0,\sigma_0)、(\mu_1,\sigma_1)\cdots
θ、(μ0?,σ0?)、(μ1?,σ1?)?。具体的计算图如下所示:用公式表示如下:
max
?
θ
,
μ
i
,
σ
i
∑
i
∈
t
a
s
k
s
E
a
t
~
π
(
a
t
∣
s
t
;
θ
i
′
,
z
i
′
)
,
z
i
′
~
N
(
μ
i
′
,
σ
i
′
)
[
∑
t
R
i
(
s
t
)
]
?
∑
i
∈
t
a
s
k
s
D
K
L
(
N
(
μ
i
,
σ
i
)
∣
∣
N
(
0
,
I
)
)
(3)
\max_{\theta,\mu_i,\sigma_i}\sum_{i\in tasks}\mathbb{E}_{a_t\sim\pi(a_t|s_t;\theta_i',z_i'),z_i'\sim\mathcal{N}(\mu_i',\sigma_i')}[\sum_tR_i(s_t)]-\sum_{i\in tasks}D_{KL}(\mathcal{N}(\mu_i,\sigma_i)||\mathcal{N}(0,I))\tag{3}
θ,μi?,σi?max?i∈tasks∑?Eat?~π(at?∣st?;θi′?,zi′?),zi′?~N(μi′?,σi′?)?[t∑?Ri?(st?)]?i∈tasks∑?DKL?(N(μi?,σi?)∣∣N(0,I))(3)
μ
i
′
=
μ
i
+
α
μ
°
?
μ
i
E
a
t
~
π
(
a
t
∣
s
t
;
θ
,
z
i
)
,
z
i
~
N
(
μ
i
,
σ
i
)
[
∑
t
R
i
(
s
t
)
]
(4)
\mu_i'=\mu_i+\alpha_\mu\circ\nabla_{\mu_i}\mathbb{E}_{a_t\sim\pi(a_t|s_t;\theta,z_i),z_i\sim\mathcal{N}(\mu_i,\sigma_i)}[\sum_tR_i(s_t)]\tag{4}
μi′?=μi?+αμ?°?μi??Eat?~π(at?∣st?;θ,zi?),zi?~N(μi?,σi?)?[t∑?Ri?(st?)](4)
σ
i
′
=
σ
i
+
α
σ
°
?
σ
i
E
a
t
~
π
(
a
t
∣
s
t
;
θ
,
z
i
)
,
z
i
~
N
(
μ
i
,
σ
i
)
[
∑
t
R
i
(
s
t
)
]
(5)
\sigma_i'=\sigma_i+\alpha_\sigma\circ\nabla_{\sigma_i}\mathbb{E}_{a_t\sim\pi(a_t|s_t;\theta,z_i),z_i\sim\mathcal{N}(\mu_i,\sigma_i)}[\sum_tR_i(s_t)]\tag{5}
σi′?=σi?+ασ?°?σi??Eat?~π(at?∣st?;θ,zi?),zi?~N(μi?,σi?)?[t∑?Ri?(st?)](5)
θ
i
′
=
θ
i
+
α
θ
°
?
θ
i
E
a
t
~
π
(
a
t
∣
s
t
;
θ
,
z
i
)
,
z
i
~
N
(
μ
i
,
σ
i
)
[
∑
t
R
i
(
s
t
)
]
(6)
\theta_i'=\theta_i+\alpha_\theta\circ\nabla_{\theta_i}\mathbb{E}_{a_t\sim\pi(a_t|s_t;\theta,z_i),z_i\sim\mathcal{N}(\mu_i,\sigma_i)}[\sum_tR_i(s_t)]\tag{6}
θi′?=θi?+αθ?°?θi??Eat?~π(at?∣st?;θ,zi?),zi?~N(μi?,σi?)?[t∑?Ri?(st?)](6)其中
α
\alpha
α是学习率,
°
\circ
°是按元素相乘。
伪代码如下:
- 从第五行可以看出,MAESN比经典的Meta-RL或者RL算法的探索策略多了
(
μ
i
,
σ
i
)
(\mu_i,\sigma_i)
(μi?,σi?)。
- 代码的总体结构和MAML是类似的。
Using the Latent Spaces for Exploration
接下来是Meta-test部分,也就是元学习算法的Fine-tune环节。 在Meta-train部分的内循环中,我们将Meta-Learner的参数Fast-Adaptation到Learner参数上,那么在Meta-test部分也是一样的:
max
?
μ
,
σ
E
a
t
~
π
(
a
t
∣
s
t
,
θ
,
z
)
[
∑
t
R
(
s
t
)
]
(9)
\max_{\mu,\sigma}\mathbb{E}_{a_t\sim\pi(a_t|s_t,\theta,z)}[\sum_tR(s_t)]\tag{9}
μ,σmax?Eat?~π(at?∣st?,θ,z)?[t∑?R(st?)](9) 此外需要注意的是,由于
z
z
z是采样获得的,为了可以保证正常的backward,因此需要使用重参数技巧,即:
z
~
N
(
μ
,
σ
2
)
z\sim\mathcal{N}(\mu,\sigma^2)
z~N(μ,σ2)变成
?
~
N
(
0
,
1
)
z
j
=
?
?
σ
j
+
μ
j
j
=
0
,
1
,
?
j
∈
r
a
n
g
e
(
l
e
n
(
d
i
m
(
u
)
)
)
\epsilon\sim\mathcal{N}(0,1) \\z_j = \epsilon \cdot\sigma_j+\mu_j \\j=0,1,\cdots\\ j\in range(len(dim(u)))
?~N(0,1)zj?=??σj?+μj?j=0,1,?j∈range(len(dim(u)))
Experiments
略
Conclusion
- 用最简单的话来形容MAESN就是传统RL探索策略
π
\pi
π的输入除了状态
s
t
a
t
e
state
state以外,再增加一项高斯噪声
N
\mathcal{N}
N,只不过这个高斯噪声的参数(均值、方差)是Meta-Learned得到的。因此MAESN就是MAML和变分推断的结合。
- MAESN算法需要去Meta-Learn策略参数
θ
\theta
θ以及变分参数
μ
、
σ
\mu、\sigma
μ、σ的初始化,变分参数组成潜在空间
z
z
z,这个潜空间具有时间一致性,因为
z
z
z的采样是每个回合采样一次,然后Agent把这个采样值安排到探索策略中,接下来的一个回合的探索都会受到这个值的影响。故从episode的角度来看,探索策略相当于被注入了时间连贯的随机噪声。
- 变分参数是分task的,不同的task不共享参数;而策略参数是不同task共享的。
- 由于MAESN是基于MAML的,因此在复杂环境中,Meta-test可以做到
Fast-Adaptation 。 - 最优策略我们一般要求其确定性,但是一个好的探索策略最好是随机性且具备时间一致性的,给探索策略注入时间相关的信息相当于给探索策略安上了一双“眼睛”,它可以根据当前算法走到哪一步了,来做出相应的决策判断。
|