警告:此軟件包處於維護模式,請使用穩定的Baselines3(SB3)進行最新版本。您可以在SB3文檔中找到遷移指南。
穩定的基線是基於OpenAI基線的增強學習算法的一系列改進的實現。
您可以在中等文章中閱讀穩定基線的詳細介紹。
這些算法將使研究社區和行業更容易複製,完善和識別新的想法,並將創建良好的基準來建立項目。我們希望這些工具將被用作圍繞該工具添加新想法的基礎,並將這些工具用作與現有方法進行比較的工具。我們還希望這些工具的簡單性將使初學者能夠嘗試更先進的工具集,而無需埋葬在實施細節中。
注意:儘管使用簡單,但穩定的基線(SB)假設您對增強學習(RL)有一些了解。如果沒有一些練習,您不應利用此庫。在某種程度上,我們在文檔中提供了良好的資源,以開始使用RL。
該工具集是OpenAI基線的叉子,具有重大的結構重構,並且代碼清理:
| 特徵 | 穩定的生物線 | Openai基線 |
|---|---|---|
| 最新的RL方法 | ✔️ (1) | ✔️ |
| 文件 | ✔️ | |
| 自定義環境 | ✔️ | ✔️ |
| 定制政策 | ✔️ | ➖ (2) |
| 通用接口 | ✔️ | ➖ (3) |
| 張板支撐 | ✔️ | ➖ (4) |
| ipython /筆記本友好 | ✔️ | |
| PEP8代碼樣式 | ✔️ | ✔️ (5) |
| 自定義回調 | ✔️ | ➖ (6) |
(1):從以前版本的OpenAI基線分叉,現在有SAC和TD3
(2):目前不適用於DDPG,僅來自運行腳本。
(3):僅通過運行腳本。
(4):培訓信息的基本記錄(沒有損失也沒有圖形)。
(5):編輯:您做了Openai! ?
(6):傳遞回調功能僅適用於DQN
文檔可在線獲得:https://stable-baselines.readthedocs.io/
RL基線動物園。是使用穩定的生物線的預訓練增強學習劑的集合。
它還提供了用於培訓,評估代理,調整超參數和錄製視頻的基本腳本。
該存儲庫的目標:
github repo:https://github.com/araffin/rl-baselines-zoo
文檔:https://stable-baselines.readthedocs.io/en/master/guide/rl_zoo.html
注意:穩定的生物線支持張量流的版本從1.8.0到1.14.0。計劃支持TensorFlow 2 API。
基線需要帶有開發標頭的Python3(> = 3.5)。您還需要係統包CMAKE,OPENMPI和ZLIB。這些可以如下安裝
sudo apt-get update && sudo apt-get install cmake libopenmpi-dev python3-dev zlib1g-dev在Mac上安裝系統軟件包需要自製。安裝了自製型,請運行以下內容:
brew install cmake openmpi要在Windows上安裝穩定的冰淇淋,請查看文檔。
安裝穩定的基本軟件包:
pip install stable-baselines[mpi]
這包括對MPI的可選依賴性,啟用算法DDPG,GAIL,PPO1和TRPO。如果您不需要這些算法,則可以在沒有MPI的情況下安裝:
pip install stable-baselines
請閱讀文檔以獲取更多詳細信息和替代方案(來自來源,使用Docker)。
大多數圖書館試圖遵循類似Sklearn的語法,以進行增強學習算法。
這是如何在Cartpole環境上訓練和運行PPO2的快速示例:
import gym
from stable_baselines . common . policies import MlpPolicy
from stable_baselines . common . vec_env import DummyVecEnv
from stable_baselines import PPO2
env = gym . make ( 'CartPole-v1' )
# Optional: PPO2 requires a vectorized environment to run
# the env is now wrapped automatically when passing it to the constructor
# env = DummyVecEnv([lambda: env])
model = PPO2 ( MlpPolicy , env , verbose = 1 )
model . learn ( total_timesteps = 10000 )
obs = env . reset ()
for i in range ( 1000 ):
action , _states = model . predict ( obs )
obs , rewards , dones , info = env . step ( action )
env . render ()
env . close ()或者,如果環境在健身房註冊並且註冊了政策,則只需用一個襯板訓練模型:
from stable_baselines import PPO2
model = PPO2 ( 'MlpPolicy' , 'CartPole-v1' ). learn ( 10000 )請閱讀文檔以獲取更多示例。
以下所有示例可以使用Google COLAB筆記本在線執行:
| 姓名 | 重構(1) | 經常性 | Box | Discrete | MultiDiscrete | MultiBinary | 多處理 |
|---|---|---|---|---|---|---|---|
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| 宏cer | ✔️ | ✔️ | (5) | ✔️ | ✔️ | ||
| acktr | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ||
| DDPG | ✔️ | ✔️ | ✔️ (4) | ||||
| DQN | ✔️ | ✔️ | |||||
| 蓋爾(2) | ✔️ | ✔️ | ✔️ | ✔️ (4) | |||
| 她(3) | ✔️ | ✔️ | ✔️ | ✔️ | |||
| PPO1 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ (4) | |
| PPO2 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| 囊 | ✔️ | ✔️ | |||||
| TD3 | ✔️ | ✔️ | |||||
| trpo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ (4) |
(1):是否已重構該算法以適合BaseRLModel類。
(2):僅針對TRPO實施。
(3):從頭開始重新實現,現在支持DQN,DDPG,SAC和TD3
(4):使用MPI進行多處理。
(5):在項目範圍內。
注意:軟演員 - 批評(SAC)和雙延遲的DDPG(TD3)不是原始基線的一部分,她從頭開始重新成熟。
Action gym.spaces .空格:
Box :一個n維盒,其中包含動作空間中的每個點。Discrete :可能的操作列表,其中每個時間步中只能使用其中一個動作。MultiDiscrete :可能的操作列表,其中每個時間段的每個離散集的一個動作只能使用。MultiBinary :可能的操作列表,其中每個時間步都可以在任何組合中使用任何操作。 一些基線示例使用Mujoco(觸點中的多關節動態)物理模擬器,該模擬器是專有的,需要二進製文件和許可(臨時30天許可證可以從www.mujoco.org獲得)。可以在此處找到有關設置Mujoco的說明
基準中的所有單元測試均可使用Pytest Runner運行:
pip install pytest pytest-cov
make pytest
我們嘗試在文檔中使用穩定的生物線來維護項目列表,請告訴我們何時您希望您的項目出現在此頁面上;)
在出版物中引用該存儲庫:
@misc{stable-baselines,
author = {Hill, Ashley and Raffin, Antonin and Ernestus, Maximilian and Gleave, Adam and Kanervisto, Anssi and Traore, Rene and Dhariwal, Prafulla and Hesse, Christopher and Klimov, Oleg and Nichol, Alex and Plappert, Matthias and Radford, Alec and Schulman, John and Sidor, Szymon and Wu, Yuhuai},
title = {Stable Baselines},
year = {2018},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/hill-a/stable-baselines}},
}
目前,穩定的 - 貝斯利林(Ashley Hill)(又名 @Hill-A),Antonin Raffin(又名@araffin),Maximilian Ernestus(aka @ernestum),Adam Gleave(@AdamGleave)和Ansssi Kanervisto(@miffyli)。
重要說明:我們不提供技術支持,也不諮詢,也不每封電子郵件回答個人問題。
對於有興趣使基準更好的任何興趣,仍然需要進行一些文檔。如果您想貢獻,請先閱讀貢獻。MD指南。
穩定的基線是在Ensta Paristech的機器人實驗室U2IS(Inria Flowers團隊)中創建的。
徽標積分:LM Tenkes