Reinforcement Learning (RL) adalah paradigma machine learning ketiga, dan yang paling mirip cara manusia belajar: coba, kena reward atau hukuman, perbaiki strategi, ulangi. Tidak ada dataset berlabel seperti supervised learning; ada agent yang beraksi di environment dan belajar dari konsekuensi. Episode ini penutup rangkaian konsep dasar, catatan saya memahami empat kata kuncinya: agent, environment, reward, dan policy.
Empat Kata Kunci
- Agent: si pelaku yang mengambil keputusan. Program kita.
- Environment: dunia tempat agent berada, yang merespons aksi dan memberi feedback.
- Reward: sinyal angka setelah tiap aksi — positif atau negatif. Satu-satunya definisi “benar” yang agent punya.
- Policy: strategi agent, fungsi dari state ke aksi. Tujuan training adalah policy yang memaksimalkan total reward jangka panjang.
Siklusnya berputar terus: agent melihat state, memilih aksi sesuai policy, environment merespons dengan state baru plus reward, ulangi. Analogi programmer: ini loop game. State adalah snapshot dunia, aksi adalah input, reward adalah score. Yang dipelajari RL bukan jawaban benar per kasus, tapi strategi yang menang dalam jangka panjang.
Exploration vs Exploitation
Dilema paling ikonik di RL: haruskah agent terus memakai jalur yang sudah terbukti memberi reward (exploitation), atau mencoba jalur baru yang mungkin lebih baik (exploration)? Restoran favorit versus restoran baru yang belum dicoba. Kalau terlalu rakus, agent terjebak di solusi biasa-biasa saja. Kalau terlalu petualang, dia tak pernah konsisten memanen reward terbaik. Strategi umum bernama epsilon-greedy: sebagian besar waktu pakai aksi terbaik yang diketahui, sisanya (probabilitas ε) coba acak.
Q-Learning: Belajar Nilai Aksi
Cara klasik memahami RL: Q-learning. Ide intinya tabel Q(state, action) yang menyimpan estimasi “seberapa bagus aksi ini dari state ini”. Setelah tiap pengalaman, estimasi diperbarui dengan reward yang diterima plus estimasi terbaik dari state berikutnya — belajar dari masa depan yang diproyeksikan. Rumus update-nya disebut Bellman equation, dan implementasi minimalnya mengejutkan pendek:
import numpy as np
Q = np.zeros((n_states, n_actions)) # tabel Q diinisialisasi nol
for episode in range(5000):
s = env.reset()
done = False
while not done:
if np.random.rand() < epsilon:
a = np.random.randint(n_actions) # explore
else:
a = np.argmax(Q[s]) # exploit
s2, r, done = env.step(a)
# update Q: reward + estimasi masa depan
Q[s, a] += alpha * (r + gamma * np.max(Q[s2]) - Q[s, a])
s = s2
Hyperparameter singkat: alpha adalah learning rate (seberapa keras update), gamma adalah discount factor (seberapa dihargai reward masa depan vs sekarang), epsilon mengatur exploration. Tabel Q bekerja untuk state diskrit sedikit; begitu state-nya jutaan — misalnya frame piksel game — tabelnya mustahil, dan di situlah neural network menggantikan tabel (DQN, Deep Q-Network).
Perbandingan Tiga Paradigma
| Paradigma | Data | Feedback | Contoh |
|---|---|---|---|
| Supervised | (input, label) | Benar/salah per contoh | Klasifikasi gambar |
| Unsupervised | Input saja | Tidak ada label | Clustering pelanggan |
| Reinforcement | Interaksi dengan environment | Reward tertunda | Game AI, robotika |
Catatan jujur penutup seri konsep: RL adalah area yang paling sulit saya debug. Reward yang salah desain menghasilkan perilaku absurd yang secara teknis “sukses” — agent menemukan celah yang tidak kita bayangkan, seperti bug yang mengeksploitasi undefined behavior. Merancang reward function ternyata seni semacam merancang metrik KPI: ukur hal yang salah, dapatkan hal yang salah, dengan sangat efisien.
Komentar Terbaru