Reinforcement learning प्लेग्राउंडमध्यमपाठ 2897 मिनट का पाठ

States, actions और rewards

हर RL समस्या को इन्हीं कुछ शब्दों से समझाया जाता है। इन्हें सीखने के लिए एक छोटा सा कॉरिडोर (गलियारा) गेम बनाएँ और इसे discounted return से स्कोर करें।

पाठ वीडियो में

60 सेकंड में

States, actions और rewards

हर RL समस्या को इन्हीं कुछ शब्दों से समझाया जाता है। इन्हें सीखने के लिए एक छोटा सा कॉरिडोर (गलियारा) गेम बनाएँ और इसे discounted return से स्कोर करें।

1/5
आसान शब्दों में
साँप-सीढ़ी जैसे बोर्ड गेम के बारे में सोचें। आपकी गोटी (token) जहाँ खड़ी है, वह state है। पासा फेंकना और चलना action है। सीढ़ी चढ़ना एक अच्छा reward है, साँप से नीचे फिसलना एक बुरा reward है। खेल तब खत्म होता है जब कोई 100 पर पहुँच जाता है। RL हर खेल को इसी तरह समझाता है।
किसी एजेंट को कुछ भी सिखाने के लिए, हम पहले खेल को एक तय ढाँचे में ढालते हैं। यही ढाँचा किसी बोर्ड गेम, रोबोट या डिलीवरी ऐप के लिए भी काम करता है। इन शब्दों को अच्छी तरह सीखना ज़रूरी है, क्योंकि आगे का हर पाठ इन्हीं का इस्तेमाल करता है।
शब्दमतलबसाँप-सीढ़ी के खेल में
Stateस्थिति के बारे में वह सब कुछ जो एजेंट को अभी जानने की ज़रूरत हैवह खाना (square) जिस पर आपकी गोटी है
Actionएक विकल्प जो एजेंट चुन सकता है(यहाँ केवल एक ही है: पासा फेंकना। हमारा कॉरिडोर गेम असली विकल्प देता है।)
Rewardहर एक्शन के बाद मिलने वाली एक संख्यासीढ़ी के लिए +, साँप के लिए -
Episodeशुरू से अंत तक का एक पूरा खेलखाने 1 से खाने 100 तक
Terminal stateऐसी स्थिति जहाँ episode खत्म हो जाता हैखाना 100
Policyएजेंट का नियम: हर state में कौन सा action लेना है"हमेशा पासा फेंको" (ज्यादा विकल्प नहीं हैं!)
Returnअभी से लेकर अंत तक कुल मिला हुआ rewardआगे बची सभी सीढ़ियाँ घटाव आगे बचे सभी साँप

Environment का एक ही काम: step

कोड में, आमतौर पर environment के पास step नाम का एक फ़ंक्शन होता है। आप इसे मौजूदा state और एक action देते हैं। यह तीन चीजें वापस देता है: next state, reward, और यह कि क्या खेल done (खत्म) हो गया है। लोकप्रिय RL टूलकिट कुछ अतिरिक्त बारीकियों के साथ इसी विचार का इस्तेमाल करते हैं।
  1. 1

    state = start

    एजेंट को खेल की शुरुआत में रखें।
  2. 2

    action = policy(state)

    एजेंट चुनता है।
  3. 3

    next_state, reward, done = step(state, action)

    दुनिया जवाब देती है।
  4. 4

    यदि done नहीं है, तो state = next_state करें और स्टेप 2 पर वापस जाएँ

    रास्ते में rewards इकट्ठा करें।
  5. 5

    जब done हो जाए, तो episode खत्म हो जाता है

    यह देखने के लिए कि खेल कैसा रहा, सभी rewards को जोड़ें।

भविष्य के rewards की कीमत थोड़ी कम क्यों होती है: discounting

आप क्या पसंद करेंगे: आज ₹100 या पाँच साल बाद ₹100? ज़्यादातर लोग आज चुनेंगे। RL एजेंट भी इसी तरह बनाए जाते हैं। भविष्य में k कदम बाद मिलने वाले reward को gamma की घात k से गुणा किया जाता है, जहाँ gamma (discount factor) 0 और 1 के बीच की कोई संख्या होती है, जैसे कि 0.9।
The discounted returntext
return = r0 + gamma * r1 + gamma^2 * r2 + gamma^3 * r3 + ...

