डेमॉन्स्ट्रेशन से सीखना
रोबोट को सिखाने का सबसे आम तरीका है उसे करके दिखाना कि क्या करना है। जानिए कि डेमॉन्स्ट्रेशन कैसे इकट्ठा किए जाते हैं, behaviour cloning क्या है, और नक़ल करने में गड़बड़ी क्यों हो जाती है।
60 सेकंड में
डेमॉन्स्ट्रेशन से सीखना
रोबोट को सिखाने का सबसे आम तरीका है उसे करके दिखाना कि क्या करना है। जानिए कि डेमॉन्स्ट्रेशन कैसे इकट्ठा किए जाते हैं, behaviour cloning क्या है, और नक़ल करने में गड़बड़ी क्यों हो…
डेमॉन्स्ट्रेशन डेटा कैसे इकट्ठा किया जाता है
| तरीका | यह कैसे काम करता है | फायदे और नुकसान |
|---|---|---|
| Teleoperation | एक इंसान जॉयस्टिक, हाथ में पकड़ने वाले कंट्रोलर, रोबोट की नकल वाले हाथ या VR हेडसेट से दूर बैठकर रोबोट को कंट्रोल करता है | डेटा रोबोट के अपने शरीर से पूरी तरह मेल खाता है; धीमा है, ट्रेन्ड लोगों की ज़रूरत होती है |
| Kinesthetic teaching | इंसान हाथ से रोबोट की बांह को धीरे-धीरे हिलाता है और रोबोट उसे रिकॉर्ड करता रहता है | सरल और सीधा तरीका; थका देने वाला, और इंसान का हाथ कैमरे के सामने आ सकता है |
| हाथ से पकड़ने वाले टूल्स | इंसान एक ऐसे ग्रिपर टूल से काम करता है जिस पर कैमरा लगा होता है | इसे कई जगहों पर किया जा सकता है; लेकिन रोबोट का शरीर इससे थोड़ा अलग होता है |
| इंसानों के वीडियो | काम करते हुए इंसानों की रिकॉर्डिंग | बहुत सारे उपलब्ध हैं; लेकिन लगने वाले बल का पता नहीं चलता, हाथ और देखने का नज़रिया अलग होता है |
Behaviour cloning: एक्सपर्ट की नक़ल करना
- 1
रिकॉर्ड करें
इसके कई जोड़े इकट्ठा करें: (रोबोट ने क्या देखा, एक्सपर्ट ने आगे क्या किया)। - 2
ट्रेन करें
देखी गई स्थिति से एक्सपर्ट के एक्शन का अंदाज़ा लगाने के लिए एक न्यूरल नेटवर्क को ट्रेन करें। - 3
चलाएं
असली रोबोट पर: कैमरे से तस्वीर लें, नेटवर्क से पूछें कि क्या एक्शन लेना है, उसे करें, और इसे एक सेकंड में कई बार दोहराएं। - 4
जांचें
सिर्फ रिकॉर्डिंग वाली चीज़ों पर ही नहीं, बल्कि नई शुरुआती स्थितियों और नई चीज़ों पर भी टेस्ट करें।
नक़ल करते हुए रोबोट क्यों भटकता है: distribution shift
लोग इस समस्या को कैसे कम करते हैं
- रिकवरी डेमॉन्स्ट्रेशन (Recovery demonstrations): जानबूझकर रोबोट को गलत स्थिति से शुरू करके दिखाना और उसे ठीक करना सिखाना।
- DAgger (dataset aggregation): रोबोट को काम करने दें, जिन स्थितियों में वह पहुंचता है उन्हें रिकॉर्ड करें, एक्सपर्ट से पूछें कि वहां क्या करना चाहिए था, उसे डेटा में जोड़ें, और फिर से ट्रेन करें।
- ज़्यादा विविधता: अलग-अलग चीज़ों, स्थितियों, रोशनी और लोगों के साथ डेमॉन्स्ट्रेशन इकट्ठा करें।
- एक बार में एक छोटा सा कदम उठाने के बजाय एक्शन के छोटे टुकड़ों (chunks) का अंदाज़ा लगाना। कुछ तरीके मूवमेंट को ज़्यादा सहज और सुसंगत बनाने के लिए ऐसा करते हैं।
डेमॉन्स्ट्रेशन से जुड़ी अन्य समस्याएं
- इंसान हमेशा एक जैसा काम नहीं करते। दो एक्सपर्ट एक ही काम को अलग-अलग तरीकों से कर सकते हैं। एक साधारण नेटवर्क उनका औसत (average) निकाल सकता है और ऐसा मूवमेंट बना सकता है जो किसी ने नहीं किया था, जैसे किसी रुकावट के अगल-बगल से जाने के दो रास्तों के बीच में जाकर उससे टकरा जाना।
- रोबोट केवल वही सीखता है जो उसे दिखाया गया था। उसे यह नहीं पता होता कि एक्सपर्ट ने कोई काम क्यों किया, इसलिए वह किसी नए लक्ष्य के बारे में खुद सोच-विचार नहीं कर सकता।
- खराब डेमॉन्स्ट्रेशन से गलत आदतें सीखते हैं। डेटा की क्वालिटी उतनी ही मायने रखती है जितनी डेटा की मात्रा।
- हर डेमो एक ही स्थिति से शुरू होता है
- केवल एकदम सही (परफेक्ट) वाले प्रयास रखे जाते हैं
- एक इंसान, एक मेज़, एक ही तरह का कप
- सिर्फ ट्रेनिंग वाले सेटअप पर ही टेस्ट करना
- कई शुरुआती स्थितियां और चीज़ों को रखने की अलग-अलग जगहें
- छोटी गलतियों को सुधारने के तरीके शामिल हैं
- अलग-अलग लोग, कमरे, रोशनी और चीज़ें
- ऐसे सेटअप पर टेस्ट करना जो रोबोट ने कभी नहीं देखे
और देखें और पढ़ें
लैब
एक कागज़ी प्रयोग जो distribution shift को दर्शाता है, साथ ही एक बेहतर डेमॉन्स्ट्रेशन डेटासेट की योजना।
समस्या
कागज़ पर एक 6 x 6 का ग्रिड बनाएँ। नीचे-बाएँ एक स्टार्ट (शुरुआती) स्क्वायर और ऊपर-दाएँ एक गोल (मंज़िल) स्क्वायर बनाएँ। बीच में एक छोटी दीवार खींच दें।
- एक्सपर्ट बनें। स्टार्ट से गोल तक का एक साफ़-सुथरा रास्ता बनाएँ। इसे एक टेबल के रूप में लिखें: स्क्वायर → चाल (ऊपर, नीचे, बाएँ, दाएँ)। यह आपका डेमो (demonstration) है।
- रोबोट बनें। रोबोट को सिर्फ़ आपकी टेबल वाले स्क्वेयर्स की चालें ही पता हैं। स्टार्ट से एक स्क्वायर दाएँ की ओर शुरुआत करें। रोबोट क्या करता है? जो होता है उसे लिख लें।
- अब मान लें कि हर चाल में एक स्क्वायर बग़ल में फिसल जाने का थोड़ा सा चांस है। हर चाल के लिए एक पासा फेंकें: 1 आने पर, दाएँ फिसलें। अपनी टेबल का पालन करें। आप कितनी बार ऐसे स्क्वायर पर पहुँचते हैं जहाँ कोई नियम ही नहीं है?
- इसे ठीक करें। अपने रास्ते के बगल वाले स्क्वेयर्स के लिए टेबल में रो (पंक्तियाँ) जोड़ें, जिसमें दिखाया गया हो कि वापस रास्ते पर कैसे आना है। यह रिकवरी डेमोंस्ट्रेशन या DAgger की तरह है।
- ऐसे तीन नियम लिखें जिनका आप पालन करेंगे यदि आप कप उठाने वाले रोबोट के लिए असली डेमोंस्ट्रेशन इकट्ठा कर रहे हों।
आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1टास्क जितना लंबा होता है, डिस्ट्रीब्यूशन शिफ्ट (distribution shift) उतना ही बदतर क्यों होता जाता है?दिखाएं
हर कदम पर गलती होने का थोड़ा चांस होता है। किसी लंबे टास्क में बहुत सारे कदम होते हैं, इसलिए गलतियाँ होने और एक के ऊपर एक जुड़ते जाने के ज़्यादा मौके होते हैं। एक बार जब रोबोट रास्ते से भटक जाता है, तो बाद की कार्रवाइयाँ ऐसी स्थितियों से की जाती हैं जिन पर पॉलिसी ने कभी ट्रेनिंग ही नहीं ली थी, इसलिए वे कम भरोसेमंद होती हैं। यही वजह है कि विशुद्ध behaviour cloning के लिए लंबे, कई-स्टेप वाले टास्क खास तौर पर मुश्किल होते हैं।
Q2एक behaviour cloning पॉलिसी रिकॉर्ड किए गए डेमोज़ के अलग रखे गए (held-out) टेस्ट सेट पर अच्छा स्कोर करती है, लेकिन असली रोबोट पर फेल हो जाती है। ये दोनों बातें सच कैसे हो सकती हैं?दिखाएं
हेल्ड-आउट टेस्ट यह जाँचता है: "एक्सपर्ट ने जो देखा, क्या उसे देखकर पॉलिसी एक्सपर्ट के एक्शन का सही अनुमान लगाती है?" इसमें केवल वही स्थितियाँ इस्तेमाल होती हैं जहाँ तक एक्सपर्ट पहुँचा था। असली रोबोट पर, पॉलिसी की अपनी छोटी-मोटी गलतियाँ नई स्थितियों की ओर ले जाती हैं जो किसी भी रिकॉर्डिंग में नहीं हैं। इसलिए रिकॉर्ड किए गए डेटा पर सटीकता यह नहीं नापती कि रोबोट गलतियों से कितनी अच्छी तरह उबरता (रिकवर करता) है। आपको वास्तव में पॉलिसी को चलाकर ही टेस्ट करना होगा।
अक्सर पूछे जाने वाले सवाल
एक रोबोट को कितने डेमॉन्स्ट्रेशन की ज़रूरत होती है?
यह काफी हद तक काम, रोबोट और तरीके पर निर्भर करता है। तय माहौल में आसान कामों के लिए बहुत कम की ज़रूरत हो सकती है। कई चीज़ों और अलग-अलग स्थितियों वाले कामों के लिए बहुत ज़्यादा की ज़रूरत होती है। किसी तय संख्या पर भरोसा करने के बजाय, policy को नई स्थितियों में टेस्ट करें और देखें कि यह कहां असफल होती है।
क्या behaviour cloning और reinforcement learning एक ही हैं?
नहीं। Behaviour cloning किसी एक्सपर्ट के एक्शन की नक़ल करती है और इसमें किसी reward की ज़रूरत नहीं होती। Reinforcement learning, जिसके बारे में अगले पाठ में बताया जाएगा, कोशिश करके और मिलने वाले इनामों (rewards) से सीखती है। इन दोनों को अक्सर एक साथ इस्तेमाल किया जाता है: नक़ल करके शुरुआत करें, फिर अभ्यास से बेहतर बनें।
इसकी जगह सिर्फ नियम ही क्यों न लिख दिए जाएं?
आसान और तय कामों के लिए, हाथ से लिखे गए नियम और क्लासिक कंट्रोल बहुत अच्छा काम करते हैं और आज भी इनका खूब इस्तेमाल होता है। सीखना तब काम आता है जब काम में इतनी विविधता हो कि उसके लिए नियम लिखना मुमकिन न हो, जैसे कई अलग-अलग तरह की मुलायम या अजीब आकार वाली चीज़ों को पकड़ना।
डेटा के अलावा teleoperation का इस्तेमाल किसलिए होता है?
लोग सीधे काम करने के लिए भी रोबोट को teleoperate करते हैं, उदाहरण के लिए वहां जहां किसी इंसान का मौजूद होना सुरक्षित नहीं है। डेमो देखते समय याद रखें कि हो सकता है रोबोट खुद काम करने के बजाय किसी इंसान द्वारा teleoperate किया जा रहा हो।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।