डीप रिनफोर्समेंट लर्निंग - मतलब क्यू एक मूल्यांकन मीट्रिक के रूप में

Aug 18 2020

मैं अंतरिक्ष आक्रमणकारियों के खेल (नीचे की छवि) के एक शिक्षार्थी के लिए एक गहन शिक्षण मॉडल तैयार कर रहा हूं। राज्य को खिलाड़ी और दुश्मनों के बीच सापेक्ष यूकेलियन दूरी के रूप में परिभाषित किया जाता है + खिलाड़ी और 6 निकटतम दुश्मन लेज़रों के बीच की दूरी खिड़की की ऊंचाई से सामान्यीकृत होती है (यदि खिलाड़ी की स्थिति है)$(x_p,y_p)$ और एक दुश्मन की स्थिति है $(x_e,y_e)$सापेक्ष यूक्लिडियन दूरी है $\frac{\sqrt{(x_p-x_e)^2+(y_p-y_e)^2}}{HEIGHT}$और ऊंचाई खिड़की की ऊंचाई है)। इसलिए अवलोकन अंतरिक्ष आयाम (10 + 6) है, जिसके परिणामस्वरूप 16 इकाइयों के मेरे गहरे तंत्रिका नेटवर्क का इनपुट मिलता है।

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

शिक्षार्थी के बारे में कुछ परिणाम इस प्रकार हैं:

जवाब

NeilSlater Aug 20 2020 at 04:35

मुझे लगता है कि मुख्य विशेषता के रूप में आपकी मुख्य समस्या सापेक्ष दूरी का उपयोग है। इसकी दो प्रमुख कमजोरियां हैं:

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

  • थोड़ा कम महत्वपूर्ण है, लेकिन कच्ची दूरी आंदोलन की किसी भी भावना पर कब्जा नहीं करती है। यदि दुश्मन लगातार चलते रहते हैं, लेकिन हमेशा एक ही दिशा में या एक ही गति से नहीं, तो उनके वेग को भी राज्य का हिस्सा होना चाहिए।

एक तरह से आप सुविधाओं में सुधार कर सकते हैं, प्रत्येक आइटम के लिए एक वेग घटक जोड़ना है, यह दर्शाता है कि यह खिलाड़ी से कितनी जल्दी आ रहा है या फिर से बदल रहा है । यह थोड़ा मदद कर सकता है, लेकिन मेरी भावना यह है कि आपको दूरी और गति से अधिक डेटा की आवश्यकता है।

मुझे लगता है कि आपको सामान्यीकृत उपयोग करना चाहिए $x, y$प्रत्येक आइटम पर नज़र रखने के लिए सुविधाओं के रूप में स्थिति, और सामान्यीकृत वेग$dx, dy$ किसी भी ऑब्जेक्ट प्रकार के लिए जो दिशा बदल सकता है (यदि दुश्मन पराबैंगनीकिरण हमेशा सीधे नीचे गिर रहे हैं तो आपको उन लोगों के लिए कुछ भी आवश्यकता नहीं हो सकती है)।

इसके साथ - साथ:

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

  • अनुमानित मूल्य को ट्रैक करने के लिए, आपको खिलाड़ी मिसाइलों के स्थान को ट्रैक करने की आवश्यकता है। यह केवल आग लगाने के लिए सबसे अच्छा होने पर एजेंट को भविष्यवाणी करने के लिए पर्याप्त नहीं है - एक मूल्य फ़ंक्शन को सही ढंग से ट्रैक करने के लिए इसे "देखने" की आवश्यकता है कि क्या मिसाइल ने कुछ समय पहले दागी गई मिसाइल को निशाना बनाने या चूकने की संभावना है।

  • दुश्मन के लेज़र और खिलाड़ी दोनों मिसाइलों के लिए, डेटा को कुछ मानदंडों (जैसे खिलाड़ी से दूरी) द्वारा फ़िल्टर करना और सॉर्ट करना ठीक है। जब तक यह सुसंगत है तब तक इस तरह के पूर्व-प्रसंस्करण के लिए बहुत मदद मिल सकती है।