Beklenen SARSA

Python ile Gymnasium'da Reinforcement Learning

Fouad Trad

Machine Learning Engineer

Beklenen SARSA

  • TD yöntemi
  • Modelden bağımsız teknik
  • Q-tablosunu SARSA ve Q-öğrenmeden farklı günceller

Beklenen SARSA’da yer alan adımları gösteren diyagram: bir Q-tablosu başlatma, yapılacak eylemi seçme, ortamdan ödül alma ve tabloyu güncelleme. Ajan, belirli sayıda bölümden sonra yakınsamaya ulaşana kadar bu döngüyü sürdürür.

Python ile Gymnasium'da Reinforcement Learning

Beklenen SARSA güncellemesi

SARSA

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

Q-öğrenme

Q-öğrenme güncelleme kuralının matematiksel formülünü gösteren görsel.

Beklenen SARSA

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

Python ile Gymnasium'da Reinforcement Learning

Sonraki durumun beklenen değeri

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

  • Tüm eylemleri dikkate alır

Sonraki durum için beklenen Q-değerinin matematiksel formülünü gösteren görsel.

  • Rastgele eylemler → eşit olasılıklar

Eylemler eşit olasılıkla rastgele seçildiğinde sonraki durum için beklenen Q-değerinin matematiksel formülünü gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

Frozen Lake ile uygulama

env = gym.make('FrozenLake-v1', 
               is_slippery=False)

num_states = env.observation_space.n
num_actions = env.action_space.n
Q = np.zeros((num_states, num_actions))

gamma = 0.99 alpha = 0.1 num_episodes = 1000

Frozen Lake ortamını gösteren görsel

Python ile Gymnasium'da Reinforcement Learning

Beklenen SARSA güncelleme kuralı

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

expected_q = np.mean(Q[next_state])
Q[state, action] = (1-alpha) * Q[state, action] + alpha * (reward + gamma * expected_q)

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

Python ile Gymnasium'da Reinforcement Learning

Eğitim

for i in range(num_episodes):
    state, info = env.reset()    
    terminated = False  

while not terminated: action = env.action_space.sample()
next_state, reward, terminated, truncated, info = env.step(action)
update_q_table(state, action, next_state, reward) state = next_state
Python ile Gymnasium'da Reinforcement Learning

Ajanın politikası

policy = {state: np.argmax(Q[state]) 
          for state in range(num_states)}
print(policy)
{ 0: 1,  1: 2,  2: 1,  3: 0, 
  4: 1,  5: 0,  6: 1,  7: 0, 
  8: 2,  9: 2, 10: 1, 11: 0, 
 12: 0, 13: 2, 14: 2, 15: 0}

Ajanın öğrendiği politikayı, her durumda yapılacak eylemi gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

Hadi pratik yapalım!

Python ile Gymnasium'da Reinforcement Learning

Preparing Video For Download...