PEPG/PGPE介绍

Reading time ~2 minutes

Frank S等人在《Parameter-exploring Policy Gradients》中提出了PEPG/PGPE算法:

1.介绍

Policy gradient方法,这么称呼是因为:他们可以在policy space中进行搜索,而非从一个value function上直接对policy进行派生。

2.方法

在本节中,我们源自于在Markovian environment中的关于情景强化学习(episodic reinforcement learning)的通用框架,提出PGPE算法。特别的,我们会强调下PGPE和其它policy gradient方法(比如:REINFORCE)之间的差异。在2.3节中,我们会引入symmetric sampling,并解释它会提升收敛速度。

2.1 Policy Gradients with Parameter-Based Exploration

考虑一个agent,它的action \(a_t\)是基于在time t时的state \(s_t\),产生在下一step中的state \(s_{t+1}\)。我们会对continuous state spaces和action spaces感兴趣,这对于大多数技术系统的控制来说是需要的。

我们假设:environment是Markovian,在下一states \(s_{t+1}\)上的条件概率分布,整体通过前一state-action pair来决定,即:

\[s_{t+1} \sim p(s_{t+1} \mid s_t, a_t)\]

我们也会假设这样的一个随机策略(stochastic policy),在actions上的分布依赖于当前state以及关于agent参数的real valued vector \(\theta\)

\[a_t \sim p(a_t \mid s_t, \theta)\]

最后,我们假设:每个state-action pair会生成一个Markovian reward标量

\[r_t(a_t, s_t)\]

我们将由一个agent产生的state-action pairs的长度为T的state-action pairs序列称为一个history(文献中的其它地方,这样的序列被称为 trajectories 或 roll-outs):

\[h = [s_{1:T}, a_{1:T}]\]

给定以上的公式,我们会使用每个history h与一个cumulative reward r进行关联,并对每个time step上的rewards进行求和:

\[r(h) = \sum\limits_{t=1}^T r_t\]

在这样的setting中,reinforcement learning的目标是:发现参数\(\theta\),最大化agent的expected reward:

\[J(\theta) = \int_H p(h | \theta) r(h) dh\]

…(1)

一个最大化\(J(\theta)\)的明显方法是:估计\(\nabla_{\theta} J\),并使用它来执行梯度下降最优化(gradient ascent optimization)。注意:对于一个特定的history的reward是与\(\theta\)独立的,我们可以使用标准恒等式 \(\nabla_x y(x) = y(x) \nabla_x logx\)来获取:

\[\nabla_{\theta} J(\theta) = \int_H p(h | \theta) \ \nabla_{\theta} log p(h | \theta)\ r(h)\ dh\]

…(2)

由于environment是马尔可夫过程(Markovian), 并且states是在给定agent的actions选择下给定参数下是条件独立的,我们可以写成:

\[p(h | \theta) = p(s_1) \prod\limits_{t=1}^T p(s_{t+1} | s_t, a_t) p(a_t | s_t, \theta)\]

将它代入到等式(2)生成:

\[\nabla_{\theta} J(\theta) = \int_H p(h | \theta) \sum\limits_{t=1}^T \nabla_{\theta} p(a_t | s_t, \theta) r(h) dh\]

…(3)

很明显,在histories的整个空间上进行积分是不可行的,我们因此对采样方法进行resort:

\[\nabla_{\theta} J(\theta) \approx \frac{1}{N} \sum\limits_{n=1}^N \sum\limits_{t=1}^T \nabla_{\theta} p(a_t^n | s_t^n, \theta) \ r(h^n)\]

…(4)

其中:

  • histories \(h^i\)会根据\(p(h^i \mid \theta)\)被选中。

接着该问题是:如何建模\(p(a_t \mid s_t, \theta)\)?

在policy gradient方法(比如:REINFORCE)中,参数\(\theta\)会被用于决定一个probabilistic policy:\(\pi_{\theta} (a_t \mid s_t) = p(a_t \mid s_t, \theta)\)。一个常见的policy model可以是一个参数化函数近似器,它的outputs定义了选中不同actions的概率。在本case中,通过在每个time step上根据policy分布选择一个action,来生成histories,接着,最终的gradient会通过对policy根据参数进行微分来计算。然而,在每个time step上从policy抽样,会导致在histories上的抽样具有一个高variance,因此会导致一个有噪声的gradient估计

