具有程序生成内容的环境是测试深度强化学习系统泛化的重要基准。在此设置中,每个level都是一个通过算法创建的环境实例配置。在预先指定的level子集上进行训练,允许测试对未知level的泛化。从一个level中可以学到什么取决于当前的策略,但先前的工作默认为独立于策略的训练level的统一采样。我们引入了优先级重放 (PLR),这是一个通用框架,通过在将来重新访问时优先考虑具有更高估计学习潜力的那些,来选择性地对下一个训练level进行采样。作者展示了 TD-errors 有效地估计了一个level的未来学习潜力,并且当用于指导抽样程序时,会导致越来越难的level。通过调整训练级别的采样,PLR 显着提高了 Procgen Benchmark 上的样本效率和泛化能力——在测试回报方面与之前的最先进技术相匹配——并且很容易与其他方法结合。与之前的领先方法相结合,PLR 将最新技术提高到相对于标准 RL 基线的测试回报提高 76% 以上。
一、内容部分
二、代码部分
Requirements
conda create -n level-replay python=3.8
conda activate level-replay
git clone https://github.com/facebookresearch/level-replay.git
cd level-replay
pip install -r requirements.txt
# Clone a level-replay-compatible version of OpenAI Baselines.
git clone https://github.com/minqi/baselines.git
cd baselines
python setup.py install
cd ..
# Clone level-replay-compatible versions of Procgen and MiniGrid environments.
git clone https://github.com/minqi/procgen.git
cd procgen
python setup.py install
cd ..
git clone https://github.com/minqi/gym-minigrid .git
cd gym-minigrid
pip install -e .
cd ..
Train
python -m train --env_name bigfish \
--num_processes=64 \
--level_replay_strategy='value_l1' \
--level_replay_score_transform='rank' \
--level_replay_temperature=0.1 \
--staleness_coef=0.1
Cite
@misc{jiang2020prioritized,
title={{Prioritized Level Replay}},
author={Minqi Jiang and Edward Grefenstette and Tim Rockt\"{a}schel},
year={2020},
eprint={2010.03934},
archivePrefix={arXiv},
primaryClass={cs.LG}
}