आप एंग्री बर्ड्स खेलने के लिए मशीन लर्निंग सिस्टम कैसे डिजाइन करेंगे?


22

बहुत अधिक गुस्सा पक्षी खेलने के बाद, मैंने अपनी रणनीतियों का पालन करना शुरू कर दिया। यह पता चला है कि मैंने प्रत्येक स्तर पर 3 स्टार प्राप्त करने के लिए एक बहुत ही विशिष्ट दृष्टिकोण विकसित किया है।

इसने मुझे मशीन लर्निंग सिस्टम विकसित करने की चुनौतियों के बारे में आश्चर्यचकित कर दिया, जो एंग्री बर्ड्स को खेलने में सक्षम होंगे। खेल के साथ बातचीत करना और पक्षियों को लॉन्च करना तुच्छ है। लेकिन एक सवाल जो मेरे पास था वह सिस्टम के "बिल्डिंग ब्लॉक्स" के बारे में था।

मशीन लर्निंग सिस्टम सरल अवधारणाओं या समस्या के बारे में समझ के साथ काम करते हैं। इसे अक्सर इनपुट के रूप में सुविधाओं के रूप में एन्कोड किया जाता है। इसलिए ऐसा लगता है कि सिस्टम को रणनीति बनाने के लिए कुछ उच्च स्तरीय अवधारणाओं को समझने की क्षमता होनी चाहिए।

क्या ये सच है? साथ ही, इस तरह की प्रणाली को विकसित करने की चुनौतियां या मुश्किल हिस्से क्या हैं?

EDIT # 1:

यहाँ कुछ स्पष्टीकरण है। 3 स्टार प्राप्त करना एक कठिन समस्या है क्योंकि आपको अंक अधिकतम करने होंगे। यह दो गैर-अनन्य तरीकों से किया जा सकता है: 1) उपयोग किए गए पक्षियों की संख्या को कम करना (आपको हर अप्रयुक्त पक्षी के लिए 10,000 अंक मिलते हैं)। 2) कांच, लकड़ी और अन्य वस्तुओं के विनाश को अधिकतम किया। नष्ट की गई प्रत्येक वस्तु आपको अंक देती है। एक ही पक्षी के साथ 10,000 से अधिक अंक की वस्तुओं को नष्ट करना संभव है।

यहां "उच्च स्तरीय अवधारणाओं" के बारे में थोड़ा और स्पष्टीकरण दिया गया है। ऊपर वर्णित बिंदुओं को अधिकतम करने के लिए, आपको प्रत्येक पक्षी की विशेष शक्तियों का उपयोग करने की आवश्यकता है। तो, इसका मतलब है कि नक्शे के लेआउट के आधार पर विभिन्न प्रक्षेपवक्रों के साथ विभिन्न पक्षियों को लॉन्च करना। और, खेलते समय मैंने एक रणनीति विकसित की है जो कुछ पक्षियों के साथ कुछ क्षेत्रों को एक निश्चित क्रम में नष्ट कर देती है।

ऐसा लगता है कि एक विशिष्ट क्षेत्र को नष्ट करने के लिए प्रत्येक पक्षी का उपयोग करने की समझ के बिना सिस्टम 3 तारों को प्राप्त करना नहीं सीख सका। तो, आप इस तरह से कुछ कैसे प्रबंधित और एनकोड करेंगे? आप यह कैसे सुनिश्चित करते हैं कि सिस्टम इन उच्च स्तरीय अवधारणाओं को सीख सकता है?

जवाबों:


13

यह मानते हुए कि आप सॉफ़्टवेयर में सही हुक प्राप्त कर सकते हैं (या आप अपने स्वयं के मॉक-अप के साथ काम करते हैं), कुछ चीजें यहां आसान होंगी, और कुछ कम। मुझे लगता है कि यह काफी कठिन समस्या है। जैसा कि कार्लोसडेक ने उल्लेख किया है, सुदृढीकरण सीखना (आरएल) एक संभावित एवेन्यू है, हालांकि मुझे यकीन नहीं है कि यह सही है।

जब आप शुरू करते हैं, तो आपको यह परिभाषित करना होगा कि आपका राज्य स्थान , क्रिया स्थान , संक्रमण गतिकी और इनाम समारोह क्या हैं। राज्य / एक्शन स्पेस निरंतर या असतत हो सकते हैं, और संक्रमण की गतिशीलता समस्या द्वारा दी जा सकती है या गणितीय रूप से मॉडलिंग की जा सकती है। अंत में इनाम समारोह को प्राथमिकता दी जा सकती है , या (शोर के साथ या बिना) नमूना लिया जा सकता है।

एक्शन स्पेस सरल है: यह बस दिशा और शक्ति है कि आप वर्तमान पक्षी को शूट करते हैं। मानव के लिए, यह एक असतत समस्या है (माउस / टचस्क्रीन एक डिजिटल इनपुट डिवाइस है) - मान लें कि (उदाहरण के लिए) 32 संभावित दिशाएं और 10 संभावित शक्तियां हैं, जिससे 320 संभावित क्रियाएं होती हैं।

