Shortcuts

PLR

概述

PLR 是在 Prioritized Level Replay 中提出的。 PLR是一种采样训练水平的方法,利用水平之间的学习潜力差异来提高样本效率和泛化能力。

核心要点

  1. PLR 支持 多层次环境

  2. PLR 同时更新 策略 and 水平分数

  3. 在 DI-engine 的实现中,PLR与 PPG 算法相结合。

  4. PLR 支持 Policy entropy, Policy min-margin, Policy least-confidence, 1-step TD errorGAE 得分函数。

关键框图

游戏关卡由随机种子确定,可以在导航布局、视觉外观和实体的起始位置方面有所变化。 PLR基于重播每个水平的预估学习潜力,有选择地采样下一个训练水平。下一个水平可以从支持未见过水平的分布中采样(顶部),这可能是环境的(可能是隐含的)完整训练水平分布,或者从重播分布中采样,该分布基于未来的学习潜力对水平进行优先排序(底部)。

../_images/PLR_pic.png

关键方程

学习潜力的得分水平是:

../_images/PLR_Score.png

给定水平分数,我们使用在这些分数上评估并使用温度参数 \(\beta\) 进行调整的优先级函数 \(h\) 的归一化输出,以定义得分优先的分布 \(P_{S}\left(\Lambda_{\text {train }}\right)\) ,用于对训练水平进行采样

\[P_{S}\left(l_{i} \mid \Lambda_{\text {seen }}, S\right)=\frac{h\left(S_{i}\right)^{1 / \beta}}{\sum_{j} h\left(S_{j}\right)^{1 / \beta}}\]
\[h\left(S_{i}\right)=1 / \operatorname{rank}\left(S_{i}\right)\]

其中 \(\operatorname{rank}\left(S_{i}\right)\) 是水平分数 \(S_{i}\) 在按降序排序的所有分数中的排名。

由于用于参数化 \(P_{S}\) 的分数是与策略状态相关联的,反映了越长时间没有通过重播进行更新,就越能逐渐反映出更“偏离策略”的度量。我们通过将采样分布明确与一个过时优先的分布 \(P_{C}\) 混合,来缓解这种向 “off-policy-ness” 漂移的趋势:

\[P_{C}\left(l_{i} \mid \Lambda_{\text {seen }}, C, c\right)=\frac{c-C_{i}}{\sum_{C_{j} \in C} c-C_{j}}\]
\[P_{\text {replay }}\left(l_{i}\right)=(1-\rho) \cdot P_{S}\left(l_{i} \mid \Lambda_{\text {seen }}, S\right)+\rho \cdot P_{C}\left(l_{i} \mid \Lambda_{\text {seen }}, C, c\right)\]

伪代码

使用 PLR 的策略梯度训练循环

../_images/PLR_1.png

使用PLR进行经验采集

../_images/PLR_2.png

基准测试

Benchmark of PLR algorithm

environment

evaluation results

config link

BigFish
../_images/PLR_result.png

config_link_p

参考文献

Minqi Jiang, Edward Grefenstette, Tim Rocktaschel: “Prioritized Level Replay”, 2021; arXiv:2010.03934.

其他开源实现