एक्शन-वैल्यू फंक्शन

Python में Gymnasium के साथ Reinforcement Learning

Fouad Trad

Machine Learning Engineer

एक्शन-वैल्यू फंक्शन (Q-values)

  • अपेक्षित रिटर्न:
    • स्टेट $s$ से शुरू
    • एक्शन $a$ लें
    • पॉलिसी का पालन करें
  • स्टेट्स में एक्शनों की वांछनीयता का अनुमान

स्टेट और एक्शन के लिए q_value निकालने का फॉर्मूला दिखाने वाली इमेज, जहाँ Q(s,a) एक्शन के तुरंत रिवॉर्ड और चुनी गई पॉलिसी के लिए नई स्टेट के डिस्काउंटेड वैल्यू का योग है.

Python में Gymnasium के साथ Reinforcement Learning

ग्रिड वर्ल्ड

2 पहाड़ों और एक डायमंड वाले कस्टम एनवायरनमेंट की इमेज.

  • स्टेट-वैल्यूज़

सभी स्टेट्स के लिए पहले निकाले गए स्टेट-वैल्यूज़ दिखाने वाली इमेज.

Python में Gymnasium के साथ Reinforcement Learning

Q-values - स्टेट 4

स्टेट 4 में एजेंट दिखाने वाली इमेज.

  • एजेंट स्टेट 4 में जन्मा

सभी स्टेट्स के लिए पहले निकाले गए स्टेट-वैल्यूज़ दिखाने वाली इमेज.

Python में Gymnasium के साथ Reinforcement Learning

Q-values - स्टेट 4

स्टेट 4 में एजेंट के 4 एक्शनों और उनके रिवॉर्ड्स की इमेज.

  • एजेंट ऊपर, नीचे, बाएँ, दाएँ जा सकता है

सभी स्टेट्स के लिए पहले निकाले गए स्टेट-वैल्यूज़ दिखाने वाली इमेज.

Python में Gymnasium के साथ Reinforcement Learning

स्टेट 4 - एक्शन नीचे

स्टेट 4 से नीचे जाकर स्टेट 7 में पहुँचे एजेंट की इमेज.

  • रिवॉर्ड: -2, स्टेट-वैल्यू: 5

सभी स्टेट्स के लिए पहले निकाले गए स्टेट-वैल्यूज़ दिखाने वाली इमेज.

Python में Gymnasium के साथ Reinforcement Learning

स्टेट 4 - एक्शन नीचे

स्टेट 4 से नीचे स्टेट 7 जाने और संबंधित q-value 3 दिखाने वाली इमेज.

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

सभी स्टेट्स के लिए पहले निकाले गए स्टेट-वैल्यूज़ दिखाने वाली इमेज.

Python में Gymnasium के साथ Reinforcement Learning

स्टेट 4 - एक्शन बाएँ

स्टेट 4 से बाएँ स्टेट 3 जाने और संबंधित q-value 1 दिखाने वाली इमेज.

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

सभी स्टेट्स के लिए पहले निकाले गए स्टेट-वैल्यूज़ दिखाने वाली इमेज.

Python में Gymnasium के साथ Reinforcement Learning

स्टेट 4 - एक्शन ऊपर

स्टेट 4 से ऊपर स्टेट 1 जाने और संबंधित q-value 7 दिखाने वाली इमेज.

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

सभी स्टेट्स के लिए पहले निकाले गए स्टेट-वैल्यूज़ दिखाने वाली इमेज.

Python में Gymnasium के साथ Reinforcement Learning

स्टेट 4 - एक्शन दाएँ

स्टेट 4 से दाएँ स्टेट 5 जाने और संबंधित q-value 9 दिखाने वाली इमेज.

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

सभी स्टेट्स के लिए पहले निकाले गए स्टेट-वैल्यूज़ दिखाने वाली इमेज.

Python में Gymnasium के साथ Reinforcement Learning

सभी Q-values

सभी स्टेट-एक्शन पेयर्स के लिए निकाले गए q-values दिखाने वाली इमेज.

Python में Gymnasium के साथ Reinforcement Learning

Q-values की गणना

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)

स्टेट और एक्शन के लिए q_value निकालने का फॉर्मूला दिखाने वाली इमेज, जहाँ Q(s,a) एक्शन के तुरंत रिवॉर्ड और चुनी गई पॉलिसी के लिए नई स्टेट के डिस्काउंटेड वैल्यू का योग है.

Python में Gymnasium के साथ Reinforcement Learning

Q-values की गणना

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

print(Q)
Python में Gymnasium के साथ Reinforcement Learning

Q-values की गणना

{(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}

सभी स्टेट-एक्शन पेयर्स के लिए निकाले गए q-values दिखाने वाली इमेज.

Python में Gymnasium के साथ Reinforcement Learning

पॉलिसी में सुधार

सभी स्टेट-एक्शन पेयर्स के लिए निकाले गए q-values दिखाने वाली इमेज.

Python में Gymnasium के साथ Reinforcement Learning

पॉलिसी में सुधार

  • हर स्टेट के लिए सबसे बड़ा Q-value वाला एक्शन चुनना

सभी स्टेट-एक्शन पेयर्स के q-values, जहाँ हर स्टेट का अधिकतम q-value घेरा गया है, दिखाने वाली इमेज.

Python में Gymnasium के साथ Reinforcement Learning

पॉलिसी में सुधार

पुरानी पॉलिसी और उसके संबंधित Q-values दिखाने वाली इमेज Old policy

अधिकतम q-value वाले एक्शन लेने पर नई पॉलिसी दिखाने वाली इमेज.

Python में Gymnasium के साथ Reinforcement Learning

पॉलिसी में सुधार

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 में Gymnasium के साथ Reinforcement Learning

अभ्यास करते हैं!

Python में Gymnasium के साथ Reinforcement Learning

Preparing Video For Download...