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 keadaans
dan aksia
.α
(alpha): Learning rate (laju pembelajaran).r
: Reward yang diperoleh setelah melakukan aksia
di 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.