Eylem-değer işlevleri

Python ile Gymnasium'da Reinforcement Learning

Fouad Trad

Machine Learning Engineer

Eylem-değer işlevleri (Q-değerleri)

  • Beklenen getiri:
    • Başlangıç durumu $s$
    • Eylem $a$ uygulanır
    • Politika izlenir
  • Durum içindeki eylemlerin tercih edilebilirliğini tahmin eder

Bir politika için Q(s,a) değerinin, eylemden sonra alınan anlık ödül ile yeni durumun iskonto edilmiş değerinin toplamı olarak hesaplandığını gösteren formül görseli.

Python ile Gymnasium'da Reinforcement Learning

Izgara dünya

İki dağ ve bir elmas içeren özel ortamı gösteren görsel.

  • Durum-değerleri

Tüm durumlar için daha önce hesaplanan durum değerlerini gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

Q-değerleri - durum 4

Ajana 4 durumunda olduğunu gösteren görsel.

  • Ajan 4 durumunda başlar

Tüm durumlar için daha önce hesaplanan durum değerlerini gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

Q-değerleri - durum 4

Ajanın 4 durumunda yapabileceği 4 eylemi ve ödüllerini gösteren görsel.

  • Ajan yukarı, aşağı, sol, sağ gidebilir

Tüm durumlar için daha önce hesaplanan durum değerlerini gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

Durum 4 - eylem aşağı

Ajana 4 durumundan aşağı inip 7 durumuna geçtiğini gösteren görsel.

  • Ödül: -2, durum-değeri: 5

Tüm durumlar için daha önce hesaplanan durum değerlerini gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

Durum 4 - eylem aşağı

Ajana 4 durumundan aşağı inip 7 durumuna geçtiğini ve karşılık gelen q-değerinin 3 olduğunu gösteren görsel.

  • $Q(4, \text{down}) = -2 + 1 \times 5 = 3$

Tüm durumlar için daha önce hesaplanan durum değerlerini gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

Durum 4 - eylem sol

Ajana 4 durumundan sola gidip 3 durumuna geçtiğini ve karşılık gelen q-değerinin 1 olduğunu gösteren görsel.

  • $Q(4, \text{left}) = -1 + 1 \times 2 = 1$

Tüm durumlar için daha önce hesaplanan durum değerlerini gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

Durum 4 - eylem yukarı

Ajana 4 durumundan yukarı çıkıp 1 durumuna geçtiğini ve karşılık gelen q-değerinin 7 olduğunu gösteren görsel.

  • $Q(4, \text{up}) = -1 + 1 \times 8 = 7$

Tüm durumlar için daha önce hesaplanan durum değerlerini gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

Durum 4 - eylem sağ

Ajana 4 durumundan sağa gidip 5 durumuna geçtiğini ve karşılık gelen q-değerinin 9 olduğunu gösteren görsel.

  • $Q(4, \text{right}) = -1 + 1 \times 10 = 9$

Tüm durumlar için daha önce hesaplanan durum değerlerini gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

Tüm Q-değerleri

Tüm durum-eylem çiftleri için hesaplanan q-değerlerini gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

Q-değerlerini hesaplama

def compute_q_value(state, action):

if state == terminal_state: return None
_, next_state, reward, _ = env.unwrapped.P[state][action][0] return reward + gamma * compute_state_value(next_state)

Bir politika için Q(s,a) değerinin, eylemden sonra alınan anlık ödül ile yeni durumun iskonto edilmiş değerinin toplamı olarak hesaplandığını gösteren formül görseli.

Python ile Gymnasium'da Reinforcement Learning

Q-değerlerini hesaplama

Q = {(state, action): compute_q_value(state, action)
     for state in range(num_states) 
     for action in range(num_actions)}

print(Q)
Python ile Gymnasium'da Reinforcement Learning

Q-değerlerini hesaplama

{(0, 0): 0, (0, 1): 1, (0, 2): 7, (0, 3): 0, 
 (1, 0): 0, (1, 1): 5, (1, 2): 8, (1, 3): 7, 
 (2, 0): 7, (2, 1): 9, (2, 2): 8, (2, 3): 8, 
 (3, 0): 1, (3, 1): 2, (3, 2): 5, (3, 3): 0, 
 (4, 0): 1, (4, 1): 3, (4, 2): 9, (4, 3): 7, 
 (5, 0): 5, (5, 1): 10, (5, 2): 9, (5, 3): 8, 
 (6, 0): 2, (6, 1): 2, (6, 2): 3, (6, 3): 1, 
 (7, 0): 2, (7, 1): 3, (7, 2): 10, (7, 3): 5, 
 (8, 0): None, (8, 1): None, (8, 2): None, (8, 3): None}

Tüm durum-eylem çiftleri için hesaplanan q-değerlerini gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

Politikayı iyileştirme

Tüm durum-eylem çiftleri için hesaplanan q-değerlerini gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

Politikayı iyileştirme

  • Her durum için en yüksek Q-değerine sahip eylemi seçmek

Her durum için maksimum q-değerinin daire içine alındığı, tüm durum-eylem çiftleri için q-değerlerini gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

Politikayı iyileştirme

Eski politikayı ve karşılık gelen Q-değerlerini gösteren görsel Eski politika

Maksimum q-değerine götüren eylem seçildiğinde oluşan yeni politikayı gösteren görsel.

Python ile Gymnasium'da Reinforcement Learning

Politikayı iyileştirme

improved_policy = {}


for state in range(num_states-1): max_action = max(range(num_actions), key=lambda action: Q[(state, action)])
improved_policy[state] = max_action
print(improved_policy)
{0: 2, 1: 2, 2: 1, 
 3: 2, 4: 2, 5: 1, 
 6: 2, 7: 2}
Python ile Gymnasium'da Reinforcement Learning

Ayo berlatih!

Python ile Gymnasium'da Reinforcement Learning

Preparing Video For Download...