सुदृढीकरण सीखने में अमान्य चाल को कैसे संभालें?


20

मैं एक एआई बनाना चाहता हूं जो पांच-इन-द-रो / गोमोकू खेल सकता है। जैसा कि मैंने शीर्षक में उल्लेख किया है, मैं इसके लिए सुदृढीकरण सीखने का उपयोग करना चाहता हूं।

बेसलाइन के साथ, मैं पॉलिसी ग्रेडिएंट विधि का उपयोग करता हूं , जिसका नाम REINFORCE है। मान और नीति फ़ंक्शन सन्निकटन के लिए, मैं एक तंत्रिका नेटवर्क का उपयोग करता हूं । इसमें दृढ़ और पूरी तरह से जुड़ी हुई परतें हैं। आउटपुट को छोड़कर, सभी परतें साझा की जाती हैं। पॉलिसी की आउटपुट लेयर में _ (बोर्ड का आकार) आउटपुट यूनिट और उन पर सॉफ्टमैक्स होता है। तो यह स्टोकेस्टिक है। लेकिन क्या होगा अगर नेटवर्क एक अवैध कदम के लिए बहुत अधिक संभावना पैदा करता है? एक अमान्य चाल तब होती है जब एजेंट एक वर्ग की जांच करना चाहता है जिसमें एक "X" या "O" होता है। मुझे लगता है कि यह उस खेल की स्थिति में फंस सकता है।8×8=64

क्या आप इस समस्या के लिए कोई समाधान सुझा सकते हैं?

मेरा अनुमान अभिनेता-आलोचक पद्धति का उपयोग करना है । अमान्य कदम के लिए, हमें एक नकारात्मक इनाम देना चाहिए और प्रतिद्वंद्वी को बारी देना चाहिए।

जवाबों:


10

बस अमान्य चालों को अनदेखा करें।

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

मेरे लिए यह और अधिक समझ में आता है कि आप अपनी चाल को चुनने से पहले सभी अवैध चालों की संभावनाओं को शून्य और आउटपुट वेक्टर को फिर से निर्धारित करें।


धन्यवाद। शायद मैं स्पष्ट नहीं था, लेकिन मैंने आउटपुट प्रोबेबिलिट्स द्वारा यादृच्छिक रूप से इस कदम को चुना। मैं आपकी सलाह को अवैध चालों की संभावना को शून्य पर सेट करने की कोशिश करूंगा और देखूंगा कि क्या होगा। आपका दिन शुभ हो।
मोलनार इस्तवान

8

रेखीय कार्य सन्निकटन का उपयोग कर नीति ढाल तरीकों में आमतौर पर softmax तरीकों निम्न सूत्र का उपयोग कार्रवाई चुनने की संभावना की गणना करने के । इधर, वजन रहे हैं θ , और सुविधाओं φ वर्तमान स्थिति की एक समारोह है रों और कार्यों के सेट से एक कार्रवाई

π(θ,)=θφ(रों,)Σθφ(रों,)

गैरकानूनी चालों को खत्म करने के लिए, कार्रवाई के सेट को केवल उन लोगों तक सीमित किया जाएगा जो कानूनी थे, इसलिए एलजीएल()

π(θ,)=θφ(रों,)Σएलजीएल()θφ(रों,),एलजीएल()

छद्मकोड में सूत्र इस तरह दिख सकता है:

action_probs = Agent.getActionProbs(state)
legal_actions = filterLegalActions(state, action_probs)
best_legal_action = softmax(legal_actions)

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


बहुत उपयोगी। दोनों समीकरणों और स्यूडोकोड पोस्ट करने के लिए धन्यवाद!
DukeZhou

1
गणित और स्यूडोकोड यहाँ मेल नहीं खाते हैं। कानूनी कदम की संभावनाओं पर सॉफ्टमैक्स सापेक्ष संभावनाओं को समायोजित करेगा। जैसे (0.3, 0.4, 0.2, 0.1) पहले निकाले गए और तीसरे आइटम के साथ फ़िल्टर किया गया (0.0, 0.8, 0.0, 0.2) आपके सूत्र के साथ होगा, लेकिन छद्मकोश का उपयोग करके (0.0, 0.57, 0.0, 0.42) होगा। कार्रवाई संभावना गणना से पहले छद्मकोड को लॉग्स लेने की आवश्यकता होती है।
नील स्लेटर

4
सॉफ्टमैक्स के फ़िल्टर किए गए संस्करण के ग्रेडिएंट की गणना कैसे की जाती है? ऐसा लगता है कि सफल होने के लिए बैकप्रॉपैगैशन के लिए आवश्यक होगा, हाँ?
brianberns

@brianberns क्या आपने उत्तर खोजने के लिए प्रबंधन किया? ऐसा लगता है कि मेरे लिए यह मामला होगा, लेकिन किसी तरह मेरे खिलौने के उदाहरण में मुझे केवल सही उत्तर मिल रहा है जब अनफ़िल्टर्ड सॉफ्टमैक्स की लॉग संभावनाओं का उपयोग किया जा रहा है ...
trytolearn

5

IMHO अमान्य चालों का विचार स्वयं अमान्य है। निर्देशांक में "X" रखने की कल्पना करें (9, 9)। आप इसे अमान्य कदम मान सकते हैं और इसे नकारात्मक प्रतिफल दे सकते हैं। बेतुका? ज़रूर!

लेकिन वास्तव में आपके अमान्य कदम प्रतिनिधित्व का एक अवशेष हैं (जो स्वयं सीधा और ठीक है)। उनमें से सबसे अच्छा उपचार उन्हें किसी भी गणना से पूरी तरह से बाहर करना है।

