0Pricing
Learn AI with Python · درس

بيئات Gymnasium المخصصة

الفئة الفرعية gym.Env، وفضاءات الملاحظة والفعل، وstep/reset/render، وتسجيل بيئة مخصصة

بيئات Gymnasium المخصصة درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ما هو Gymnasium؟

يمثل Gymnasium، وهو الخلف المُصان لـOpenAI Gym، واجهة برمجة التطبيقات القياسية لبيئات تعلم التعزيز. ويعمل أي وكيل يتبع واجهته مع أي بيئة متوافقة، لذا يتيح بناء بيئتك الخاصة استخدام تعلم التعزيز في مسائل مخصصة.

pip install gymnasium

import gymnasium as gym

التوريث من gymnasium.Env

ترث البيئة المخصصة من gymnasium.Env وتنفّذ أربعة أمور: مساحتي الأفعال والملاحظات، بالإضافة إلى reset وstep. وهذا العقد هو كل ما يحتاج إليه الوكيل.

class GridWorld(gym.Env):
    def __init__(self):
        super().__init__()

مساحة الأفعال

تحدد action_space الأفعال الصالحة. ويعني Discrete(n) وجود n من الخيارات، مثل الأعلى والأسفل واليسار واليمين، بينما يحدد Box نطاقات مستمرة لأفعال مثل التوجيه.

self.action_space = gym.spaces.Discrete(4)  # 4 moves

مساحة الملاحظات

تصف observation_space ما يراه الوكيل. وتحدد مساحة Box شكل متجه الملاحظة وحدود قيمه، لكي تعرف الخوارزميات أبعاد الإدخال.

self.observation_space = gym.spaces.Box(
    low=0, high=10, shape=(2,), dtype=float
)  # agent (x, y) position

طريقة reset

تبدأ reset حلقة جديدة وتعيد صفاً من الشكل (observation, info). وهي تقبل seed لضمان قابلية إعادة الإنتاج. احرص دائماً على إعادة الملاحظة الأولية هنا.

def reset(self, seed=None, options=None):
    super().reset(seed=seed)
    self.pos = [0, 0]
    obs = self._get_obs()
    info = {}
    return obs, info

طريقة step

تقدّم step(action) البيئة خطوة زمنية واحدة. وتعيد خمس قيم: (obs, reward, terminated, truncated, info). ويُعد الالتزام بهذا التوقيع أمراً أساسياً للتوافق.

def step(self, action):
    self._move(action)
    obs = self._get_obs()
    ...

terminated مقابل truncated

هناك علامتان منفصلتان: تشير terminated إلى انتهاء المهمة بشكل طبيعي، مثل الوصول إلى الهدف أو الفشل، بينما تشير truncated إلى إيقافها قسراً، مثل تجاوز الحد الزمني. ويتيح الفصل بينهما للخوارزميات التعامل مع كل حالة بشكل صحيح.

    terminated = (self.pos == self.goal)
    truncated = (self.steps >= self.max_steps)
    reward = 1.0 if terminated else -0.01
    return obs, reward, terminated, truncated, {}

تصميم المكافأة

تحدد دالة المكافأة الهدف. صمّمها بعناية: ففرض عقوبة صغيرة على كل خطوة مع منح مكافأة عند الوصول إلى الهدف يشجع على بلوغه سريعاً. ويُعد سوء تصميم المكافأة السبب الأكثر شيوعاً لفشل تعلم التعزيز.

تسجيل البيئة

سجّل بيئتك باستخدام معرّف ID لكي تتمكن من إنشائها عبر gym.make، بما يتوافق مع أسلوب البيئات المضمّنة.

gym.register(id="GridWorld-v0", entry_point=GridWorld)
env = gym.make("GridWorld-v0")

استخدامها مع وكيل

بما أنها تتبع واجهة برمجة التطبيقات القياسية، يمكن لبيئتك المخصصة الاتصال مباشرة بمكتبات مثل Stable-Baselines3 من دون الحاجة إلى شفرة ربط إضافية.

from stable_baselines3 import PPO

env = gym.make("GridWorld-v0")
model = PPO("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=50_000)

حلقة التفاعل القياسية

تبدو كل حلقة لتعلم التعزيز بالشكل نفسه: نفّذ إعادة ضبط للحصول على الملاحظة الأولى، ثم اختر فعلاً بشكل متكرر، واستدعِ step، وتوقف عند تحقق terminated أو truncated. وهذا الاتساق هو جوهر Gymnasium.

obs, info = env.reset()
done = False
while not done:
    action = env.action_space.sample()
    obs, reward, terminated, truncated, info = env.step(action)
    done = terminated or truncated

اختبار سريع

اختبر معرفتك بـGymnasium.

مراجعة: بيئات Gymnasium المخصصة

لقد بنيتَ بيئة مخصصة عبر التوريث من gymnasium.Env، وتعريف action_space وobservation_space، وتنفيذ reset()، الذي يعيد obs وinfo، وstep()، الذي يعيد obs وreward وterminated وtruncated وinfo، وتصميم مكافأة. ويتيح اتباع واجهة برمجة التطبيقات القياسية لأي مكتبة لتعلم التعزيز تدريب وكيل عليها.

الأسئلة الشائعة

هل درس «بيئات Gymnasium المخصصة» مجاني؟

نعم — نص درس «بيئات Gymnasium المخصصة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ماذا ستتعلم في «بيئات Gymnasium المخصصة»؟

الفئة الفرعية gym.Env، وفضاءات الملاحظة والفعل، وstep/reset/render، وتسجيل بيئة مخصصة تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟

لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «بيئات Gymnasium المخصصة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟

نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أساليب تدرّج السياسة: ‏REINFORCE
  2. أساليب الفاعل والناقد (A2C)
  3. تحسين السياسة القريب (PPO)
  4. بيئات Gymnasium المخصصة
← العودة إلى Learn AI with Python