Özel Gymnasium Ortamları
gym.Env alt sınıfı, gözlem/eylem uzayları, step/reset/render, özel ortam kaydetme.
Özel Gymnasium Ortamları, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.
Gymnasium Nedir?
Gymnasium (geliştirilmesi sürdürülen OpenAI Gym halefi), RL ortamları için standart API'dir. Arayüzüne uyan her agent, uyumlu herhangi bir ortamla çalışır; dolayısıyla kendi ortamınızı oluşturmak, özel sorunlara RL uygulamanızı sağlar.
pip install gymnasium
import gymnasium as gymgymnasium.Env Alt Sınıfını Oluşturma
Özel bir ortam gymnasium.Env sınıfının alt sınıfıdır ve dört şeyi uygular: eylem ve gözlem uzayları ile reset ve step. Bir agent'ın ihtiyaç duyduğu sözleşme bundan ibarettir.
class GridWorld(gym.Env):
def __init__(self):
super().__init__()Eylem Uzayı
action_space, hangi eylemlerin geçerli olduğunu bildirir. Discrete(n), n seçenek olduğu anlamına gelir (örneğin yukarı/aşağı/sol/sağ); Box ise yönlendirme gibi eylemler için sürekli aralıklar tanımlar.
self.action_space = gym.spaces.Discrete(4) # 4 movesGözlem Uzayı
observation_space, agent'ın ne gördüğünü tanımlar. Bir Box uzayı, gözlem vektörünün şeklini ve değer sınırlarını belirler; böylece algoritmalar girdi boyutlarını bilir.
self.observation_space = gym.spaces.Box(
low=0, high=10, shape=(2,), dtype=float
) # agent (x, y) positionreset Metodu
reset, yeni bir bölüm başlatır ve (observation, info) demeti döndürür. Tekrarlanabilirlik için bir seed kabul eder. Başlangıç gözlemini her zaman burada döndürün.
def reset(self, seed=None, options=None):
super().reset(seed=seed)
self.pos = [0, 0]
obs = self._get_obs()
info = {}
return obs, infostep Metodu
step(action), ortamı bir zaman adımı ilerletir. Beş değer döndürür: (obs, reward, terminated, truncated, info). Bu imzayı doğru uygulamak uyumluluk için kritik öneme sahiptir.
def step(self, action):
self._move(action)
obs = self._get_obs()
...terminated ve truncated
İki ayrı bayrak vardır: terminated, görevin doğal biçimde sona erdiği (hedefe ulaşıldığı veya başarısız olunduğu) anlamına gelir; truncated ise görevin kesildiğini belirtir (örneğin zaman sınırı nedeniyle). Bunları ayırmak, algoritmaların her birini doğru biçimde ele almasını sağlar.
terminated = (self.pos == self.goal)
truncated = (self.steps >= self.max_steps)
reward = 1.0 if terminated else -0.01
return obs, reward, terminated, truncated, {}Ödülü Tasarlama
Ödül fonksiyonu amacı tanımlar. Ödülü dikkatle şekillendirin: küçük bir adım cezası ile hedef bonusu, hedefe hızlı ulaşmayı teşvik eder. Kötü ödül tasarımı, RL başarısızlığının en yaygın nedenidir.
Ortamı Kaydetme
Yerleşik ortamların kuralına uyarak ortamınızı bir ID ile kaydedin; böylece onu gym.make aracılığıyla oluşturabilirsiniz.
gym.register(id="GridWorld-v0", entry_point=GridWorld)
env = gym.make("GridWorld-v0")Bir Agent ile Kullanma
Standart API'yi izlediği için özel ortamınız, ek bağlayıcı kod gerektirmeden Stable-Baselines3 gibi kütüphanelere doğrudan bağlanır.
from stable_baselines3 import PPO
env = gym.make("GridWorld-v0")
model = PPO("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=50_000)Standart Etkileşim Döngüsü
Her RL döngüsü aynı görünür: ilk gözlemi almak için reset yapın, ardından tekrar tekrar bir eylem seçin, step çağrısını yapın ve terminated veya truncated olduğunda durun. Gymnasium'ın temel amacı bu birlikteliktir.
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 truncatedHızlı Kontrol
Gymnasium bilginizi sınayın.
Özet: Özel Gymnasium Ortamları
gymnasium.Env sınıfının alt sınıfını oluşturarak, action_space ve observation_space tanımlayarak, reset() (obs, info döndürür) ve step() (obs, reward, terminated, truncated, info döndürür) uygulayarak ve bir ödül tasarlayarak özel bir ortam oluşturdunuz. Standart API'yi izlemek, herhangi bir RL kütüphanesinin bu ortamla eğitim yapmasını sağlar.
Sıkça Sorulan Sorular
“Özel Gymnasium Ortamları” dersi ücretsiz mi?
Evet — “Özel Gymnasium Ortamları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.
“Özel Gymnasium Ortamları” dersinde ne öğreneceğim?
gym.Env alt sınıfı, gözlem/eylem uzayları, step/reset/render, özel ortam kaydetme. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Özel Gymnasium Ortamları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Politika Gradyanı Yöntemleri: REINFORCE
- Aktör-Eleştirmen Yöntemleri (A2C)
- Yakınsal Politika Optimizasyonu (PPO)
- Özel Gymnasium Ortamları