gamma = 0     only the very next reward matters (very short-sighted)
gamma = 0.9   rewards far away still count, but less
gamma = 1     every reward counts the same (only safe if episodes always end)
Discounting दो काम की चीजें करता है। यह एजेंट को लक्ष्य तक जल्दी पहुँचने के लिए प्रेरित करता है, और यह बहुत लंबे खेलों में भी कुल जोड़ को सीमित (finite) रखता है।
Python: same rewards, different gammapython
def discounted(rewards, gamma):
    total = 0.0
    for k, r in enumerate(rewards):
        total += (gamma ** k) * r
    return total

short_path = [-1, -1, 10]              # two steps, then the prize
long_path = [-1, -1, -1, -1, -1, 10]   # five steps, then the same prize

for gamma in (0.5, 0.9, 1.0):
    print(f"gamma={gamma}: short={discounted(short_path, gamma):6.2f}  long={discounted(long_path, gamma):6.2f}")
इनमें से किसी भी मान के साथ छोटा रास्ता ज़्यादा स्कोर करता है, क्योंकि यह कम कदम बर्बाद करता है और इनाम पहले पा लेता है। प्रति कदम -1 एक आम तरकीब है: यह एजेंट से कहती है "जल्दी करो"।

एक अच्छा state चुनना

State में सही फैसला लेने के लिए ज़रूरी हर चीज़ होनी चाहिए, और उससे ज़्यादा कुछ नहीं। अगर लूडो एजेंट के state में यह छूट जाए कि बाकी खिलाड़ियों की गोटियाँ कहाँ हैं, तो वह पिटने से बचना नहीं सीख सकता। लेकिन अगर state में बेकार की बातें शामिल हैं, जैसे मेज़ का रंग, तो सीखने के लिए बहुत सारे states हो जाते हैं और सीखने की गति धीमी हो जाती है।
एक कमज़ोर state
  • कोई ऐसी चीज़ छोड़ देता है जिससे आपका फैसला बदल सकता था
  • ऐसे खेल के लिए दिन का समय शामिल करता है जहाँ समय का कोई महत्व नहीं है
  • इतना ज़्यादा विस्तृत होता है कि कोई भी दो स्थितियाँ कभी एक जैसी नहीं दिखतीं
एक अच्छा state
  • वह सब रखता है जिस पर सबसे अच्छा action निर्भर करता है
  • उन बारीकियों को छोड़ देता है जो सबसे अच्छे action को कभी नहीं बदलतीं
  • एक जैसी स्थितियों को एक जैसा मानने देता है
नोट
जब state में ज़रूरी हर चीज़ मौजूद होती है, और भविष्य केवल मौजूदा state और action पर निर्भर करता है, तो इस समस्या को Markov decision process (MDP) कहा जाता है। आपको अभी इसके गणित की ज़रूरत नहीं है। यह केवल उस ढाँचे का नाम है जो आप यहाँ सीख रहे हैं।
इसे आज़माएँ। कैरम के खेल को states, actions और rewards के रूप में समझाएँ। आप state में क्या रखेंगे? ऐसा कौन सा एक reward होगा जो एक बुरी आदत सिखा देगा?

और देखें और पढ़ें

लैब

सही rewards और अंत के साथ एक काम करने वाला कॉरिडोर गेम, साथ ही एक भरोसेमंद discounted-return फ़ंक्शन।

~20 min

समस्या

आप 7 खानों वाले एक गलियारे में खिलाड़ी P हैं। खाना 0 पर बाईं ओर कीचड़ भरे गड्ढे में जाएँ और आप हार जाएँगे (reward -10, खेल खत्म)। खाना 6 पर दाईं ओर गरम समोसे के पास जाएँ और आप जीत जाएँगे (reward +10, खेल खत्म)। हर दूसरी चाल पर -1 खर्च होता है।

  1. Run दबाएँ। शुरुआती कोड का step खिलाड़ी को चलाता तो है लेकिन कभी कोई reward नहीं देता और न ही कभी खेल खत्म करता है। इस अजीब आउटपुट को देखें।
  2. step को ठीक करें: गड्ढे में -10 और done=True, समोसे पर +10 और done=True, और कहीं भी अन्य जगह -1 के साथ done=False वापस करें।
  3. discounted_return को ठीक करें ताकि यह वास्तव में gamma का इस्तेमाल करे।
  4. फिर से चलाएँ। "Always right" को -1, -1, +10 rewards मिलने चाहिए। gamma = 0.9 के साथ खुद हिसाब लगाकर discounted return की जाँच करें।
  5. Check दबाएँ।
  6. अतिरिक्त: अपनी खुद की policy लिखें जो खाना 1 से बाएँ जाए और बाकी सब जगह दाएँ जाए। क्या यह कभी हमेशा दाएँ जाने से बेहतर हो सकती है? क्यों नहीं?

