Reinforcement Learning dengan Gymnasium dan Stable-Baselines3
Daftar Isi
Pendahuluan
Reinforcement Learning (RL) atau Pembelajaran Penguatan adalah paradigma pembelajaran mesin di mana sebuah agen belajar membuat keputusan dengan berinteraksi langsung dengan lingkungannya. Berbeda dengan supervised learning, RL tidak memerlukan data berlabel. Sebagai gantinya, agen menemukan perilaku optimal melalui proses coba-coba (trial and error) yang dipandu oleh sinyal reward (imbalan).
Tutorial ini memberikan panduan praktis untuk membangun agen RL menggunakan Gymnasium (fork yang dikelola dari OpenAI Gym) untuk simulasi environment dan Stable-Baselines3 (SB3) untuk implementasi algoritma RL mutakhir. Anda akan belajar melatih agen dengan DQN, PPO, dan A2C, membuat environment kustom, memantau pelatihan, dan mengevaluasi performa model.
Prasyarat
- Python 3.9+
- Pemahaman dasar tentang jaringan saraf tiruan
- Familiaritas dengan PyTorch (membantu namun tidak wajib)
Instalasi paket yang diperlukan:
pip install gymnasium stable-baselines3[extra] tensorboard numpy matplotlib
Flag [extra] menginstal dependensi tambahan termasuk dukungan TensorBoard dan environment Gymnasium ekstra.
Konsep Inti Reinforcement Learning
Sebelum menulis kode apa pun, penting untuk memahami komponen fundamental dari sistem RL.
Kerangka Kerja RL
Agen <---> Lingkungan (Environment)
| |
|-- Aksi ----> |
| |-- State, Reward -->|
|<------------------------------ ---|
- Agen (Agent): Entitas yang belajar dan membuat keputusan, yaitu memilih aksi.
- Lingkungan (Environment): Dunia tempat agen berinteraksi. Lingkungan menerima aksi dan mengembalikan state serta reward.
- State (Observasi): Representasi situasi terkini dalam lingkungan.
- Aksi (Action): Keputusan yang dibuat agen yang mempengaruhi lingkungan.
- Reward (Imbalan): Sinyal umpan balik skalar yang menunjukkan seberapa baik aksi yang diambil.
- Kebijakan (Policy): Pemetaan dari state ke aksi. Inilah yang dipelajari oleh agen.
- Episode: Urutan lengkap dari state awal hingga state terminal.
- Faktor Diskon (Gamma): Nilai antara 0 dan 1 yang menentukan seberapa besar reward masa depan dihargai relatif terhadap reward langsung.
Fungsi Nilai
- V(s): Reward kumulatif yang diharapkan dimulai dari state s, mengikuti kebijakan pi.
- Q(s, a): Reward kumulatif yang diharapkan dimulai dari state s, mengambil aksi a, kemudian mengikuti kebijakan pi.
Eksplorasi vs Eksploitasi
Agen harus menyeimbangkan antara mengeksplorasi aksi baru (untuk menemukan strategi yang berpotensi lebih baik) dengan mengeksploitasi aksi yang diketahui baik (untuk memaksimalkan reward). Hal ini dikelola melalui strategi seperti epsilon-greedy atau regularisasi entropi.
Memulai dengan Gymnasium
Gymnasium menyediakan antarmuka standar untuk environment RL.
Menjelajahi Environment
import gymnasium as gym
import numpy as np
Membuat environment CartPole
env = gym.make("CartPole-v1", rendermode="human")
print(f"Ruang observasi: {env.observationspace}")
print(f"Ruang aksi: {env.actionspace}")
print(f"Bentuk observasi: {env.observationspace.shape}")
print(f"Jumlah aksi: {env.actionspace.n}")