इनाम समारोह भी व्युत्पन्न करने के लिए काफी आसान है: लक्ष्य पक्षियों की सबसे कम संख्या के साथ सभी सूअरों से छुटकारा पाना है (ठीक है इसलिए अन्य चीजों के लिए अतिरिक्त अंक हैं लेकिन चलो अब के लिए इसे अनदेखा करें)। सबसे अच्छी बात यह होगी कि अगर हम वास्तविक कार्य जानते हैं जो सूअरों को मारने से अंक उत्पन्न करता है (सुअर आदि के आकार पर निर्भर करता है IIRC) - लेकिन एक एकल स्तर के लिए यह पूरी तरह से मॉडलिंग की जा सकती है।

राज्य स्थान और संक्रमण की गतिशीलता बहुत अधिक कठिन है। इसे सही ढंग से मॉडल करने के लिए, हमें मानचित्र के पूरे लेआउट और गेम के भौतिकी को जानना होगा । संक्रमण गतिकी कहती है, "यदि मैं राज्य x में हूं और मैं कार्रवाई y करता हूं, तो मैं राज्य z में उतरूंगा "। आप इसकी कठिनाई देख सकते हैं, सबसे पहले सिस्टम के जटिल भौतिकी का मतलब है कि यह सटीक रूप से मॉडल करना बहुत मुश्किल होगा, और दूसरी बात यह है कि पहले दौर (320) के बाद भी कई संभावित परिणामी अवस्थाएं हैं, और यह है हम मानते हैं कि भौतिकी इंजन में कोई स्थिरता नहीं है , जो इसे खेलने से मुझे संदेह है कि वहाँ है। मुझे लगता है कि इस स्तर पर आप घर छोड़ देंगे।

एक और तरीका यह है कि मानव जैसा व्यवहार करता है, वैसा ही शुरू में होता है - यानी परीक्षण और त्रुटि। मानव, कम से कम शुरू करने के लिए, वस्तुतः बेतरतीब ढंग से आग लगाता है (हालांकि सूअरों की ओर पक्षियों को भेजने के लिए काफी मजबूत होने से पहले, लेकिन इसे आसानी से कोडित किया जा सकता है), जब तक कि अच्छे कार्यों की एक श्रृंखला नहीं मिलती है। यह बहु-सशस्त्र डाकू की तरह हैसेटिंग। यहां के डाकुओं के "हथियार" संभव कार्य हैं। एल्गोरिथ्म अन्वेषण और शोषण को संतुलित करने की कोशिश करता है - अर्थात जब वे मिलते हैं तो कार्रवाई स्थान की खोज और अच्छे कार्यों का दोहन करते हैं। इसके लिए आपको अंतर्निहित गतिशीलता के बारे में कुछ भी जानने की आवश्यकता नहीं है - आपको केवल कार्यों और पुरस्कारों के बारे में जानने की आवश्यकता है। इसे पूरी तरह से करने के लिए आपको सभी राउंड्स पर प्रत्येक संभावित कार्रवाई के लिए एक हाथ रखना होगा (जैसे आपके पास 5 पक्षी * 320 कार्रवाई = 320 ^ 5 = लगभग 10 ^ 12 क्रियाएं) हैं, इसलिए कार्रवाई का स्थान बहुत बड़ा है! हालाँकि आप इसे सुधारने के लिए कुछ ट्रिक्स का उपयोग कर सकते हैं यदि आप थोड़ा सा जानते हैंराज्य स्थान के बारे में। उदाहरण के लिए, आप संभवतः उन क्रियाओं को नियंत्रित कर सकते हैं जो पक्षी को सूअरों से दूर, जमीन में नीचे या किसी भी तक पहुंचने के लिए पर्याप्त शक्ति के बिना भेजती हैं। साथ ही आपको केवल 5 वें पक्षी तक पहुंचने की आवश्यकता है यदि आपने पिछले राउंड में सूअरों को नहीं मारा है, तो कार्रवाई राज्यों का एक अनुपात वास्तव में संभव नहीं है। यह एल्गोरिथ्म MoGo में उपयोग किए जाने वाले दृष्टिकोण की कुछ हद तक याद दिलाता है , जो कि पेड़ों पर ऊपरी विश्वास के आधार पर गो खेलने के लिए एक कंप्यूटर प्रोग्राम है, जो बहु-सशस्त्र डाकू समस्या को हल करने के लिए एक दृष्टिकोण है।


1
बहुत बढ़िया जवाब! मुझे लगता है कि एक्शन स्पेस 320 संभावित एक्शन की तुलना में बहुत बड़ा है। प्रत्येक पिक्सेल शायद .7 इंच (iPad पर) क्षैतिज से ऊर्ध्वाधर बाईं ओर झुका हुआ है, एक अलग प्रक्षेपवक्र और परिणाम उत्पन्न करेगा। IPad में 132 डीपीआई का रिज़ॉल्यूशन है, ताकि लॉन्च करने के लिए चुनने के लिए लगभग 8,000 संभव पिक्सेल हो सकते हैं। मैं विवरण पर ध्यान नहीं देना चाहता था, लेकिन कार्रवाई के स्थान को बढ़ाकर 8,000 करने से उत्तर बदल जाता है? आप एक बड़े एक्शन स्पेस के साथ कैसे काम कर सकते हैं?
बी सेवन