यह शतरंज में अधिक स्पष्ट हो जाता है:

  • एक स्थितीय प्रतिनिधित्व में, आप इस कदम पर विचार कर सकते हैं a1-a8, जो केवल खेल में होता है यदि कोई रूक या क्वीन है a1(और कुछ अन्य शर्तें रखती हैं)।

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

चूंकि खेल के बजाय अमान्य चालें प्रतिनिधित्व से संबंधित हैं, इसलिए उन्हें बिल्कुल भी नहीं माना जाना चाहिए।


1
महान बिंदु। [एम] खेलों में, जो सुडोकू पर खेले जाते हैं, बाधाएं पहले स्थान के बाद कई पदों (निर्देशांक + मूल्य) को अवैध बना देती हैं। प्लेसमेंट के दृष्टिकोण से इन अवैध पदों पर विचार करने का कोई मूल्य नहीं है, लेकिन , एक महत्वपूर्ण रणनीतिक परत यह पहचान रही है कि कौन-से प्लेसमेंट शेष, अप्रयुक्त पदों का मूल्य कम करते हैं। (यानी अगर मैं एक 8 यहाँ जगह है, यह ब्लॉक कि पंक्ति, स्तंभ या क्षेत्र में एक 8 रखने से मेरे प्रतिद्वंद्वी अनिवार्य रूप से, "कितने सामरिक पदों gameboard से इस प्लेसमेंट निकालें है?"।)
DukeZhou

5

मुझे हाल ही में माइनस्वीपर के साथ इसी तरह के मुद्दे का सामना करना पड़ा।

जिस तरह से मैंने इसे हल किया वह पूरी तरह से अवैध / अमान्य चालों की अनदेखी करके था।

  1. अपने सभी कार्यों (मान्य और अमान्य) के लिए क्यू-मूल्यों की भविष्यवाणी करने के लिए क्यू-नेटवर्क का उपयोग करें
  2. शून्य / ऋणात्मक संख्या के Q- मान पर सभी अमान्य चालें सेट करके Q- मानों को पूर्व-संसाधित करें (आपके परिदृश्य पर निर्भर करता है)
  3. परिष्कृत क्यू-मूल्यों (यानी लालची या बोल्ट्ज़मैन) से एक कार्रवाई का चयन करने के लिए अपनी पसंद की नीति का उपयोग करें
  4. चयनित कार्रवाई निष्पादित करें और अपने DQN तर्क को फिर से शुरू करें

उम्मीद है की यह मदद करेगा।


1
केवल एक चीज जो मैं इसमें जोड़ूंगा, वह यह है कि आपको DQN पर एक बैकप्रॉप करना याद रखना होगा, जब आप अवैध (एस) के लिए क्यू मानों को बड़े नकारात्मक मानों के लिए सेट करते हैं, तो इसके लिए उन राज्य, कार्रवाई को प्रशिक्षित न करना अगली बार जोड़े।
एसएन

लेकिन मुझे आश्चर्य है कि बड़े-बड़े लक्ष्य Q मानों की स्थापना, हानि / त्रुटि फ़ंक्शन की निरंतरता या आकार (जिससे क्रमिक खोज को प्रभावित कर रही है) को स्थापित करती है। आपका अनुभव क्या था?
एसएन

1
@ एसएन मैं आपकी बात देखता हूं। विचार के साथ कार्रवाई लेने के लिए है उच्चतम क्यू मूल्य वह यह है कि एक अमान्य कार्यवाही नहीं । इसके बाद, आप उस कार्रवाई को निष्पादित करते हैं और उस कार्रवाई का उपयोग अपने अद्यतन नियम में करते हैं (यानी लंबे समय में इस कार्रवाई का पक्ष लेने के लिए अपने DQN को प्रशिक्षित करें)। यह क्या करता है भविष्य के क्यू-मूल्यों को चयनित कार्रवाई के उच्च और इस प्रकार अधिक अनुकूल बनाता है। यह होगा नहीं जो बात क्योंकि वे हमेशा से फ़िल्टर कर दिया नहीं है अवैध कार्यों क्यू मूल्य हालांकि कम करना, (नहीं माना जाता)। मुझे बताएं कि क्या आप चाहते हैं कि मैं एक उदाहरण के साथ अधिक विस्तार करूं। :)
सानवेसा

1
@ सनासेवा सुनिश्चित करती है कि आप अनिवार्य रूप से DQN पर भरोसा कर रहे हैं कि आखिरकार सही विकल्प क्या हैं, यह सीखना कि हार्ड नॉक की पाठशाला है। लेकिन ऐसी स्थितियों में जहां आप केवल एक या कुछ कानूनी पसंद करते हैं, आप बहुत धीमी गति से सीखेंगे। जो दृष्टिकोण मैं सुझा रहा हूं, वह उस सीखने को गति देने के लिए समस्या में डोमेन K को शामिल करने का एक तरीका है। यह भी मैंने सोचा था कि आप अपने मूल पद पर क्या कर रहे थे, जहाँ आपने "शून्य / ऋणात्मक संख्या के Q मान पर अवैध चालें स्थापित करने" के बारे में लिखा था
SN

1
@SNPrecisely! दोनों दृष्टिकोणों की अपनी खूबियाँ हैं। आवेदन पर निर्भर करता है अगर कानूनी चाल जानने के लिए आसान है या सिर्फ एकमुश्त उन्हें अनदेखा करें। बड़े जटिल अनुप्रयोगों के लिए, मुझे लगता है कि अमान्य चालों को अनदेखा करना एजेंट के लिए सीखने के लिए बहुत तेज़ है, लेकिन मुझे उस पर उद्धृत न करें।
संवत् a
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.