PGPE通过使用一个在参数\(\theta\)上的概率分布来替换probibilistic policy,来解决variance问题,例如:

\[p(a_t | s_t, \rho) = \int_{\Theta} p(\theta | \rho) \sigma_{F_{\theta}(s_t), a_t} d\theta\]

…(5)

其中:

  • \(\rho\):是决定在\(\theta\)上分布的参数
  • \(F_{\theta}(s_t)\):是(deterministic) action,指在state \(s_t\)下被具有参数\(\theta\)的模型选中
  • \(\delta\):是狄拉克δ函数(Dirac delta function)

该方法的优点是:actions是deterministic,因此整个history可以从单个参数的样本来生成。这种在samples-per-history上的简化法,会减小在gradient estimate中的variance。作为一个辅加好处,参数梯度(parameter gradient)会通过直接参数扰动(perturbations)进行估计,无需对任何导数(derivatives)进行backpropagate,它会允许使用无微分的controllers。

对于一个给定\(\rho\)的期望收益(expected reward)是:

\[J(\rho) = \int_{\theta} \int_H p(h, \theta | \rho) r(h) dh d\theta\]

…(6)

对expected return根据\(\rho\)进行微分,并在之前应用log tricks,我们可以得到:

\[\nabla_{\rho} J(\rho) = \int_{\theta} \int_H p(h, \theta | \rho) \nabla_{\rho} log p(h, \theta | \rho) r(h) dh d\theta\]

…(7)

注意,h条件独立于\(\theta \mid \rho\),我们有:\(p(h, \theta \mid \rho) = p(h \mid \theta) p(\theta \mid \rho)\),因此:\(\nabla_{\rho} log p(h,\theta \mid \rho) = \nabla_{\rho} log p(\theta \mid \rho)\)。将它代入等式(7)生成:

\[\nabla_{\rho} J(\rho) = \int_{\theta} \int_H p(h, \theta) p(\theta | \rho) \nabla_{\rho} log p(\theta | \rho) r(h) dh d\theta\]

…(8)

接着再次使用抽样方法,这次首先从\(p(\theta \mid \rho)\)选择\(\theta\),接着运行agent来从\(p(h \mid \theta)\)来生成h。该过程会生成以下的gradient estimator:

\[\nabla_{\rho} J(\rho) \approx \frac{1}{N} \sum\limits_{n=1}^N \nabla_{\rho} log p(\theta | \rho) r(h^n)\]

…(9)

假设:\(\rho\)包含了一个关于均值 \(\lbrace \mu_i \rbrace\)、标准差\(\lbrace \sigma_i \rbrace\)的集合,它决定了在\(\theta\)中每个参数\(\theta_i\)的独立正态分布,对于\(log p(\theta \mid \rho)\)的导数会对\(\mu_i\)和\(\sigma_{i}\)分别求导:

\[\nabla_{\mu_i} log p(\theta | \rho) = \frac{\theta_i - \mu_i}{\sigma_i^2} \\ \nabla_{\sigma_i} log p(\theta | \rho) = \frac{(\theta_i - \mu_i)^2 - \sigma_i^2}{\sigma_i^3}\]

…(10)

它代入等式(9)中来逼近\(\mu\)和\(\sigma\)的gradients.

2.2 使用一个baseline来Sampling

给定足够的样本,等式(9)会决定reward gradient到任意accuracy。然而,每个样本需要rolling out一整个state-action history,它代价很高。根据Williams(1992),我们可以通过抽取单个样本\(\theta\)并将它的reward r与一个baseline reward b(通过在之前样本中给定的一个移动平均)进行对比,来获得一个成本更低的gradient estimate

直觉上,如果r>b,我们会调节\(\rho\),以便增加\(\theta\)的概率,当r < b时则相反。

