Pembelajaran tanpa model, atau model-free learning, adalah paradigma di mana agen memperbaiki kebijakannya dari sampel pengalaman tanpa pernah mengetahui dinamika lingkungan berupa probabilitas transisi dan fungsi reward . Topik ini membandingkan pendekatan tersebut dengan pemrograman dinamis yang memerlukan model lengkap, lalu memperlihatkan bagaimana sebuah agen benar-benar berinteraksi dengan lingkungan Gymnasium dan hanya menyimpan tuple transisi sebagai bahan belajar. Setelah membaca, diharapkan pembaca memahami mengapa ketiadaan model menuntut pendekatan stokastik berbasis sampel, serta bagaimana data belajar agen tampak dalam praktik.
Model penuh versus sampel pengalaman#
Pemrograman dinamis mengasumsikan model MDP diketahui penuh. Pada iterasi nilai maupun iterasi kebijakan, persamaan Bellman dihitung secara eksak dengan menjumlahkan seluruh kemungkinan state berikutnya yang ditimbang probabilitas transisi. Kalkulasi semacam itu memerlukan akses langsung ke tabel dan , sehingga agen tidak perlu menjelajah lingkungan untuk mengetahui nilai sebuah state.
Pada masalah nyata, model jarang tersedia dalam bentuk seperti itu. Robotic simulator dapat dijadikan pendekatan, tetapi transisi sebenarnya pada perangkat keras sering menyimpang dari simulator. Agen yang belajar model-free menggantikan pengetahuan model dengan pengumpulan transisi yang benar-benar terjadi, yaitu tuple yang berisi state, aksi yang dipilih, reward yang diterima, dan state berikutnya. Algoritma kemudian memperbarui estimasi nilai berdasarkan tuple ini, satu per satu atau berkelompok kecil, bukan berdasarkan penjumlahan atas seluruh distribusi.
Konsekuensi langsung dari ketergantungan pada sampel adalah hadirnya varians. Pada pemrograman dinamis, satu kali pembaruan sudah memperhitungkan seluruh kemungkinan transisi sehingga hasilnya deterministik. Pada pembelajaran model-free, satu transisi hanyalah satu realisasi dari distribusi yang mungkin, sehingga pembaruan dapat terlalu optimis bila transisi yang terjadi kebetulan baik atau terlalu pesimis bila sebaliknya. Varians ini diredakan dengan menjalankan banyak episode dan memperbarui estimasi secara bertahap memakai learning rate yang kecil.
Agen berinteraksi tanpa mengetahui dinamika#
Blok berikut membuat lingkungan FrozenLake-v1 versi licin, yaitu is_slippery=True, lalu mengambil delapan transisi dengan aksi acak. Pada versi licin, aksi yang dipilih agen tidak selalu menggerakkannya ke arah yang dimaksud, sehingga state berikutnya bersifat stokastik. Agen hanya mencatat tuple transisi tanpa pernah melihat tabel probabilitas transisi yang dipakai lingkungan secara internal.
import warnings; warnings.filterwarnings("ignore")
import gymnasium as gym
import numpy as np
np.random.seed(0)
env = gym.make("FrozenLake-v1", is_slippery=True, map_name="4x4")
obs, info = env.reset(seed=0)
env.action_space.seed(0)
transitions = []
for _ in range(8):
a = int(env.action_space.sample())
ns, r, term, trunc, _ = env.step(a)
transitions.append((int(obs), a, float(r), int(ns)))
obs = ns
if term or trunc:
obs, info = env.reset(seed=0)
print("Transisi sampel dari FrozenLake-v1 (is_slippery=True):")
for i, (s, a, r, ns) in enumerate(transitions):
print(f" t={i}: state={s}, action={a}, reward={r:.4f}, next_state={ns}")
print()
print("Agen tidak melihat probabilitas transisi P(s'|s,a),")
print("hanya tuple (state, action, reward, next_state) seperti di atas.")Transisi sampel dari FrozenLake-v1 (is_slippery=True):
t=0: state=0, action=3, reward=0.0000, next_state=1
t=1: state=1, action=2, reward=0.0000, next_state=5
t=2: state=0, action=2, reward=0.0000, next_state=4
t=3: state=4, action=1, reward=0.0000, next_state=4
t=4: state=4, action=1, reward=0.0000, next_state=4
t=5: state=4, action=0, reward=0.0000, next_state=8
t=6: state=8, action=0, reward=0.0000, next_state=12
t=7: state=0, action=0, reward=0.0000, next_state=0
Agen tidak melihat probabilitas transisi P(s'|s,a),
hanya tuple (state, action, reward, next_state) seperti di atas.Keluaran tersebut memperlihatkan beberapa ciri khas pembelajaran model-free. Pada t=0, agen memilih aksi 3 di state 0 dan berpindah ke state 1, tetapi pada t=3 dan t=4 agen memilih aksi yang sama, yaitu 1, dari state 4 dan tetap tinggal di state 4. Hal ini terjadi karena is_slippery=True membuat setiap aksi berpotensi meluncur ke arah tegak lurus, sehingga pasangan yang sama dapat menghasilkan yang berbeda pada kesempatan berbeda. Agen hanya mengamati realisasi yang terjadi tanpa pernah tahu bahwa pada state 4 aksi 1 sesungguhnya memiliki probabilitas tertentu menuju setiap state tetangga.
Mengapa sampel cukup sebagai bahan belajar#
Meskipun satu transisi tidak mengungkapkan seluruh distribusi, akumulasi banyak transisi pada pasangan yang sama akan mendekati nilai ekspektasinya. Inilah dasar mengapa algoritma seperti Q-learning dan SARSA mampu konvergen: setiap pembaruan memberi koreksi kecil yang menyimpang dari target sebenarnya, tetapi rata-rata sejumlah besar pembaruan cenderung tepat. Syarat utamanya adalah eksplorasi yang memadai sehingga setiap pasangan dikunjungi berkali-kali, dan pembaruan dengan learning rate yang menurun atau tetap kecil agar estimasi tidak berosilasi terlalu jauh.
Tanpa model, agen juga tidak dapat melakukan perencanaan jangka panjang secara langsung melalui penjumlahan ekspektasi. Sebagai gantinya, agen memakai bootstrapping, yaitu memperbarui estimasi nilai saat ini berdasarkan estimasi nilai state berikutnya yang juga belum sempurna. Pendekatan ini akan dibahas pada topik pembaruan TD, dan menjadi inti yang menyatukan Q-learning serta SARSA pada topik-topik selanjutnya.
Kesalahan umum#
Mengasumsikan transisi deterministik dari satu sampel. Penyebabnya, satu observasi pasangan terlihat membawa ke satu tertentu, lalu dianggap sebagai hukum tetap. Akibatnya, agen menyimpang dari kebijakan optimal karena tidak memperhitungkan kemungkinan transisi lain. Perbaikannya, kumpulkan banyak transisi pada pasangan yang sama sebelum menyimpulkan distribusinya, dan gunakan algoritma yang menggabungkan ketidakpastian ini secara alami seperti Q-learning.
Ringkasan#
- Pembelajaran model-free memperbarui kebijakan dari sampel pengalaman berupa tuple , tanpa akses ke probabilitas transisi maupun fungsi reward .
- Pada lingkungan stokastik seperti FrozenLake
is_slippery=True, pasangan yang sama dapat menghasilkan berbeda, sehingga satu sampel tidak cukup untuk menyimpulkan distribusi. - Varians akibat pengambilan sampel diredakan dengan banyak episode, eksplorasi yang memadai, dan learning rate kecil yang membuat estimasi konvergen secara bertahap.
- Tanpa model, agen menggantikan perencanaan eksak dengan bootstrapping, yaitu memperbarui estimasi dari estimasi state berikutnya yang belum sempurna.
Referensi#
- Reinforcement Learning: An Introduction (2nd ed.), ch. 6 — Sutton & Barto — Bab “Temporal-Difference Learning” memperkenalkan motivasi pembelajaran tanpa model dari pengalaman tersampel.
- Gymnasium documentation — Farama Foundation
— API lingkungan
reset/stepyang menghasilkan tuple transisi sebagai bahan belajar agen.