Zamansal fark öğrenmesi

Python ile Gymnasium'da Reinforcement Learning

Fouad Trad

Machine Learning Engineer

TD öğrenme vs. Monte Carlo

 

TD öğrenme
  • Model gerektirmez
  • Etkileşime dayalı Q-tablosu kestirimi
  • Bölüm içinde her adımda Q-tablosu güncellenir
  • Uzun/belirsiz bölümlü görevler için uygundur

 

Monte Carlo
  • Model gerektirmez
  • Etkileşime dayalı Q-tablosu kestirimi
  • En az bir bölüm bitince Q-tablosu güncellenir
  • Kısa epizodik görevler için uygundur
Python ile Gymnasium'da Reinforcement Learning

Hava tahmini olarak TD öğrenme

Aynı yerde farklı zamanlarda farklı hava koşullarını gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

SARSA

  • TD algoritması
  • On-policy yöntem: yapılan eylemlere göre stratejiyi ayarlar

SARSA'nın mevcut durum, alınan eylem, alınan ödül, gözlenen sonraki durum ve sonraki eylemden oluştuğunu gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

SARSA güncelleme kuralı

SARSA güncelleme kuralının matematiksel formülünü gösteren görsel.

  • $\alpha$: öğrenme oranı
  • $\gamma$: iskonto faktörü
  • İkisi de 0 ile 1 arasındadır
Python ile Gymnasium'da Reinforcement Learning

Frozen Lake

Donmuş göl ortamını gösteren görsel

Python ile Gymnasium'da Reinforcement Learning

Başlatma

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
Python ile Gymnasium'da Reinforcement Learning

SARSA döngüsü

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
Python ile Gymnasium'da Reinforcement Learning

SARSA güncellemeleri

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)

  SARSA güncelleme kuralının matematiksel formülünü gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

En iyi politikanın türetilmesi

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}

Dondurulmuş göl ortamında, oklarla gösterilen eylemlerle en iyi politikayı gösteren ve ajanın deliklerden kaçındığını gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

Hadi pratik yapalım!

Python ile Gymnasium'da Reinforcement Learning

Preparing Video For Download...