PLR ^^^^^^^ 概述 --------- PLR 是在 `Prioritized Level Replay <https://arxiv.org/abs/2010.03934>`_ 中提出的。 PLR是一种采样训练水平的方法,利用水平之间的学习潜力差异来提高样本效率和泛化能力。 核心要点 ----------- 1. PLR 支持 **多层次环境**。 2. PLR 同时更新 **策略** and **水平分数**。 3. 在 DI-engine 的实现中,PLR与 **PPG** 算法相结合。 4. PLR 支持 **Policy entropy**, **Policy min-margin**, **Policy least-confidence**, **1-step TD error** 和 **GAE** 得分函数。 关键框图 ---------- 游戏关卡由随机种子确定,可以在导航布局、视觉外观和实体的起始位置方面有所变化。 PLR基于重播每个水平的预估学习潜力,有选择地采样下一个训练水平。下一个水平可以从支持未见过水平的分布中采样(顶部),这可能是环境的(可能是隐含的)完整训练水平分布,或者从重播分布中采样,该分布基于未来的学习潜力对水平进行优先排序(底部)。 .. image:: images/PLR_pic.png :align: center :height: 250 关键方程 ------------- 学习潜力的得分水平是: .. image:: images/PLR_Score.png :align: center :height: 250 给定水平分数,我们使用在这些分数上评估并使用温度参数 :math:`\beta` 进行调整的优先级函数 :math:`h` 的归一化输出,以定义得分优先的分布 :math:`P_{S}\left(\Lambda_{\text {train }}\right)` ,用于对训练水平进行采样 .. math:: 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}} .. math:: h\left(S_{i}\right)=1 / \operatorname{rank}\left(S_{i}\right) 其中 :math:`\operatorname{rank}\left(S_{i}\right)` 是水平分数 :math:`S_{i}` 在按降序排序的所有分数中的排名。 由于用于参数化 :math:`P_{S}` 的分数是与策略状态相关联的,反映了越长时间没有通过重播进行更新,就越能逐渐反映出更“偏离策略”的度量。我们通过将采样分布明确与一个过时优先的分布 :math:`P_{C}` 混合,来缓解这种向 “off-policy-ness” 漂移的趋势: .. math:: P_{C}\left(l_{i} \mid \Lambda_{\text {seen }}, C, c\right)=\frac{c-C_{i}}{\sum_{C_{j} \in C} c-C_{j}} .. math:: 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 的策略梯度训练循环 .. image:: images/PLR_1.png 使用PLR进行经验采集 .. image:: images/PLR_2.png 基准测试 -------------- .. list-table:: Benchmark of PLR algorithm :widths: 25 30 15 :header-rows: 1 * - environment - evaluation results - config link * - | BigFish - .. image:: images/PLR_result.png - `config_link_p <https://github.com/opendilab/DI-engine/blob/main/dizoo/procgen/entry/bigfish_plr_config.py>`_ 参考文献 ----------- Minqi Jiang, Edward Grefenstette, Tim Rocktaschel: “Prioritized Level Replay”, 2021; arXiv:2010.03934. 其他开源实现 ------------------------------ - [facebookresearch](https://github.com/facebookresearch/level-replay)