Pelajari AI dengan Python · Pelajaran

Persekitaran Gymnasium Tersuai

Subkelas gym.Env, ruang pemerhatian/tindakan, step/reset/render, mendaftarkan persekitaran tersuai.

Pelajaran 4 daripada 413 langkah

Persekitaran Gymnasium Tersuai ialah pelajaran Pelajari AI dengan Python percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pelajari AI dengan Python, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.

Apakah Gymnasium?

Gymnasium (pengganti OpenAI Gym yang diselenggara) ialah antara muka standard untuk persekitaran RL. Mana-mana ejen yang mematuhi antara muka ini boleh berfungsi dengan mana-mana persekitaran yang serasi, jadi membina persekitaran sendiri membolehkan RL digunakan untuk masalah tersuai.

pip install gymnasium

import gymnasium as gym

Membina Subkelas gymnasium.Env

Persekitaran tersuai membina subkelas gymnasium.Env dan melaksanakan empat perkara: ruang tindakan dan pemerhatian, serta reset dan step. Kontrak itu sahaja yang diperlukan oleh ejen.

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

Ruang Tindakan

action_space mengisytiharkan tindakan yang sah. Discrete(n) bermaksud n pilihan (contohnya atas/bawah/kiri/kanan); Box mentakrifkan julat selanjar untuk tindakan seperti mengemudi.

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

Ruang Pemerhatian

observation_space menerangkan perkara yang dilihat oleh ejen. Ruang Box menetapkan bentuk dan batas nilai vektor pemerhatian supaya algoritma mengetahui dimensi input.

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

Kaedah reset

reset memulakan episod baharu dan mengembalikan tupel (observation, info). Ia menerima seed untuk kebolehulangan. Sentiasa kembalikan pemerhatian awal di sini.

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

Kaedah step

step(action) memajukan persekitaran sebanyak satu detik. Ia mengembalikan lima nilai: (obs, reward, terminated, truncated, info). Mendapatkan tandatangan ini dengan betul amat penting untuk keserasian.

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

Ditamatkan berbanding Dipendekkan

Dua bendera yang berasingan: terminated bermaksud tugasan berakhir secara semula jadi (matlamat dicapai atau tugasan gagal); truncated bermaksud tugasan dihentikan sebelum waktunya (contohnya had masa). Pemisahan ini membolehkan algoritma mengendalikan setiap keadaan dengan betul.

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

Mereka Bentuk Ganjaran

Fungsi ganjaran mentakrifkan matlamat. Reka bentuknya dengan teliti: penalti kecil bagi setiap langkah bersama bonus matlamat menggalakkan ejen mencapai sasaran dengan cepat. Reka bentuk ganjaran yang buruk ialah punca kegagalan RL yang paling lazim.

Mendaftarkan Persekitaran

Daftarkan persekitaran anda dengan ID supaya anda boleh menciptanya melalui gym.make, selaras dengan kebiasaan persekitaran terbina dalam.

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

Menggunakannya dengan Ejen

Oleh sebab persekitaran tersuai anda mematuhi antara muka standard, persekitaran itu boleh terus digunakan oleh pustaka seperti Stable-Baselines3 tanpa memerlukan kod penghubung tambahan.

from stable_baselines3 import PPO

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

Gelung Interaksi Standard

Setiap gelung RL kelihatan sama: lakukan reset untuk mendapatkan pemerhatian pertama, kemudian pilih tindakan berulang kali, panggil step, dan berhenti apabila tugasan ditamatkan atau dipendekkan. Keseragaman inilah tujuan utama 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

Semakan Ringkas

Uji pengetahuan anda tentang Gymnasium.

Ringkasan: Persekitaran Gymnasium Tersuai

Anda telah membina persekitaran tersuai dengan membina subkelas gymnasium.Env, mentakrifkan action_space dan observation_space, melaksanakan reset() (mengembalikan obs, info) dan step() (mengembalikan obs, reward, terminated, truncated, info), serta mereka bentuk ganjaran. Dengan mematuhi antara muka standard, mana-mana pustaka RL boleh melatih ejen menggunakan persekitaran itu.

Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
53
Pelajaran
225

Soalan Lazim

Adakah pelajaran “Persekitaran Gymnasium Tersuai” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pelajari AI dengan Python, termasuk “Persekitaran Gymnasium Tersuai”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Persekitaran Gymnasium Tersuai”?

Subkelas gym.Env, ruang pemerhatian/tindakan, step/reset/render, mendaftarkan persekitaran tersuai. Anda berlatih Pelajari AI dengan Python menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Pelajari AI dengan Python?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Pelajari AI dengan Python di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Persekitaran Gymnasium Tersuai” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pelajari AI dengan Python ini?

Ya. Setiap pelajaran Pelajari AI dengan Python menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Kaedah Kecerunan Dasar: REINFORCE
  2. Kaedah Pelakon-Pengkritik (A2C)
  3. Pengoptimuman Dasar Proksimal (PPO)
  4. Persekitaran Gymnasium Tersuai
← Kembali ke Pelajari AI dengan Python