تحذير: هذه الحزمة في وضع الصيانة ، يرجى استخدام baselines3 (SB3) المستقر للحصول على إصدار محدث. يمكنك العثور على دليل ترحيل في وثائق SB3.
خطوط الأساس المستقرة هي مجموعة من التطبيقات المحسّنة لخوارزميات التعلم التعزيز على أساس خطوط الأساس Openai.
يمكنك قراءة عرض مفصل لخطوط الأساس المستقرة في المقالة المتوسطة.
ستجعل هذه الخوارزميات من السهل على مجتمع الأبحاث والصناعة تكرار الأفكار الجديدة وصقلها وتحديدها ، وسوف تنشئ خطوط أساسية جيدة لبناء مشاريع. نتوقع أن يتم استخدام هذه الأدوات كقاعدة يمكن حولها إضافة الأفكار الجديدة ، وكأداة لمقارنة نهج جديد مع الأسلوب القائم. نأمل أيضًا أن تسمح بساطة هذه الأدوات للمبتدئين بتجربة مجموعة أدوات أكثر تقدماً ، دون دفنها في تفاصيل التنفيذ.
ملاحظة: على الرغم من بساطتها في الاستخدام ، فإن خطوط الأساس المستقرة (SB) تفترض أن لديك بعض المعرفة حول التعلم التعزيز (RL). يجب ألا تستخدم هذه المكتبة دون بعض الممارسة. إلى هذا الحد ، نقدم موارد جيدة في الوثائق للبدء في RL.
مجموعة الأدوات هذه عبارة عن شوكة من خطوط الأساس Openai ، مع إعادة تنظيف هيكلية رئيسية ، وتنظيف الكود:
| سمات | الحشائش المستقرة | Openai الأساس |
|---|---|---|
| أساليب RL الحديثة | ✔ (1) | ✔ |
| الوثائق | ✔ | |
| بيئات مخصصة | ✔ | ✔ |
| سياسات مخصصة | ✔ | ➖ (2) |
| واجهة مشتركة | ✔ | ➖ (3) |
| دعم Tensorboard | ✔ | ➖ (4) |
| Ipython / دفتر ودود | ✔ | |
| نمط رمز PEP8 | ✔ | ✔ (5) |
| رد اتصال مخصص | ✔ | ➖ (6) |
(1): متشوق من النسخة السابقة من خطوط أوبطياي ، مع الآن SAC و TD3 بالإضافة إلى ذلك
(2): حاليًا غير متوفر لـ DDPG ، وفقط من البرنامج النصي للتشغيل.
(3): فقط عبر البرنامج النصي.
(4): التسجيل البدائي لمعلومات التدريب (بدون خسارة ولا رسم بياني).
(5): تحرير: لقد فعلت ذلك Openai! ؟
(6): تمرير وظيفة رد الاتصال متاح فقط لـ DQN
الوثائق متوفرة عبر الإنترنت: https://stable-baselines.readthedocs.io/
RL Baselines Zoo. هي مجموعة من عوامل التعلم المعززة التي تم تدريبها قبل التدريب باستخدام الخطيئة المستقرة.
كما يوفر البرامج النصية الأساسية للتدريب ، وتقييم الوكلاء ، وضبط المقاييس المفرطة ومقاطع الفيديو تسجيل.
أهداف هذا المستودع:
Github repo: https://github.com/araffin/rl-baselines-zoo
الوثائق: https://stable-baselines.readthedocs.io/en/master/guide/rl_zoo.html
ملاحظة: تدعم الإشارات المستقرة الإصدارات من TensorFlow من 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 Homebrew. مع تثبيت homebrew ، قم بتشغيل ما يلي:
brew install cmake openmpiلتثبيت الحشوات المستقرة على Windows ، يرجى إلقاء نظرة على الوثائق.
قم بتثبيت حزمة خطوط الأساس المستقرة:
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:
| اسم | تم إعادة تمهيدها (1) | متكرر | Box | Discrete | MultiDiscrete | MultiBinary | المعالجة المتعددة |
|---|---|---|---|---|---|---|---|
| A2C | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| أيسر | ✔ | ✔ | (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) جزءًا من خطوط الأساس الأصلية وتم تعويضها من الصفر.
الإجراءات gym.spaces :
Box : مربع N- الأبعاد يحتوي على كل نقطة في مساحة العمل.Discrete : قائمة بالإجراءات الممكنة ، حيث يمكن استخدام كل واحد فقط من الإجراءات.MultiDiscrete : قائمة بالإجراءات الممكنة ، حيث يمكن استخدام كل إجراء واحد فقط من كل مجموعة منفصلة.MultiBinary : قائمة بالإجراءات الممكنة ، حيث يمكن استخدام كل من الإجراءات الزمنية في أي مجموعة. تستخدم بعض أمثلة خطوط الأساس محاكاة الفيزياء Mujoco (متعددة المفصلات في الاتصال) ، والتي تتطلب ثنائيات وترخيص (يمكن الحصول على ترخيص مؤقت لمدة 30 يومًا من www.mujoco.org). يمكن العثور على تعليمات حول إعداد Mujoco هنا
يمكن تشغيل جميع اختبارات الوحدة في خطوط الأساس باستخدام عداء Pytest:
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 (المعروف أيضًا باسم ARAFFIN) ، Maximilian Ernestus (AKA ernestum) ، Adam Gleave (adamgleave) و Anssi Kanervisto (miffyli).
ملاحظة مهمة: نحن لا نقوم بالدعم الفني ، ولا الاستشارات ولا نجيب على الأسئلة الشخصية لكل بريد إلكتروني.
لأي مهتم بجعل خطوط الأساس أفضل ، لا يزال هناك بعض الوثائق التي يجب القيام بها. إذا كنت ترغب في المساهمة ، فيرجى قراءة دليل المساهمة .
تم إنشاء خطوط الأساس المستقرة في مختبر Robotics U2IS (فريق Inria Flowers) في Ensta Paristech.
ائتمانات الشعار: LM Tenkes