गलतियों से सीखकर आगे बढ़ना (ट्रायल और एरर)
एजेंट को सही जवाब कोई नहीं बताता। वह कुछ आजमाता है, उसे एक स्कोर मिलता है, और वह धीरे-धीरे अपने काम करने का तरीका बदलता है। इसी को रीइन्फ़ोर्समेंट लर्निंग (reinforcement learning) कहते हैं।
60 सेकंड में
गलतियों से सीखकर आगे बढ़ना (ट्रायल और एरर)
एजेंट को सही जवाब कोई नहीं बताता। वह कुछ आजमाता है, उसे एक स्कोर मिलता है, और वह धीरे-धीरे अपने काम करने का तरीका बदलता है। इसी को रीइन्फ़ोर्समेंट लर्निंग (reinforcement learning)…
वह लूप जिसका इस्तेमाल इस ट्रैक की हर चीज़ करती है
- 1
देखें
एजेंट मौजूदा स्थिति को देखता है, जिसे स्टेट (state) कहा जाता है। - 2
एक्शन लें
यह कोई एक्शन चुनता है, जैसे "बाईं तरफ चलो" या "यॉर्क बॉल फेंको"। - 3
फ़ीडबैक पाएं
एनवायरनमेंट एक नई स्टेट में चला जाता है और एक रिवॉर्ड देता है। - 4
सीखें
रिवॉर्ड के आधार पर, एजेंट भविष्य में चुने जाने वाले अपने विकल्पों में थोड़ा बदलाव करता है। - 5
दोहराएं
हज़ारों बार। अच्छी आदतें बढ़ती हैं, बुरी आदतें छूटती जाती हैं।
सीखने के तीन तरीके, आमने-सामने
| सीखने का तरीका | कंप्यूटर को क्या मिलता है | रोज़मर्रा का उदाहरण |
|---|---|---|
| उदाहरणों से सीखना (सुपरवाइज़्ड) | सही जवाब के साथ इनपुट | आंसर की (answer key) के साथ पुराने परीक्षा के पेपर |
| पैटर्न खोजना (अनसुपरवाइज़्ड) | बिना किसी जवाब के इनपुट | फ़ोटो के ढेर को एक जैसे दिखने वाले समूहों में छांटना |
| रीइन्फ़ोर्समेंट लर्निंग | एक्शन लेने के बाद सिर्फ़ एक स्कोर | एक ऐसा खेल जहाँ आपको अपने पॉइंट्स दिखते हैं, लेकिन कोई आपको सबसे अच्छी चाल नहीं बताता |
यह मुश्किल क्यों है?
- रिवॉर्ड सिर्फ़ एक नंबर होता है। यह बताता है कि आपने कितना अच्छा किया, यह नहीं कि आपको इसकी जगह क्या करना चाहिए था।
- रिवॉर्ड देर से मिल सकते हैं। क्रिकेट मैच में नतीजा आखिर में आता है। 120 गेंदों में से किस गेंद ने मैच जिताया?
- एजेंट के एक्शन तय करते हैं कि वह आगे क्या देखेगा। शुरुआत में चली गई एक खराब चाल खेल के किसी बदतर मोड़ पर ले जा सकती है।
- सीखने के लिए इसे चीज़ें आज़मानी पड़ती हैं, और कुछ कोशिशें खराब भी होंगी। इसे एक्सप्लोरेशन (exploration) कहते हैं, और इस पर एक अलग पाठ है।
दस लाइनों में ट्रायल और एरर
import random
rng = random.Random(42) # seeded, so you get the same result every run
TARGET = 7.0
def reward(strength):
landed = strength * 1.4 # the game's physics, hidden from the player
return -abs(landed - TARGET) # 0 is perfect, more negative is worse
strength = 1.0
best = reward(strength)
for attempt in range(1, 41):
trial = strength + rng.uniform(-1.0, 1.0) # try a small change
r = reward(trial)
if r > best: # keep it only if it helped
strength, best = trial, r
if attempt % 5 == 0:
print(f"attempt {attempt:2}: strength {strength:.2f}, miss {-best:.2f} m")
आपने RL के बारे में कहाँ सुना होगा
TARGET को 10 और स्टेप साइज़ 1.0 को 0.1 में बदलें (दोनों जगहों पर)। क्या खिलाड़ी 40 कोशिशों में अभी भी निशाने के करीब पहुंच पाता है? बहुत छोटे स्टेप साइज़ का क्या नुकसान होता है?और देखें और पढ़ें
लैब
एक ताला तोड़ने वाला (lock-cracking) एजेंट जो केवल स्कोर का इस्तेमाल करके, कुछ सौ कोशिशों में 6-डायल वाला नंबर लॉक खोल देता है।
समस्या
एक नंबर लॉक में 6 डायल हैं, जिनमें से हर एक पर 0 से 9 तक के अंक दिखते हैं। इसका मतलब है कि 10 लाख संभावित कोड हैं। ताला आपको यह नहीं बताएगा कि कौन से डायल सही हैं। यह केवल एक स्कोर देता है: कितने डायल सही हैं। वह स्कोर ही आपका एकमात्र रिवॉर्ड है।
- Run दबाएं। शुरुआती कोड 600 बार पूरी तरह से तुक्के लगाता है। देखें कि यह किस सबसे अच्छे स्कोर तक पहुँचता है।
crackको फिर से लिखें ताकि यह ट्रायल और एरर से सीखे: एक अंदाज़े से शुरुआत करें, एक बार में एक डायल बदलें, और बदलाव को तभी बनाए रखें जब स्कोर बढ़े।scoreको बुलाने के लिए ज़्यादा से ज़्यादाtriesका इस्तेमाल करें। जब सभी डायल सही हो जाएं तो पहले ही रुक जाएं।- Check दबाएं। यह आपके
crackको तीन ऐसे नए तालों पर टेस्ट करता है जो उसने पहले कभी नहीं देखे। - दो वाक्य लिखें: हर बार नए सिरे से अंदाज़ा लगाने के मुकाबले अच्छे बदलावों को बनाए रखना इतना बेहतर क्यों है?
प्रैक्टिस लैब
कोड में बदलाव करें और इसे रन करें। Python आपके ब्राउज़र में चलता है — हमारे सर्वर पर कुछ नहीं भेजा जाता।
कोई आउटपुट नहीं। वैल्यूज़ देखने के लिए print(...) जोड़ें।
आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1क्या आप बिना किसी तुक्के के, हर बार लगभग 55 कोशिशों में 6-डायल वाला ताला खोल सकते हैं?दिखाएं
हाँ। सभी ज़ीरो से शुरुआत करें और स्कोर नोट करें। पहले डायल के लिए, बाकियों को वैसे ही रखते हुए 1 से 9 तक आज़माएं: जैसे ही वह डायल सही होगा, स्कोर ठीक एक बढ़ जाएगा, और अगर आपने किसी ऐसे डायल को बिगाड़ दिया जो पहले से 0 पर सही था, तो स्कोर एक घट जाएगा। इस तरह आप ज़्यादा से ज़्यादा 10 कोशिशों में हर डायल का पता लगा लेते हैं, कुल मिलाकर लगभग 60 में। यह स्कोर के स्ट्रक्चर का फायदा उठाता है। RL एजेंट आमतौर पर ऐसा नहीं कर पाते क्योंकि असली दुनिया इतनी सीधी-सादी नहीं होती, इसीलिए उन्हें ज़्यादा कोशिशों की ज़रूरत होती है।
Q2हिल क्लाइंबिंग किसी "छोटी पहाड़ी" पर अटक सकती है। क्या इस ताले के साथ ऐसा होगा?दिखाएं
इस ताले के साथ नहीं, क्योंकि एक डायल को बेहतर करने से दूसरा डायल कभी खराब नहीं होता, इसलिए जब तक ताला खुल नहीं जाता तब तक हमेशा ऊपर चढ़ने का एक कदम मौजूद रहता है। कई असली समस्याओं में, बदलाव एक-दूसरे पर असर डालते हैं: कोई चाल अभी खराब लग सकती है लेकिन आगे जाकर बहुत बेहतर जगह ले जा सकती है। ऐसी स्थिति में सिर्फ़ हिल क्लाइंबिंग पर चलना अटक जाता है, और आपको एक्सप्लोरेशन की ज़रूरत होती है, जिसे अगले पाठों में जोड़ा गया है।
अक्सर पूछे जाने वाले सवाल
क्या रीइन्फ़ोर्समेंट लर्निंग स्कूल में मिलने वाले इनाम जैसी ही है?
यह शब्द मनोविज्ञान (psychology) से लिया गया है, जहाँ इनाम व्यवहार को ढालते हैं। कंप्यूटिंग में, रिवॉर्ड सिर्फ़ एक नंबर होता है जिसे प्रोग्राम बड़ा करने की कोशिश करता है। प्रोग्राम कोई खुशी महसूस नहीं करता। वह बस गणित के नियमों पर चलता है।
एजेंट को सीधा सही जवाब ही क्यों नहीं बता देते?
अक्सर यह किसी को पता ही नहीं होता। खेल की किसी नई स्थिति में सबसे अच्छी चाल क्या है, या किसी रोबोट के लिए बैलेंस बनाने का सबसे बढ़िया तरीका क्या है? हम फिर भी नतीजे को स्कोर दे सकते हैं, इसलिए RL एजेंट को ऐसा अच्छा व्यवहार खोजने देता है जिसे हम खुद कोड में नहीं लिख सकते थे।
क्या RL को बहुत सारी कोशिशों की ज़रूरत होती है?
आम तौर पर हाँ, किसी इंसान को जितनी ज़रूरत होगी उससे कहीं ज़्यादा। इसीलिए कई RL सिस्टम गेम और सिमुलेटर में प्रैक्टिस करते हैं, जहाँ लाखों कोशिशें करना सस्ता होता है और किसी को चोट नहीं लगती।
क्या मुझे इस ट्रैक के लिए किसी बड़े कंप्यूटर की ज़रूरत है?
नहीं। हर लैब छोटे-छोटे गेम्स का इस्तेमाल करती है जो आपके ब्राउज़र में कुछ ही सेकंड में चल जाते हैं। इसके पीछे के विचार वही हैं जो बड़े पैमाने पर इस्तेमाल होते हैं।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।