Проект реализует continuous-control часть статьи Sample-Efficient Reinforcement Learning by Breaking the Replay Ratio Barrier. Основная идея, которую здесь реализуем: SR-SAC, то есть SAC с высоким replay ratio и периодическими полными hard reset-ами параметров агента.
Один запуск:
python main.py --config configs/pendulum_rr32_srsac.jsonВсе выбранные эксперименты:
python run_selected_experiments.pyБыстрая локальная проверка:
python tools/smoke_test.pyТак же некоторые эксперименты есть в ipynb ноутбуках.
-
Replay Ratio ScalingЭто главный тезис статьи: при наличии reset-ов можно поднимать replay ratio заметно выше обычного SAC. Что проверяем: Монотонный рост производительности с увеличением RR при наличии resets. -
Online vs Offline RLЧто проверяем: Online RL (SAC) с resets превосходит offline RL (IQL) даже при одинаковых данных.
-
DMC Pendulum BenchmarkЭто одна из самых дешёвых сред из статьи, на ней уже на маленьком бюджете шагов видно, что high replay ratio начинает работать. -
LunarLanderContinuous-v3
Для каждого прогона в runs/<run_name>_seed<seed>/ сохраняются:
evaluations.csvtraining_episodes.csvsummary.jsoncheckpoint.ptlearning_curve.pngfinal_episode.mp4
После python run_selected_experiments.py дополнительно создаются:
runs/selected_runs_summary.csvruns/selected_experiment_table.csv- markdown-версии этих таблиц
В article_refs.json лежат reference-значения, заранее собранные из официального репозитория авторов:
- https://github.com/proceduralia/high_replay_ratio_continuous_control
- статья: https://openreview.net/forum?id=OpC-9aBBVJe
Это не полная реплика всех таблиц статьи, а компактный набор reference-метрик на том же бюджете шагов, который используется в этом проекте для дешёвого воспроизведения.