Q-Learning adalah salah satu algoritma pembelajaran penguatan (Reinforcement Learning) yang digunakan untuk menyelesaikan masalah pengambilan keputusan dalam lingkungan yang tidak pasti.
Algoritma ini memungkinkan agen untuk belajar dari interaksi dengan lingkungan melalui pendekatan trial-and-error serta memperbarui kebijakan berdasarkan reward yang diperoleh.
Konsep Dasar Q-Learning
Q-Learning adalah metode pembelajaran nilai (value-based learning) yang bertujuan untuk menemukan kebijakan optimal dalam pengambilan keputusan. Algoritma ini bekerja dengan menggunakan tabel Q (Q-table) yang menyimpan nilai untuk setiap pasangan keadaan (state) dan aksi (action).
Formula utama dalam Q-Learning adalah sebagai berikut:
Q(s, a) = Q(s, a) + α * [r + γ * max(Q(s', a')) - Q(s, a)]
Di mana:
Q(s, a): Nilai Q untuk keadaansdan aksia.α(alpha): Learning rate (laju pembelajaran).r: Reward yang diperoleh setelah melakukan aksiadi keadaans.γ(gamma): Discount factor (faktor diskonto) yang menentukan seberapa jauh reward masa depan diperhitungkan.max(Q(s', a')): Nilai Q tertinggi untuk semua aksia'dari keadaan berikutnyas'.
Implementasi dalam Python
Berikut adalah contoh implementasi dalam permainan sederhana menggunakan lingkungan OpenAI Gym:
import numpy as np
import gym
env = gym.make("FrozenLake-v1", is_slippery=False)
n_states = env.observation_space.n
n_actions = env.action_space.n
# Inisialisasi Q-table
table_q = np.zeros((n_states, n_actions))
# Hyperparameter
alpha = 0.1 # Learning rate
gamma = 0.9 # Discount factor
epsilon = 0.1 # Explorasi vs eksploitasi
episodes = 1000
for episode in range(episodes):
state = env.reset()[0]
done = False
while not done:
if np.random.uniform(0, 1) < epsilon:
action = env.action_space.sample() # Eksplorasi
else:
action = np.argmax(table_q[state, :]) # Eksploitasi
next_state, reward, done, _, _ = env.step(action)
# Update Q-table
table_q[state, action] = table_q[state, action] + alpha * (reward + gamma * np.max(table_q[next_state, :]) - table_q[state, action])
state = next_state
print("Q-Table setelah training:")
print(table_q)
Kesimpulan
Q-Learning adalah salah satu algoritma Reinforcement Learning yang efektif dalam menemukan kebijakan optimal berdasarkan pengalaman interaksi dengan lingkungan.
Dengan memahami konsep dasar dan implementasi dengan python, kita dapat mengaplikasikan metode ini dalam berbagai bidang seperti robotika, game AI, dan sistem rekomendasi.
Dengan pendekatan yang sistematis dan penggunaan parameter yang tepat, metode ini dapat menjadi alat yang kuat dalam menyelesaikan berbagai permasalahan pembelajaran mesin berbasis agen.

