Pembelajaran temporal difference

Reinforcement Learning dengan Gymnasium di Python

Fouad Trad

Machine Learning Engineer

TD vs. Monte Carlo

 

Pembelajaran TD
  • Tanpa model
  • Estimasi Q-table dari interaksi
  • Perbarui Q-table tiap langkah dalam episode
  • Cocok untuk tugas dengan episode panjang/tidak tentu

 

Monte Carlo
  • Tanpa model
  • Estimasi Q-table dari interaksi
  • Perbarui Q-table saat minimal satu episode selesai
  • Cocok untuk tugas episodik pendek
Reinforcement Learning dengan Gymnasium di Python

TD learning sebagai peramalan cuaca

Gambar yang menunjukkan kondisi cuaca berbeda pada waktu berbeda di tempat yang sama.

Reinforcement Learning dengan Gymnasium di Python

SARSA

  • Algoritme TD
  • Metode on-policy: menyesuaikan strategi berdasarkan aksi yang diambil

Gambar yang menunjukkan bahwa SARSA merepresentasikan state saat ini, aksi yang diambil, reward yang diterima, state berikutnya yang diamati, dan aksi berikutnya.

Reinforcement Learning dengan Gymnasium di Python

Aturan pembaruan SARSA

Gambar yang menunjukkan rumus matematis aturan pembaruan SARSA.

  • $\alpha$: laju pembelajaran
  • $\gamma$: faktor diskonto
  • Keduanya antara 0 dan 1
Reinforcement Learning dengan Gymnasium di Python

Frozen Lake

Gambar yang menunjukkan lingkungan Frozen Lake

Reinforcement Learning dengan Gymnasium di Python

Inisialisasi

env = gym.make("FrozenLake", is_slippery=False)

num_states = env.observation_space.n num_actions = env.action_space.n
Q = np.zeros((num_states, num_actions))
alpha = 0.1 gamma = 1 num_episodes = 1000
Reinforcement Learning dengan Gymnasium di Python

Loop SARSA

for episode in range(num_episodes):

state, info = env.reset() action = env.action_space.sample()
terminated = False while not terminated: next_state, reward, terminated, truncated, info = env.step(action)
next_action = env.action_space.sample()
update_q_table(state, action, reward, next_state, next_action)
state, action = next_state, next_action
Reinforcement Learning dengan Gymnasium di Python

Pembaruan SARSA

def update_q_table(state, action, reward, next_state, next_action):

old_value = Q[state, action]
next_value = Q[next_state, next_action]
Q[state, action] = (1 - alpha) * old_value + alpha * (reward + gamma * next_value)

  Gambar yang menunjukkan rumus matematis aturan pembaruan SARSA.

Reinforcement Learning dengan Gymnasium di Python

Menurunkan kebijakan optimal

policy = get_policy()
print(policy)
{ 0: 1,  1: 2,  2: 1,  3: 0, 
  4: 1,  5: 0,  6: 1,  7: 0, 
  8: 2,  9: 1, 10: 1, 11: 0, 
 12: 0, 13: 2, 14: 2, 15: 0}

Gambar yang menunjukkan kebijakan optimal di lingkungan Frozen Lake dengan aksi berupa panah, dan terlihat agen menghindari lubang.

Reinforcement Learning dengan Gymnasium di Python

Ayo berlatih!

Reinforcement Learning dengan Gymnasium di Python

Preparing Video For Download...