الفتنة | القائمة البريدية | تغريد |
---|---|---|
مجموعات جوجل |
موقع إلكتروني | مصدر | المستندات | ورق |
---|---|---|---|
pyribs.org | جيثب | docs.pyribs.org | pyribs.org/paper |
بايبي | كوندا | سي آي/سي دي | حالة المستندات |
---|---|---|---|
مكتبة بايثون الأساسية لتحسين تنوع الجودة (QD). تطبق Pyribs إطار عمل الإضاءة السريعة لمساحة السلوك (RIBS) المعياري للغاية لتحسين QD. Pyribs هو أيضًا التطبيق الرسمي لـ Covariance Matrix Adaptation MAP-Elites (CMA-ME)، وCovariance Matrix Adaptation MAP-Elites عبر Gradient Arborescent (CMA-MEGA)، وCovariance Matrix Adaptation MAP-Annealing (CMA-MAE)، والمتغيرات القابلة للتطوير. من CMA-MAE.
انضم إلى القائمة البريدية لإعلانات بيريبس للحصول على تحديثات غير متكررة (أقل من شهر واحد) عن حالة المشروع والإصدارات الجديدة.
هل تحتاج إلى بعض المساعدة؟ هل تريد أن تسأل ما إذا كان البيريبس مناسبًا لمشروعك؟ هل لديك سؤال لا يمثل خطأً تمامًا وليس طلبًا لميزة تمامًا؟
الانضمام إلى المجتمع الخلاف!
يُعد تحسين تنوع الجودة (QD) مجالًا فرعيًا للتحسين حيث تغطي الحلول التي تم إنشاؤها كل نقطة في مساحة القياس مع زيادة (أو تقليل) هدف واحد في نفس الوقت. تنتج خوارزميات QD ضمن عائلة MAP-Elites من خوارزميات QD خرائط حرارية (أرشيفات) كمخرجات حيث تحتوي كل خلية على أفضل ممثل تم اكتشافه لمنطقة ما في مساحة القياس.
في أدبيات QD، تمت الإشارة أيضًا إلى مخرجات وظيفة القياس باسم "الخصائص السلوكية"، أو "واصفات السلوك"، أو "واصفات الميزات".
شهدت السنوات الأخيرة تطوير عدد كبير من خوارزميات QD. لتمثيل هذه الخوارزميات والخوارزميات المستقبلية، قمنا بتطوير إطار عمل RIBS المعياري للغاية. يقسم RIBS خوارزمية QD إلى ثلاثة مكونات:
ومن خلال تبادل هذه المكونات، يمكن للمستخدم إنشاء عدد كبير من خوارزميات QD.
Pyribs هو تطبيق لإطار عمل RIBS المصمم لدعم مجموعة واسعة من المستخدمين، بدءًا من المبتدئين الذين يدخلون هذا المجال وحتى الباحثين ذوي الخبرة الذين يسعون إلى تطوير خوارزميات جديدة. يحقق بيريبس هذه الأهداف من خلال تجسيد ثلاثة مبادئ:
وعلى النقيض من مكتبات QD الأخرى، فإن البيريبات هي مجرد عظام. على سبيل المثال، مثل pycma، يركز pyribs فقط على تحسين المجالات المستمرة ذات الأبعاد الثابتة. يتيح لنا التركيز على هذه المشكلة الشائعة تحسين المكتبة من حيث الأداء بالإضافة إلى سهولة الاستخدام. ارجع إلى قائمة مكتبات QD الإضافية أدناه إذا كنت بحاجة إلى التعامل مع حالات الاستخدام الإضافية.
باتباع إطار عمل RIBS (كما هو موضح في الشكل أدناه)، تعمل الخوارزمية القياسية في البيريبات على النحو التالي:
ask()
على المجدول. يطلب المجدول حلولاً من كل باعث عن طريق استدعاء طريقة ask()
الخاصة بالباعث.tell()
الخاصة بالمجدول. يضيف المجدول الحلول إلى الأرشيف ويتلقى التعليقات. يقوم المجدول بتمرير هذه التعليقات مع الحلول التي تم تقييمها إلى طريقة tell()
الخاصة بكل باعث، ثم يقوم كل باعث بتحديث حالته الداخلية. بيريبس يدعم بايثون 3.8 وما فوق. يمكن للغالبية العظمى من المستخدمين تثبيت pyribs عن طريق تشغيل:
# If you are on Mac, you may need to use quotations, e.g., pip install "ribs[visualize]"
pip install ribs[visualize]
يتضمن الأمر أعلاه visualize
الإضافي. إذا كنت لن تستخدم أدوات عرض pyribs، فيمكنك تثبيت الإصدار الأساسي من pyribs باستخدام:
pip install ribs
للحصول على أوامر تثبيت أكثر تحديدًا (على سبيل المثال، التثبيت من Conda أو التثبيت من المصدر)، قم بزيارة محدد التثبيت على موقعنا على الويب.
لاختبار التثبيت، قم باستيراد pyribs وطباعة الإصدار باستخدام هذا الأمر:
python -c " import ribs; print(ribs.__version__) "
يجب أن تشاهد رقم الإصدار في الإخراج.
نعرض هنا مثالاً لتطبيق CMA-ME في البيريبس. لتهيئة الخوارزمية، نقوم أولاً بإنشاء:
بعد تهيئة المكونات، نقوم بتحسين (تعظيم البيريبس) الدالة السالبة 10-D Sphere لـ 1000 تكرار. سيكون مستخدمو pycma على دراية بواجهة Ask-tell (التي اعتمدها pyribs). أولاً، يجب على المستخدم ask
المجدول حلولاً مرشحة جديدة. بعد تقييم الحل، tell
المجدول بأهداف ومقاييس كل حل مرشح. تقوم الخوارزمية بعد ذلك بملء الأرشيف واتخاذ القرارات بشأن مكان أخذ عينات من الحلول بعد ذلك. يستخدم مثال لعبتنا المعلمتين الأوليين لمساحة البحث كمقاييس.
import numpy as np
from ribs . archives import GridArchive
from ribs . emitters import EvolutionStrategyEmitter
from ribs . schedulers import Scheduler
archive = GridArchive (
solution_dim = 10 ,
dims = [ 20 , 20 ],
ranges = [( - 1 , 1 ), ( - 1 , 1 )],
)
emitters = [
EvolutionStrategyEmitter (
archive ,
x0 = [ 0.0 ] * 10 ,
sigma0 = 0.1 ,
) for _ in range ( 3 )
]
scheduler = Scheduler ( archive , emitters )
for itr in range ( 1000 ):
solutions = scheduler . ask ()
# Optimize the 10D negative Sphere function.
objective_batch = - np . sum ( np . square ( solutions ), axis = 1 )
# Measures: first 2 coordinates of each 10D solution.
measures_batch = solutions [:, : 2 ]
scheduler . tell ( objective_batch , measures_batch )
لتصور هذا الأرشيف باستخدام Matplotlib، نستخدم بعد ذلك وظيفة grid_archive_heatmap
من ribs.visualize
.
import matplotlib . pyplot as plt
from ribs . visualize import grid_archive_heatmap
grid_archive_heatmap ( archive )
plt . show ()
الوثائق متاحة على الانترنت هنا . نقترح أن يبدأ المستخدمون الجدد بالبرامج التعليمية.
بعد عامين من الإصدار الأولي للبيريبس، أصدرنا ورقة بحثية توضح بالتفصيل إطار عمل RIBS وقرارات التصميم وراء البيريبس. لمزيد من المعلومات حول هذه الورقة، انظر هنا. إذا كنت تستخدم البيريبس في بحثك، فيرجى التفكير في الاستشهاد بهذه الورقة على النحو التالي. ضع في اعتبارك أيضًا الاستشهاد بأي خوارزميات تستخدمها كما هو موضح أدناه.
@inproceedings{10.1145/3583131.3590374,
author = {Tjanaka, Bryon and Fontaine, Matthew C and Lee, David H and Zhang, Yulun and Balam, Nivedit Reddy and Dennler, Nathaniel and Garlanka, Sujay S and Klapsis, Nikitas Dimitri and Nikolaidis, Stefanos},
title = {Pyribs: A Bare-Bones Python Library for Quality Diversity Optimization},
year = {2023},
isbn = {9798400701191},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3583131.3590374},
doi = {10.1145/3583131.3590374},
abstract = {Recent years have seen a rise in the popularity of quality diversity (QD) optimization, a branch of optimization that seeks to find a collection of diverse, high-performing solutions to a given problem. To grow further, we believe the QD community faces two challenges: developing a framework to represent the field's growing array of algorithms, and implementing that framework in software that supports a range of researchers and practitioners. To address these challenges, we have developed pyribs, a library built on a highly modular conceptual QD framework. By replacing components in the conceptual framework, and hence in pyribs, users can compose algorithms from across the QD literature; equally important, they can identify unexplored algorithm variations. Furthermore, pyribs makes this framework simple, flexible, and accessible, with a user-friendly API supported by extensive documentation and tutorials. This paper overviews the creation of pyribs, focusing on the conceptual framework that it implements and the design principles that have guided the library's development. Pyribs is available at https://pyribs.org},
booktitle = {Proceedings of the Genetic and Evolutionary Computation Conference},
pages = {220–229},
numpages = {10},
keywords = {framework, quality diversity, software library},
location = {Lisbon, Portugal},
series = {GECCO '23}
}
تم تطوير pyribs وصيانته بواسطة مختبر ICAROS في جامعة جنوب كاليفورنيا. للحصول على معلومات حول المساهمة في الريبو، راجع المساهمة.
نشكر إيمي ك. هوفر وجوليان توجيليوس لمساهماتهم في استخلاص خوارزمية CMA-ME.
يشمل مستخدمو بيريبس ما يلي:
للحصول على قائمة المنشورات التي تستخدم البيريبس، راجع إدخال الباحث العلمي من Google.
راجع الرسم البياني لتبعية GitHub للتعرف على مستودعات GitHub العامة التي تعتمد على البيريبات.
إذا كنت تستخدم الخوارزميات التالية، فيرجى التفكير في الاستشهاد بالأوراق البحثية ذات الصلة بها:
@inproceedings{10.1145/3377930.3390232,
author = {Fontaine, Matthew C. and Togelius, Julian and Nikolaidis, Stefanos and Hoover, Amy K.},
title = {Covariance Matrix Adaptation for the Rapid Illumination of Behavior Space},
year = {2020},
isbn = {9781450371285},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3377930.3390232},
doi = {10.1145/3377930.3390232},
booktitle = {Proceedings of the 2020 Genetic and Evolutionary Computation Conference},
pages = {94–102},
numpages = {9},
location = {Canc'{u}n, Mexico},
series = {GECCO '20}
}
@inproceedings{NEURIPS2021_532923f1,
author = {Fontaine, Matthew and Nikolaidis, Stefanos},
booktitle = {Advances in Neural Information Processing Systems},
editor = {M. Ranzato and A. Beygelzimer and Y. Dauphin and P.S. Liang and J. Wortman Vaughan},
pages = {10040--10052},
publisher = {Curran Associates, Inc.},
title = {Differentiable Quality Diversity},
url = {https://proceedings.neurips.cc/paper/2021/file/532923f11ac97d3e7cb0130315b067dc-Paper.pdf},
volume = {34},
year = {2021}
}
@misc{cmamae,
doi = {10.48550/ARXIV.2205.10752},
url = {https://arxiv.org/abs/2205.10752},
author = {Fontaine, Matthew C. and Nikolaidis, Stefanos},
keywords = {Machine Learning (cs.LG), Artificial Intelligence (cs.AI), FOS: Computer and information sciences, FOS: Computer and information sciences},
title = {Covariance Matrix Adaptation MAP-Annealing},
publisher = {arXiv},
year = {2022},
copyright = {arXiv.org perpetual, non-exclusive license}
}
@ARTICLE{10243102,
author={Tjanaka, Bryon and Fontaine, Matthew C. and Lee, David H. and Kalkar, Aniruddha and Nikolaidis, Stefanos},
journal={IEEE Robotics and Automation Letters},
title={Training Diverse High-Dimensional Controllers by Scaling Covariance Matrix Adaptation MAP-Annealing},
year={2023},
volume={8},
number={10},
pages={6771-6778},
keywords={Covariance matrices;Training;Neural networks;Legged locomotion;Reinforcement learning;Evolutionary robotics;Evolutionary robotics;reinforcement learning},
doi={10.1109/LRA.2023.3313012}
}
يتم إصدار بيريبس بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.
تم إنشاء حزمة pyribs في البداية باستخدام Cookiecutter وقالب مشروع audreyr/cookiecutter-pypackage.