डायनामिक्स को अनुकरण करने की कोशिश एक पूरी तरह से अलग (और मुश्किल) प्रश्न है। मुझे लगता है कि इस चर्चा के लिए हमें यह मान लेना चाहिए कि हमारे पास स्रोत कोड तक पहुंच है और राज्य की जानकारी प्राप्त कर सकते हैं। इसके अलावा, इनाम समारोह न केवल कितने सूअरों को मार रहा है। एक स्तर पर 3 सितारे प्राप्त करने के लिए, आपको कुछ और कठिन करना होगा। प्रश्न करने के लिए संपादित देखें।
बी सेवन

@BSeven सिद्धांत रूप में, बड़ा एक्शन स्पेस उत्तर को नहीं बदलता है, हालाँकि आपको अधिक प्रूनिंग करनी पड़ सकती है और बहुत अधिक कंप्यूटिंग शक्ति का उपयोग करना होगा ;-) ध्यान दें कि यह समानांतर प्रसंस्करण के लिए एक आदर्श उम्मीदवार है। तारों का प्रश्न मुश्किल है, क्योंकि इसका अर्थ है कि मार से सितारों तक कोई सरल मानचित्रण नहीं है, हालांकि मैंने सोचा था कि आपको अंक थ्रेसहोल्ड को पार करके अधिक सितारे मिले (आमतौर पर यह कम पक्षियों का उपयोग करके किया जाता है)। यदि नहीं, तो आपको उप-मध्य रास्तों पर बहुत जल्दी जाने से बचने के लिए अन्वेषण की मात्रा को कृत्रिम रूप से बढ़ाना होगा।
tdc

8

अच्छा सवाल!

ऐसा लगता है कि यह प्रश्न इस प्रकार की समस्या के लिए प्राकृतिक तकनीक के बारे में है। मुझे लगता है कि इस तरह की समस्या के लिए प्राकृतिक तकनीक सुदृढीकरण सीखने (आरएल) है। आरएल इस बारे में है कि एक एजेंट को पर्यावरण में कार्रवाई करने के लिए क्या करना चाहिए ताकि संचयी इनाम की कुछ धारणा को अधिकतम किया जा सके। आरएल के लिए शायद सबसे अच्छा ज्ञात एल्गोरिथ्म क्यू-लर्निंग है । मुझे लगता है कि सुदृढीकरण सीखने के बारे में इस साइट में यह पहला सवाल है।

मुझे लगता है कि आप जो पूछ रहे हैं वह सच है यदि आप इसे वर्गीकरण / प्रतिगमन के रूप में देखने की कोशिश करते हैं, लेकिन वे इस समस्या के लिए सही उपकरण नहीं लगते हैं। यह स्वाभाविक रूप से एक आरएल समस्या है जहां कार्यों और परिणामों के अनुक्रम को ध्यान में रखा जाना चाहिए।


5

यहां देखें कि दूसरे इसे कैसे कर रहे हैं या खुद भाग लें: एंग्री बर्ड्स AI चैलेंज http://ai2012.web.cse.unsw.edu.au/abc.html


शायद आप संक्षेप में बता सकते हैं कि लिंक के बारे में क्या है और कैसे प्रश्न से संबंधित है। जैसा कि अभी है, टिप्पणी के रूप में आपका उत्तर बेहतर है।
फ्रेड्रिकड

4

सिर्फ मेटा में इस ओवर का उल्लेख किया। वीडियो गेम Pacman को हल करने के लिए कोजा द्वारा आनुवंशिक एल्गोरिदम का एक अग्रणी उपयोग किया गया था। उन्होंने एल्गोरिथम प्राइमिटिव का निर्माण किया जो समझ और कार्य कर सकता था। जैसा कि मुझे याद है कि ये बड़े एल्गोरिदम बनाने के लिए लिस्प जैसे पेड़ों में संयुक्त थे। लिस्प वृक्षों के साथ क्रॉसओवर में सबस्ट्रीमिंग या एक्सचेंजिंग शामिल है जो एल्गोरिथम अभिव्यक्तियों का प्रतिनिधित्व करते हैं। सफलता समारोह कुछ ऐसा है जैसे "डॉट्स खाए गए" या "डॉट्स प्लस घोस्ट्स खाए गए" या "समय जीवित रहे"। इस क्षेत्र में अभी भी कुछ काम बाकी है। इस पत्र में निम्नलिखित में एक koza रेफ है। प्रशिक्षण का समय इन प्रकार की समस्याओं के लिए बहुत लंबा और "अभिसरण" हो सकता है।

प्ले-मैन सीखना: एक विकासवादी, गैलाघर और रयान द्वारा नियम-आधारित दृष्टिकोण

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.