States, actions और rewards
हर RL समस्या को इन्हीं कुछ शब्दों से समझाया जाता है। इन्हें सीखने के लिए एक छोटा सा कॉरिडोर (गलियारा) गेम बनाएँ और इसे discounted return से स्कोर करें।
60 सेकंड में
States, actions और rewards
हर RL समस्या को इन्हीं कुछ शब्दों से समझाया जाता है। इन्हें सीखने के लिए एक छोटा सा कॉरिडोर (गलियारा) गेम बनाएँ और इसे discounted return से स्कोर करें।
| शब्द | मतलब | साँप-सीढ़ी के खेल में |
|---|---|---|
| State | स्थिति के बारे में वह सब कुछ जो एजेंट को अभी जानने की ज़रूरत है | वह खाना (square) जिस पर आपकी गोटी है |
| Action | एक विकल्प जो एजेंट चुन सकता है | (यहाँ केवल एक ही है: पासा फेंकना। हमारा कॉरिडोर गेम असली विकल्प देता है।) |
| Reward | हर एक्शन के बाद मिलने वाली एक संख्या | सीढ़ी के लिए +, साँप के लिए - |
| Episode | शुरू से अंत तक का एक पूरा खेल | खाने 1 से खाने 100 तक |
| Terminal state | ऐसी स्थिति जहाँ episode खत्म हो जाता है | खाना 100 |
| Policy | एजेंट का नियम: हर state में कौन सा action लेना है | "हमेशा पासा फेंको" (ज्यादा विकल्प नहीं हैं!) |
| Return | अभी से लेकर अंत तक कुल मिला हुआ reward | आगे बची सभी सीढ़ियाँ घटाव आगे बचे सभी साँप |
Environment का एक ही काम: step
step नाम का एक फ़ंक्शन होता है। आप इसे मौजूदा state और एक action देते हैं। यह तीन चीजें वापस देता है: next state, reward, और यह कि क्या खेल done (खत्म) हो गया है। लोकप्रिय RL टूलकिट कुछ अतिरिक्त बारीकियों के साथ इसी विचार का इस्तेमाल करते हैं।- 1
state = start
एजेंट को खेल की शुरुआत में रखें। - 2
action = policy(state)
एजेंट चुनता है। - 3
next_state, reward, done = step(state, action)
दुनिया जवाब देती है। - 4
यदि done नहीं है, तो state = next_state करें और स्टेप 2 पर वापस जाएँ
रास्ते में rewards इकट्ठा करें। - 5
जब done हो जाए, तो episode खत्म हो जाता है
यह देखने के लिए कि खेल कैसा रहा, सभी rewards को जोड़ें।
भविष्य के rewards की कीमत थोड़ी कम क्यों होती है: discounting
gamma की घात k से गुणा किया जाता है, जहाँ gamma (discount factor) 0 और 1 के बीच की कोई संख्या होती है, जैसे कि 0.9।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)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}")
एक अच्छा state चुनना
- कोई ऐसी चीज़ छोड़ देता है जिससे आपका फैसला बदल सकता था
- ऐसे खेल के लिए दिन का समय शामिल करता है जहाँ समय का कोई महत्व नहीं है
- इतना ज़्यादा विस्तृत होता है कि कोई भी दो स्थितियाँ कभी एक जैसी नहीं दिखतीं
- वह सब रखता है जिस पर सबसे अच्छा action निर्भर करता है
- उन बारीकियों को छोड़ देता है जो सबसे अच्छे action को कभी नहीं बदलतीं
- एक जैसी स्थितियों को एक जैसा मानने देता है
और देखें और पढ़ें
लैब
सही rewards और अंत के साथ एक काम करने वाला कॉरिडोर गेम, साथ ही एक भरोसेमंद discounted-return फ़ंक्शन।
समस्या
आप 7 खानों वाले एक गलियारे में खिलाड़ी P हैं। खाना 0 पर बाईं ओर कीचड़ भरे गड्ढे में जाएँ और आप हार जाएँगे (reward -10, खेल खत्म)। खाना 6 पर दाईं ओर गरम समोसे के पास जाएँ और आप जीत जाएँगे (reward +10, खेल खत्म)। हर दूसरी चाल पर -1 खर्च होता है।
- Run दबाएँ। शुरुआती कोड का
stepखिलाड़ी को चलाता तो है लेकिन कभी कोई reward नहीं देता और न ही कभी खेल खत्म करता है। इस अजीब आउटपुट को देखें। stepको ठीक करें: गड्ढे में -10 औरdone=True, समोसे पर +10 औरdone=True, और कहीं भी अन्य जगह -1 के साथdone=Falseवापस करें।discounted_returnको ठीक करें ताकि यह वास्तव मेंgammaका इस्तेमाल करे।- फिर से चलाएँ। "Always right" को -1, -1, +10 rewards मिलने चाहिए। gamma = 0.9 के साथ खुद हिसाब लगाकर discounted return की जाँच करें।
- Check दबाएँ।
- अतिरिक्त: अपनी खुद की 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%)।