คำเตือน: แพ็คเกจนี้อยู่ในโหมดการบำรุงรักษาโปรดใช้ Baselines3 (SB3) ที่เสถียร (SB3) สำหรับเวอร์ชันที่ทันสมัย คุณสามารถค้นหาคู่มือการย้ายถิ่นในเอกสาร SB3
Baselines เสถียรเป็นชุดของการปรับปรุงการใช้งานอัลกอริทึมการเรียนรู้การเสริมแรงตาม OpenAI baselines
คุณสามารถอ่านงานนำเสนอโดยละเอียดของเส้นเขตแดนที่มั่นคงในบทความกลาง
อัลกอริทึมเหล่านี้จะทำให้ชุมชนการวิจัยและอุตสาหกรรมง่ายขึ้นเพื่อทำซ้ำปรับแต่งและระบุแนวคิดใหม่และจะสร้างเส้นเขตแดนที่ดีเพื่อสร้างโครงการด้านบนของ เราคาดว่าเครื่องมือเหล่านี้จะถูกใช้เป็นฐานที่สามารถเพิ่มแนวคิดใหม่และเป็นเครื่องมือในการเปรียบเทียบวิธีการใหม่กับเครื่องมือที่มีอยู่ นอกจากนี้เรายังหวังว่าความเรียบง่ายของเครื่องมือเหล่านี้จะช่วยให้ผู้เริ่มต้นทำการทดสอบด้วยชุดเครื่องมือขั้นสูงโดยไม่ต้องถูกฝังไว้ในรายละเอียดการใช้งาน
หมายเหตุ: แม้จะมีความเรียบง่ายในการใช้งาน baselines ที่มั่นคง (SB) ถือว่าคุณมีความรู้เกี่ยวกับการเรียนรู้การเสริมแรง (RL) คุณไม่ควรใช้ห้องสมุดนี้โดยไม่ต้องฝึกฝน ในระดับนั้นเราให้ทรัพยากรที่ดีในเอกสารเพื่อเริ่มต้นด้วย RL
ชุดเครื่องมือนี้เป็นส้อมของ OpenAI baselines ที่มีโครงสร้างที่สำคัญและการทำความสะอาดรหัส:
| คุณสมบัติ | เสถียร | Openai baselines |
|---|---|---|
| วิธีการของศิลปะ RL | ✔ (1) | |
| เอกสาร | ||
| สภาพแวดล้อมที่กำหนดเอง | ||
| นโยบายที่กำหนดเอง | ➖ (2) | |
| อินเทอร์เฟซทั่วไป | ➖ (3) | |
| รองรับ Tensorboard | ➖ (4) | |
| ipython / notebook เป็นมิตร | ||
| รูปแบบรหัส PEP8 | ✔ (5) | |
| การโทรกลับที่กำหนดเอง | ➖ (6) |
(1): ฟอร์คจาก Openai Baselines รุ่นก่อนหน้าด้วยตอนนี้ SAC และ TD3 นอกจากนี้
(2): ปัจจุบันไม่สามารถใช้งานได้สำหรับ DDPG และจากสคริปต์รันเท่านั้น
(3): เฉพาะผ่านสคริปต์เรียกใช้
(4): การบันทึกข้อมูลการฝึกอบรมขั้นพื้นฐาน (ไม่มีการสูญเสียหรือกราฟ)
(5): แก้ไข: คุณทำ Openai! -
(6): ผ่านฟังก์ชั่นการโทรกลับมีให้สำหรับ DQN เท่านั้น
เอกสารสามารถใช้ได้ออนไลน์: https://stable-baselines.readthedocs.io/
สวนสัตว์ RL Baselines เป็นคอลเลกชันของตัวแทนการเรียนรู้การเสริมแรงที่ผ่านการฝึกอบรมมาก่อนโดยใช้เส้นผมที่เสถียร
นอกจากนี้ยังมีสคริปต์พื้นฐานสำหรับการฝึกอบรมการประเมินตัวแทนปรับแต่งพารามิเตอร์และวิดีโอบันทึก
เป้าหมายของที่เก็บนี้:
GitHub repo: https://github.com/araffin/rl-baselines-zoo
เอกสาร: https://stable-baselines.readthedocs.io/en/master/guide/rl_zoo.html
หมายเหตุ: Baselines ที่เสถียรรองรับรุ่น Tensorflow จาก 1.8.0 ถึง 1.14.0 การสนับสนุนสำหรับ TensorFlow 2 API มีการวางแผน
Baselines ต้องการ Python3 (> = 3.5) ด้วยส่วนหัวการพัฒนา นอกจากนี้คุณยังต้องการแพ็คเกจระบบ CMake, OpenMPI และ ZLIB สามารถติดตั้งได้ดังนี้
sudo apt-get update && sudo apt-get install cmake libopenmpi-dev python3-dev zlib1g-devการติดตั้งแพ็คเกจระบบบน Mac ต้องใช้ Homebrew ด้วยการติดตั้ง Homebrew ให้เรียกใช้สิ่งต่อไปนี้:
brew install cmake openmpiในการติดตั้งช่องเสียบที่เสถียรบน Windows โปรดดูเอกสารประกอบ
ติดตั้งแพ็คเกจ baselines ที่เสถียร:
pip install stable-baselines[mpi]
ซึ่งรวมถึงการพึ่งพา MPI ที่เป็นตัวเลือกการเปิดใช้งานอัลกอริทึม DDPG, Gail, PPO1 และ TRPO หากคุณไม่ต้องการอัลกอริทึมเหล่านี้คุณสามารถติดตั้งได้โดยไม่ต้อง MPI:
pip install stable-baselines
โปรดอ่านเอกสารสำหรับรายละเอียดและทางเลือกเพิ่มเติม (จากแหล่งที่มาโดยใช้ Docker)
ห้องสมุดส่วนใหญ่พยายามติดตามไวยากรณ์เหมือน Sklearn สำหรับอัลกอริทึมการเรียนรู้การเสริมแรง
นี่คือตัวอย่างที่รวดเร็วของวิธีการฝึกอบรมและเรียกใช้ PPO2 ในสภาพแวดล้อม cartpole:
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:
| ชื่อ | refactored (1) | กำเริบ | Box | Discrete | MultiDiscrete | MultiBinary | การประมวลผลหลาย |
|---|---|---|---|---|---|---|---|
| A2C | |||||||
| ACER | (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): สิ่งที่ต้องทำในขอบเขตโครงการ
หมายเหตุ: Soft Actor-Critic (SAC) และ Twin ล่าช้า DDPG (TD3) ไม่ได้เป็นส่วนหนึ่งของ baselines ดั้งเดิมและเธอได้รับการปรับปรุงใหม่ตั้งแต่เริ่มต้น
Actions gym.spaces :
Box : กล่อง N มิติที่มีทุกจุดในพื้นที่แอ็คชั่นDiscrete : รายการการกระทำที่เป็นไปได้ซึ่งแต่ละครั้งสามารถใช้งานได้เพียงอย่างเดียวเท่านั้นMultiDiscrete : รายการการกระทำที่เป็นไปได้ซึ่งแต่ละครั้งสามารถใช้การกระทำเพียงครั้งเดียวของแต่ละชุดที่ไม่ต่อเนื่องMultiBinary : รายการการกระทำที่เป็นไปได้ซึ่งแต่ละครั้งสามารถใช้การกระทำใด ๆ ในการรวมกันใด ๆ ตัวอย่างพื้นฐานบางอย่างใช้ Mujoco (พลวัตหลายข้อต่อในการติดต่อ) ตัวจำลองฟิสิกส์ซึ่งเป็นกรรมสิทธิ์และต้องใช้ไบรท์และใบอนุญาต (ใบอนุญาต 30 วันชั่วคราวสามารถรับได้จาก www.mujoco.org) คำแนะนำเกี่ยวกับการตั้งค่า Mujoco สามารถพบได้ที่นี่
การทดสอบหน่วยทั้งหมดใน baselines สามารถรันได้โดยใช้ 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}},
}
ขณะนี้มีการดูแลรักษาโดยแอชลีย์ฮิลล์ (aka @Hill-A), Antonin Raffin (aka @araffin), Maximilian Ernestus (aka @ernestum), Adam Gleave (@adamgleave) และ Anssi Kanervisto (@miffyli)
หมายเหตุสำคัญ: เราไม่ได้ให้การสนับสนุนด้านเทคนิคและไม่ให้คำปรึกษา และไม่ตอบคำถามส่วนตัวต่ออีเมล
สำหรับความสนใจในการทำให้ baselines ดีขึ้นยังมีเอกสารบางอย่างที่ต้องทำ หากคุณต้องการมีส่วนร่วมโปรดอ่านคู่มือ MD ก่อน
baselines ที่มั่นคงถูกสร้างขึ้นในหุ่นยนต์ Lab U2Is (ทีม Inria Flowers) ที่ Ensta Paristech
เครดิตโลโก้: LM Tenkes