q-learning dasar-dasar dan contoh implementasi

Q-Learning: Dasar-Dasar dan Contoh Implementasi

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 keadaan s dan aksi a.
  • α (alpha): Learning rate (laju pembelajaran).
  • r: Reward yang diperoleh setelah melakukan aksi a di keadaan s.
  • γ (gamma): Discount factor (faktor diskonto) yang menentukan seberapa jauh reward masa depan diperhitungkan.
  • max(Q(s', a')): Nilai Q tertinggi untuk semua aksi a' dari keadaan berikutnya s'.

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.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top