शतरंज जैसे खेल के लिए सुदृढीकरण सीखने के आवेदन के बारे में कुछ संदेह


9

मैंने एक शतरंज की तरह बोर्ड गेम का आविष्कार किया। मैंने एक इंजन बनाया ताकि यह स्वायत्त रूप से खेल सके। इंजन मूल रूप से एक निर्णय वृक्ष है। यह द्वारा रचित है:

  1. एक खोज फ़ंक्शन जो प्रत्येक नोड पर सभी संभव कानूनी चालें पाता है
  2. एक मूल्यांकन फ़ंक्शन जो बोर्ड की स्थिति को एक संख्यात्मक मान प्रदान करता है (सकारात्मक का अर्थ है कि पहले खिलाड़ी ऊपरी हाथ प्राप्त कर रहे हैं, नकारात्मक का अर्थ है कि दूसरा खिलाड़ी इसके बजाय जीत रहा है)
  3. एक अल्फ़ाबेटे निगिंग नेक्समैक्स एल्गोरिथ्म

इस इंजन के बारे में मुख्य समस्या यह है कि मूल्यांकन फ़ंक्शन का ऑप्टिमाइज़ेशन वास्तव में मुश्किल है। मुझे नहीं पता कि कौन से कारकों पर विचार करना है और कौन सा वजन डालना है। एक ही तरीका है कि मैं इंजन को बेहतर बनाने के लिए खेल को हर बार अलग-अलग कारकों और भार के संयोजन की कोशिश कर रहा हूँ। हालाँकि, यह कम्प्यूटेशनल रूप से एक बहुत ही कठिन उपलब्धि है (क्या मैं deeplearning का उपयोग किए बिना backpropagate कर सकता हूं?)।

मैं खुद के खिलाफ खेलकर इंजन को बेहतर बनाने के लिए सुदृढीकरण सीखने का उपयोग करना चाहूंगा। मैं विषय के बारे में पढ़ रहा हूं, लेकिन मैं अभी भी काफी उलझन में हूं।

एक गेम में जीत-हार-हार आउटपुट (1 या 0) का क्या अन्य इनाम है? यदि मैं प्रत्येक मोड़ पर मूल्यांकन समारोह से आउटपुट की तरह अन्य पुरस्कारों का उपयोग करता हूं, तो मैं इसे कैसे लागू कर सकता हूं? मैं पुनरावृत्ति के बाद बेहतर पुरस्कार पुनरावृत्ति देने के लिए मूल्यांकन समारोह को कैसे संशोधित करूं?

जवाबों:


6

मैं खुद के खिलाफ खेलकर इंजन को बेहतर बनाने के लिए सुदृढीकरण सीखने का उपयोग करना चाहूंगा। मैं विषय के बारे में पढ़ रहा हूं लेकिन मैं अभी भी काफी उलझन में हूं।

सावधान रहें: सुदृढीकरण सीखना एक बड़ा जटिल विषय है। हालाँकि यह आपको गेम खेलने वाले बॉट्स से अलग कर सकता है, आप आरएल बेसिक्स का अध्ययन करना चाह सकते हैं। शुरू करने के लिए एक अच्छी जगह है सूटन और बार्टो सुदृढीकरण सीखना: एक परिचय

एक गेम में जीत-हार-हार आउटपुट (1 या 0) का क्या अन्य इनाम है?

आप खेल के आधार पर, यह आमतौर पर है। वास्तव में शतरंज की तरह एक जीत / ड्रॉ / हार के लिए तो प्रत्येक कार्रवाई से इनाम अंत में जीतने (+1) या हारने (-1) को छोड़कर 0 है। एक शून्य-राशि के खेल में तो यह न्यूनतम रूप से अलंकृत, अल्फ़ाबेटे प्रूनिंग आदि में संरेखित होता है।

सुदृढीकरण सीखने का उद्देश्य विलंबित पुरस्कारों के साथ वातावरण को संबोधित करना है। अंतरिम गैर-लक्ष्यों के लिए "सहायक" पुरस्कार जोड़ना आमतौर पर प्रति-उत्पादक है।

यदि मैं प्रत्येक मोड़ पर मूल्यांकन समारोह से आउटपुट की तरह अन्य पुरस्कारों का उपयोग करता हूं, तो मैं इसे कैसे लागू कर सकता हूं?

आमतौर पर आप नहीं करते। सेल्फ-प्लेइंग आरएल क्या करेगा, यह रिटर्न (कभी-कभी उपयोगिता कहा जाता है ) फ़ंक्शन सीखता है जो गेम के अंत तक आपके कुल + 1/0 / -1 इनाम की उम्मीद की भविष्यवाणी करता है। आप मिनिमैक्स खोज के लिए अपने वर्तमान अनुमान के स्थान पर इसका उपयोग करेंगे। या, संभवतः आप अपने वर्तमान हेयुरिस्टिक फ़ंक्शन को एक ही रेंज में आउटपुट करने के लिए समायोजित करेंगे और आरएल का उपयोग करके अपने वज़न को ऑप्टिमाइज़ करने के लिए सही इष्टतम प्ले रिटर्न फ़ंक्शन (जो कि वास्तव में गणना करने के लिए संभवतः बहुत जटिल है) को सर्वश्रेष्ठ सन्निकटन बना देगा।

मैं पुनरावृत्ति के बाद बेहतर पुरस्कार पुनरावृत्ति देने के लिए मूल्यांकन समारोह को कैसे संशोधित करूं?

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

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

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

वास्तव में, बशर्ते आपका खुद का हेयुरिस्टिक फ़ंक्शन बहुत असामान्य न हो, आप शायद इसे एक रैखिक सन्निकट की तरह मान सकते हैं और आरएल का उपयोग करके इसके लिए सबसे अच्छा वजन सीख सकते हैं।


"सुदृढीकरण सीखने का उद्देश्य विलंबित पुरस्कारों के साथ वातावरण को संबोधित करना है। अंतर-गैर-लक्ष्यों के लिए" सहायक "पुरस्कार जोड़ना" प्रति-उत्पादक है। " मैं यह नोट करना चाहूंगा कि एक पेपर है जो बिचौलियों के लक्ष्य " हिंडसाइट एक्सपीरियंस रिप्ले " को शुरू करके विरल पुरस्कारों की समस्या को हल करने का प्रयास करता है ।
nbro

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