0Pricing
Learn AI with Python · Lekcja

Własne środowiska Gymnasium

Podklasa gym.Env, przestrzenie obserwacji i działań, step/reset/render, rejestrowanie własnego środowiska.

Własne środowiska Gymnasium to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Czym jest Gymnasium

Gymnasium (utrzymywana kontynuacja OpenAI Gym) to standardowe API dla środowisk RL. Każdy agent zgodny z tym interfejsem działa z każdym kompatybilnym środowiskiem, więc tworzenie własnych środowisk otwiera drogę do stosowania RL w niestandardowych problemach.

pip install gymnasium

import gymnasium as gym

Dziedziczenie po gymnasium.Env

Własne środowisko dziedziczy po gymnasium.Env i implementuje cztery elementy: przestrzeń akcji, przestrzeń obserwacji oraz metody reset i step. Ten kontrakt jest wszystkim, czego potrzebuje agent.

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

Przestrzeń akcji

action_space określa, które akcje są prawidłowe. Discrete(n) oznacza n możliwości (na przykład góra/dół/lewo/prawo), a Box definiuje ciągłe zakresy dla akcji takich jak sterowanie.

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

Przestrzeń obserwacji

observation_space opisuje to, co widzi agent. Przestrzeń Box określa kształt i granice wartości wektora obserwacji, dzięki czemu algorytmy znają wymiary danych wejściowych.

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

Metoda reset

reset rozpoczyna nowy epizod i zwraca krotkę (observation, info). Przyjmuje parametr seed zapewniający powtarzalność. W tym miejscu należy zawsze zwrócić początkową obserwację.

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

Metoda step

step(action) przesuwa środowisko o jeden krok. Zwraca pięć wartości: (obs, reward, terminated, truncated, info). Poprawne zachowanie tego podpisu jest niezbędne dla zgodności.

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

terminated a truncated

Są to dwie oddzielne flagi: terminated oznacza naturalne zakończenie zadania (osiągnięcie celu lub porażkę), a truncated oznacza jego przerwanie (na przykład z powodu limitu czasu). Rozdzielenie tych flag pozwala algorytmom poprawnie obsługiwać oba przypadki.

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

Projektowanie nagrody

Funkcja nagrody definiuje cel. Należy zaprojektować ją starannie: niewielka kara za krok oraz premia za osiągnięcie celu zachęcają do szybkiego dotarcia do celu. Nieprawidłowy projekt nagrody jest najczęstszą przyczyną niepowodzeń RL.

Rejestrowanie środowiska

Należy zarejestrować środowisko pod identyfikatorem, aby można było utworzyć je za pomocą gym.make, zgodnie z konwencją wbudowanych środowisk.

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

Używanie środowiska z agentem

Ponieważ własne środowisko jest zgodne ze standardowym API, można bezpośrednio podłączyć je do bibliotek takich jak Stable-Baselines3 — bez dodatkowego kodu pośredniczącego.

from stable_baselines3 import PPO

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

Standardowa pętla interakcji

Każda pętla RL wygląda tak samo: należy wywołać reset, aby uzyskać pierwszą obserwację, a następnie wielokrotnie wybierać akcję, wywoływać step i kończyć działanie po ustawieniu flagi terminated lub truncated. Ta jednolitość jest głównym celem 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

Szybkie sprawdzenie

Sprawdź swoją wiedzę na temat Gymnasium.

Podsumowanie: własne środowiska Gymnasium

Zbudowali Państwo własne środowisko, dziedzicząc po gymnasium.Env, definiując action_space i observation_space, implementując reset() (zwraca obs, info) oraz step() (zwraca obs, reward, terminated, truncated, info), a także projektując nagrodę. Zgodność ze standardowym API pozwala dowolnej bibliotece RL trenować agenta w tym środowisku.

Często zadawane pytania

Czy lekcja „Własne środowiska Gymnasium” jest bezpłatna?

Tak — pełny tekst „Własne środowiska Gymnasium” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Co nauczysz się w „Własne środowiska Gymnasium”?

Podklasa gym.Env, przestrzenie obserwacji i działań, step/reset/render, rejestrowanie własnego środowiska. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?

Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Własne środowiska Gymnasium”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?

Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Metody gradientu polityki: REINFORCE
  2. Metody aktor–krytyk (A2C)
  3. Proximal Policy Optimization (PPO)
  4. Własne środowiska Gymnasium
← Powrót do Learn AI with Python