पॉलिसी इटरेशन और वैल्यू इटरेशन

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

Fouad Trad

Machine Learning Engineer

पॉलिसी इटरेशन

  • सर्वोत्तम पॉलिसी खोजने की इटरेटिव प्रक्रिया

पहला चरण दिखाने वाली इमेज: पॉलिसी को इनिशियलाइज़ करना.

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

पॉलिसी इटरेशन

  • सर्वोत्तम पॉलिसी खोजने की इटरेटिव प्रक्रिया

दो चरण दिखाने वाली इमेज: पॉलिसी को इनिशियलाइज़ करना और इवैल्युएट करना.

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

पॉलिसी इटरेशन

  • सर्वोत्तम पॉलिसी खोजने की इटरेटिव प्रक्रिया

तीन चरण दिखाने वाली इमेज: पॉलिसी को इनिशियलाइज़ करना, इवैल्युएट करना, और इम्प्रूव करना.

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

पॉलिसी इटरेशन

  • सर्वोत्तम पॉलिसी खोजने की इटरेटिव प्रक्रिया

इमेज दिखाती है कि पॉलिसी का इवैल्युएशन और इम्प्रूवमेंट इटरेटिव है और पॉलिसी बदलना बंद होने तक चलता है.

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

पॉलिसी इटरेशन

  • सर्वोत्तम पॉलिसी खोजने की इटरेटिव प्रक्रिया

इमेज दिखाती है: पॉलिसी इनिशियलाइज़ करके शुरू करें, फिर इवैल्युएट और इम्प्रूव को बारी-बारी दोहराएँ, और अंत में ऑप्टिमल पॉलिसी पाएँ.

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

ग्रिड वर्ल्ड

policy = {
    0:1, 1:2, 2:1, 
    3:1, 4:3, 5:1,
    6:2, 7:3
}

हर स्टेट में मूव को एरो से दिखाती पॉलिसी की इमेज.

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

पॉलिसी इवैल्युएशन

def policy_evaluation(policy):

V = {state: compute_state_value(state, policy) for state in range(num_states)}
return V
Python में Gymnasium के साथ Reinforcement Learning

पॉलिसी इम्प्रूवमेंट

def policy_improvement(policy):

improved_policy = {s: 0 for s in range(num_states-1)}
Q = {(state, action): compute_q_value(state, action, policy) for state in range(num_states) for action in range(num_actions)}
for state in range(num_states-1): max_action = max(range(num_actions), key=lambda action: Q[(state, action)]) improved_policy[state] = max_action
return improved_policy
Python में Gymnasium के साथ Reinforcement Learning

पॉलिसी इटरेशन

def policy_iteration():

policy = {0:1, 1:2, 2:1, 3:1, 4:3, 5:1, 6:2, 7:3}
while True: V = policy_evaluation(policy) improved_policy = policy_improvement(policy)
if improved_policy == policy: break policy = improved_policy
return policy, V
Python में Gymnasium के साथ Reinforcement Learning

ऑप्टिमल पॉलिसी

policy, V = policy_iteration()
print(policy, V)
{0: 2, 1: 2, 2: 1, 
 3: 1, 4: 2, 5: 1, 
 6: 2, 7: 2} 

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

optimal.png

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

वैल्यू इटरेशन

  • एक ही स्टेप में पॉलिसी इवैल्युएशन और इम्प्रूवमेंट को जोड़ता है
    • ऑप्टिमल स्टेट-वैल्यू फंक्शन निकालता है
    • उससे पॉलिसी डिराइव करता है

पहला चरण दिखाने वाली इमेज: स्टेट-वैल्यू V को शून्य से इनिशियलाइज़ करना.

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

वैल्यू इटरेशन

  • एक ही स्टेप में पॉलिसी इवैल्युएशन और इम्प्रूवमेंट जोड़ता है.
    • ऑप्टिमल स्टेट-वैल्यू फंक्शन निकालता है
    • उससे पॉलिसी डिराइव करता है

अतिरिक्त चरण दिखाने वाली इमेज: V टेबल से Q-वैल्यूज़ निकालना.

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

वैल्यू इटरेशन

  • एक ही स्टेप में पॉलिसी इवैल्युएशन और इम्प्रूवमेंट जोड़ता है.
    • ऑप्टिमल स्टेट-वैल्यू फंक्शन निकालता है
    • उससे पॉलिसी डिराइव करता है

अतिरिक्त चरण दिखाने वाली इमेज: हर स्टेट में सबसे अच्छा एक्शन चुनकर V अपडेट करना.

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

वैल्यू इटरेशन

  • एक ही स्टेप में पॉलिसी इवैल्युएशन और इम्प्रूवमेंट जोड़ता है.
    • ऑप्टिमल स्टेट-वैल्यू फंक्शन निकालता है
    • उससे पॉलिसी डिराइव करता है

इमेज दिखाती है: V से Q-वैल्यू निकालना और V अपडेट करना तब तक दोहराते हैं जब तक V बदलना बंद न हो जाए.

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

वैल्यू इटरेशन

  • एक ही स्टेप में पॉलिसी इवैल्युएशन और इम्प्रूवमेंट जोड़ता है.
    • ऑप्टिमल स्टेट-वैल्यू फंक्शन निकालता है
    • उससे पॉलिसी डिराइव करता है

इमेज दिखाती है: इटरेटिव प्रक्रिया पूरी होने पर हमें ऑप्टिमल पॉलिसी और V मिलते हैं.

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

वैल्यू-इटरेशन का इम्प्लीमेंटेशन

V = {state: 0 for state in range(num_states)}
policy = {state:0 for state in range(num_states-1)}
threshold = 0.001

while True: new_V = {state: 0 for state in range(num_states)}
for state in range(num_states-1): max_action, max_q_value = get_max_action_and_value(state, V)
new_V[state] = max_q_value policy[state] = max_action
if all(abs(new_V[state] - V[state]) < thresh for state in V): break V = new_V
Python में Gymnasium के साथ Reinforcement Learning

ऑप्टिमल एक्शन और वैल्यू कैसे पाएँ

def get_max_action_and_value(state, V):
    Q_values = [compute_q_value(state, action, V) for action in range(num_actions)]

max_action = max(range(num_actions), key=lambda a: Q_values[a])
max_q_value = Q_values[max_action]
return max_action, max_q_value
Python में Gymnasium के साथ Reinforcement Learning

Q-वैल्यूज़ की गणना

def compute_q_value(state, action, V):
    if state == terminal_state:
        return None
    _, next_state, reward, _ = env.P[state][action][0]
    return reward + gamma * V[next_state]
Python में Gymnasium के साथ Reinforcement Learning

ऑप्टिमल पॉलिसी

print(policy, V)
{0: 2, 1: 2, 2: 1, 
 3: 1, 4: 2, 5: 1, 
 6: 2, 7: 2} 

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

ऑप्टिमल पॉलिसी के स्टेट-वैल्यू दिखाने वाली इमेज.

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

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

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

Preparing Video For Download...