如果我们在positive gradient的方向上使用一个step size \(\alpha_i = \alpha \sigma_i^2\)(其中:\(\alpha\)是个常数),我们会获得以下的参数更新等式

\[\Delta_{\mu_i} = \alpha (r-b)(\theta_i - \mu_i) \\ \Delta_{\sigma_i} = \alpha (r-b) \frac{(\theta_i - \mu_i)^2 - \sigma_i^2}{\sigma_i}\]

…(11)

2.3 对称采样(Symmetric sampling)

对于大多数场景,使用一个baseline采样很高效、并且是合理准确的,但它具有一些缺点。特别的,如果reward分布是非常倾斜的,那么在sample reward和baseline reward间的对比会误导向。一个更健壮的梯度近似法:可以通过测量在在当前均值两侧的两个symmetric samples间的reward差异来发现。

也就是说,我们:

  • 选择一个来自分布\(N(0, \sigma)\)的扰动(perturbation)\(\epsilon\)
  • 接着创建symmetric参数样本:\(\theta^+ = \mu + \epsilon\)和\(\theta^- = \mu - \epsilon\)
  • 定义:\(r^+\)为在给定\(\theta^+\)下的reward;\(r^-\)为给定\(\theta^-\)下的reward

我们可以将两个样本插入到等式(9)中,并利用等式(10)来获取:

\[\nabla_{\mu_i} J(\rho) \approx \frac{\epsilon_i (r^+ - r^-)}{2\sigma_i^2}\]

…(12)

它会对在有限差分法( finite difference methods)中使用的中心差分近似法(central difference approximation)进行重新组装。如同之前一样使用相同的step sizes,对于\(\mu\)项给出以下的更新公式:

\[\Delta \mu_i = \frac{\alpha \epsilon_i(r^+ - r^-)}{2}\]

…(13)

对于标准差来说,该更新会更关系密切些。由于\(\theta^+\)和\(\theta^-\)是在一个定给\(\sigma\)下通过相同概率构建得到,在它们间的difference不能被用来估计\(\sigma\) gradient。作为替代,我们会采用两个rewards的均值\(\frac{r^+ + r^-}{2}\),并将它对比baseline reward b。该方法会生成:

\[\Delta \sigma_i = \alpha (\frac{r^+ + r^-}{2} - b)(\frac{\epsilon_i^2 - \sigma_i^2}{\sigma_i})\]

…(14)

对比起第2.2节中的方法,symmetric sampling可以消除误导baseline的问题,因此,提升\(\mu\) gradient estimates。它也可以提升\(\sigma\) gradient estimates,因此,两个样本在当前概率下等概率,因此可以互相增强作为修改\(\sigma\)的受益的predictors。尽管symmetric sampling需要在每次update时有两倍的histories,我们的实验表明:它可以在收敛质量和时间上给出一个很好的提升

作为一个最终refinement,我们会通过引入一个normalization term,让step size与rewards的规模(可能未知)独立。假设:如果已知,m是agent可以接受到的最大reward;或者未知,则是至今接收到的最大reward。我们通过将它们除以在m和对称样本的平均reward间的difference归一化\(\mu\) updates;我们则通过除以在m和baseline b间的differnece来归一化\(\sigma\) updates。给定:

\[\Delta_{\mu_i} = \frac{\alpha \epsilon_i(r^+ - r^-)}{2m - r^+ - r^-} \\ \Delta_{\sigma_i} = \frac{\alpha}{m-b}(\frac{(r^+ + r^-)}{2} - b)(\frac{\epsilon^2 - \sigma_i^2}{\sigma_i})\]

…(15)

PGPE的伪代码如算法1所示。注意:出于简洁,reward normalizeation项已经被忽略。

图片名称

算法1

#

Netflix关于cosine相似度的讨论

Netflix团队发了篇paper《Is Cosine-Similarity of Embeddings Really About Similarity?》,对cosine相似度做了相应的研究。# 摘要余弦相似度(cosine similarity)是指两个向量间夹角的余弦...… Continue reading

Meta AdaTT介绍

Published on January 02, 2024

SATrans介绍

Published on December 02, 2023