प्रैक्टिस लैब

कोड में बदलाव करें और इसे रन करें। Python आपके ब्राउज़र में चलता है — हमारे सर्वर पर कुछ नहीं भेजा जाता।

आउटपुट

कोई आउटपुट नहीं। वैल्यूज़ देखने के लिए print(...) जोड़ें।

आपका काम तब पूरा होगा जब

कठिन सवाल

उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।

Q1मान लें कि गड्ढा -10 के बजाय केवल -2 देता है। खाना 1 से, gamma = 0.9 के साथ क्या बेहतर है: गड्ढे में कदम रखना, या समोसे तक चलकर जाना?दिखाएं

गड्ढे में जाना: return -2। खाना 1 से दाईं ओर चलने में 5 चालें लगती हैं: -1 पर चार चालें और फिर +10, यानी -1 - 0.9 - 0.81 - 0.729 + 0.6561 x 10, जो लगभग 3.12 है। दाईं ओर चलना अब भी बेहतर है। लेकिन अगर कदम की लागत -3 होती, तो चलना -2 से भी बुरा होता, और एक चतुर एजेंट जानबूझकर गड्ढे में कूद जाता। Reward की संख्याएँ ही व्यवहार तय करती हैं।

Q2आपका दोस्त state में एक "बचा हुआ समय" का काउंटर जोड़ देता है, भले ही खेल में कोई समय सीमा न हो। इससे क्या बदलता है?दिखाएं

कुछ भी काम का नहीं: सबसे अच्छा action इस पर निर्भर नहीं करता, लेकिन अब हर खाना काउंटर के कई अलग-अलग मानों के साथ दिखाई देता है। टेबल पर आधारित एक सीखने वाले सिस्टम (learner) को हर संयोजन को अलग से सीखना होगा, जिसमें अधिक प्रयासों की ज़रूरत होगी। यदि खेल में समय सीमा होती, तो बचा हुआ समय state का हिस्सा होता, क्योंकि समय कम होने पर सबसे अच्छा action बदल सकता था।

जारी रखने के लिए कृपया साइन इन करें।

अक्सर पूछे जाने वाले सवाल

क्या कोई reward ऋणात्मक (negative) हो सकता है?

हाँ। Negative rewards सज़ा (penalties) की तरह काम करते हैं: कीचड़ में गिरना, टकरा जाना, या बस एक कदम खर्च करना। एजेंट कुल जोड़ को ज़्यादा से ज़्यादा करने की कोशिश करता है, इसलिए वह इनसे बचना सीखता है।

Rewards कौन तय करता है?

वह इंसान जो environment बनाता है। यह एक बड़ी ज़िम्मेदारी है: एजेंट ठीक वही पाने के पीछे भागेगा जिसके लिए आप reward देंगे, न कि वह जो आप चाहते थे। पाठ 6 पूरी तरह इसी के बारे में है।

क्या हो अगर खेल कभी खत्म ही न हो?

कुछ काम हमेशा चलते रहते हैं, जैसे किसी कमरे का तापमान स्थिर रखना। 1 से कम discount factor के साथ, return का जोड़ फिर भी एक सीमित संख्या ही बनता है, इसलिए सीखना तब भी काम करता है।

क्या policy और agent एक ही चीज़ हैं?

Policy एजेंट के निर्णय लेने का नियम है। एजेंट के पास सीखने का एक तरीका भी होता है, जो समय के साथ policy को बदलता रहता है। ट्रेनिंग के अंत में, policy ही वह चीज़ है जिसे आप रखते हैं और इस्तेमाल करते हैं।

पाठ का टेस्ट

5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।

टेस्ट देने और अपनी प्रोग्रेस सेव करने के लिए साइन इन करें