
RL Baselines3動物園は、安定したベースラインを使用した、強化学習のためのトレーニングフレームワーク(RL)です。
トレーニング、エージェントの評価、ハイパーパラメーターの調整、結果のプロット、ビデオの録画用のスクリプトを提供します。
さらに、共通環境とRLアルゴリズムのための調整されたハイパーパラメーターのコレクション、およびそれらの設定で訓練されたエージェントが含まれています。
コレクションを完成させるための貢献者を探しています!
このリポジトリの目標:
これは、元のSB2 RL-ZooのSB3バージョンです。
注:SB3とRL動物園はnumpy> = 2.0と互換性がありますが、pybullet envsでエージェントを実行するにはnumpy <2が必要です(問題を参照)。
ドキュメントはオンラインで入手できます:https://rl-baselines3-zoo.readthedocs.io/
ソースから:
pip install -e .
Pythonパッケージとして:
pip install rl_zoo3
注:任意のフォルダーからpython -m rl_zoo3.trainを実行し、 rl_zoo3コマンドラインインターフェイスにアクセスできます。たとえば、 rl_zoo3 train python train.pyに相当します。
apt-get install swig cmake ffmpeg
pip install -r requirements.txt
pip install -e .[plots,tests]
安定したベースラインをインストールするための代替案については、Stable Baselines3ドキュメントを参照してください3。
各環境のハイパーパラメーターはhyperparameters/algo_name.ymlで定義されています。
このファイルに環境が存在する場合、次のことを使用してエージェントをトレーニングできます。
python train.py --algo algo_name --env env_id
評価のために10エピソードを使用して10000ステップごとにエージェントを評価します(1つの評価envのみを使用):
python train.py --algo sac --env HalfCheetahBulletEnv-v0 --eval-freq 10000 --eval-episodes 10 --n-eval-envs 1
ドキュメントでは、その他の例があります。
RL動物園には、実験追跡や訓練されたモデルを保存/共有するための顔を追跡したり抱きしめたりするための重みやバイアスなど、他のライブラリ/サービスと統合されています。詳細については、ドキュメントの専用セクションで確認できます。
ドキュメントの専用セクションをご覧ください。
注:訓練を受けたエージェントを使用してリポジトリをダウンロードするには、サブモジュールをクローンするには、 git clone --recursive https://github.com/DLR-RM/rl-baselines3-zooを使用する必要があります。
訓練されたエージェントが存在する場合、次のことを使用して動作していることがわかります。
python enjoy.py --algo algo_name --env env_id
たとえば、5000のタイムステップ中にブレイクアウトでA2Cをお楽しみください。
python enjoy.py --algo a2c --env BreakoutNoFrameskip-v4 --folder rl-trained-agents/ -n 5000
ドキュメントの専用セクションをご覧ください。
ドキュメントの専用セクションをご覧ください。
訓練されたエージェントの最終パフォーマンスは、 benchmark.mdにあります。それらを計算するには、 python -m rl_zoo3.benchmarkを実行するだけです。
訓練されたエージェントのリストとビデオは、ハグファイスページ:https://huggingface.co/sb3にあります。
注:これは、1つの実行のみに対応するため、定量的なベンチマークではありません(CF Issue#38)。このベンチマークは、アルゴリズム(最大)パフォーマンスを確認し、潜在的なバグを見つけ、ユーザーが前処理されたエージェントにアクセスできるようにすることを目的としています。
Openaiベンチマークからの7つのAtariゲーム(Noframeskip-V4バージョン)。
| RLアルゴ | ビームライダー | 起こる | エンデューロ | ポン | qbert | SeaQuest | SpaceInvaders |
|---|---|---|---|---|---|---|---|
| A2c | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
| PPO | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
| DQN | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
| QR-DQN | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
追加のAtariゲーム(完了する):
| RLアルゴ | MSPACMAN | 小惑星 | ロードランナー |
|---|---|---|---|
| A2c | ✔✔️ | ✔✔️ | ✔✔️ |
| PPO | ✔✔️ | ✔✔️ | ✔✔️ |
| DQN | ✔✔️ | ✔✔️ | ✔✔️ |
| QR-DQN | ✔✔️ | ✔✔️ | ✔✔️ |
| RLアルゴ | Cartpole-V1 | MountainCar-V0 | Acrobot-V1 | 振り子V1 | MountainCarcontinuous-V0 |
|---|---|---|---|---|---|
| ARS | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
| A2c | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
| PPO | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
| DQN | ✔✔️ | ✔✔️ | ✔✔️ | n/a | n/a |
| QR-DQN | ✔✔️ | ✔✔️ | ✔✔️ | n/a | n/a |
| DDPG | n/a | n/a | n/a | ✔✔️ | ✔✔️ |
| サック | n/a | n/a | n/a | ✔✔️ | ✔✔️ |
| TD3 | n/a | n/a | n/a | ✔✔️ | ✔✔️ |
| TQC | n/a | n/a | n/a | ✔✔️ | ✔✔️ |
| TRPO | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
| RLアルゴ | Bipedalwalker-V3 | Lunarlander-V2 | lunarlandercontinuous-v2 | Bipedalwalkerhardcore-v3 | Carracing-V0 |
|---|---|---|---|---|---|
| ARS | ✔✔️ | ✔✔️ | |||
| A2c | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | |
| PPO | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | |
| DQN | n/a | ✔✔️ | n/a | n/a | n/a |
| QR-DQN | n/a | ✔✔️ | n/a | n/a | n/a |
| DDPG | ✔✔️ | n/a | ✔✔️ | ||
| サック | ✔✔️ | n/a | ✔✔️ | ✔✔️ | |
| TD3 | ✔✔️ | n/a | ✔✔️ | ✔✔️ | |
| TQC | ✔✔️ | n/a | ✔✔️ | ✔✔️ | |
| TRPO | ✔✔️ | ✔✔️ |
https://github.com/bulletphysics/bullet3/tree/master/examples/pybullet/gym/pybullet_envsを参照してください。 Mujoco Envsに似ていますが、無料(Mujoco 2.1.0+が無料になりました!)シミュレータ:Pybulletを簡単にインストールできます。 BulletEnv-v0バージョンを使用しています。
注:これらの環境はRoboschoolから派生しており、Mujocoバージョンよりも難しいです(Pybullet Issueを参照)
| RLアルゴ | Walker2d | ハーフチェーター | アリ | リーチャー | ホッパー | ヒューマノイド |
|---|---|---|---|---|---|---|
| ARS | ||||||
| A2c | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | |
| PPO | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | |
| DDPG | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | |
| サック | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | |
| TD3 | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | |
| TQC | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | |
| TRPO | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
pybullet envs(続き)
| RLアルゴ | ミニタウル | ミニタウルダック | InvertedDoublePendulum | InvertedPendulumswingup |
|---|---|---|---|---|
| A2c | ||||
| PPO | ||||
| DDPG | ||||
| サック | ||||
| TD3 | ||||
| TQC |
| RLアルゴ | Walker2d | ハーフチェーター | アリ | スイマー | ホッパー | ヒューマノイド |
|---|---|---|---|---|---|---|
| ARS | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | |
| A2c | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
| PPO | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | |
| DDPG | ||||||
| サック | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
| TD3 | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
| TQC | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
| TRPO | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
https://gym.openai.com/envs/#roboticsおよび#71を参照してください
Mujocoバージョン:1.50.1.0ジムバージョン:0.18.0
V1環境を使用しました。
| RLアルゴ | FetchReach | fetchpickandplace | fetchpush | フェッチスライド |
|---|---|---|---|---|
| 彼女+TQC | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
https://github.com/qgallouedec/panda-gym/を参照してください。
Mujoco Robotics Envsに似ていますが、無料簡単にインストールできますシミュレータ:Pybullet。
V1環境を使用しました。
| RLアルゴ | パンダリーチ | Pandapickandplace | パンダプッシュ | パンダスライド | パンダスタック |
|---|---|---|---|---|---|
| 彼女+TQC | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
https://github.com/farama-foundation/minigridを参照してください。有名なグリッドワールドのシンプルで軽量で高速なジム環境の実装。
| RLアルゴ | empty-random-5x5 | 4ルーム | doorkey-5x5 | MultiRoom-N4-S5 | Fetch-5x5-N2 | gotodoor-5x5 | putnear-6x6-n2 | redbluedOors-6x6 | ロックルーム | KeyCorridors3R1 | ロックを解除します | 閉塞したmaze-2dlh |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A2c | ||||||||||||
| PPO | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ | ✔✔️ |
| DQN | ||||||||||||
| QR-DQN | ||||||||||||
| TRPO |
合計22の環境グループ(それぞれのバリエーション)があります。
Colab Notebookを使用して、オンラインでエージェントをトレーニングできます。
動物園は、インタラクティブセッション(例:Jupyterノートブック、IPython)から実行されることを意図していませんが、 sys.argv変更して目的の引数を追加することで実行できます。
例
import sys
from rl_zoo3 . train import train
sys . argv = [ "python" , "--algo" , "ppo" , "--env" , "MountainCar-v0" ]
train ()テストを実行するには、最初にpytestをインストールします。
make pytest
pytypeでのタイプチェックについても同じ:
make type
出版物でこのリポジトリを引用するには:
@misc { rl-zoo3 ,
author = { Raffin, Antonin } ,
title = { RL Baselines3 Zoo } ,
year = { 2020 } ,
publisher = { GitHub } ,
journal = { GitHub repository } ,
howpublished = { url{https://github.com/DLR-RM/rl-baselines3-zoo} } ,
}RL動物園に存在しないエージェントをトレーニングした場合は、プルリクエスト(ハイパーパラメーターとスコアも含む)を送信してください。
貢献者に感謝します:@iandanforth、@tatsubori @shade5 @mcres、@ernestum、 @qgallouedec