अल्फ़ाज़ेरो उस स्थिति का मूल्यांकन करने के लिए कैसे सीखता है जिसे उसने कभी नहीं देखा है?


12

निम्नलिखित उत्तर से:

अल्फ़ाज़ो को समझना

मेरा सवाल यह होगा कि तंत्रिका जाल कैसे सीखता है "उस स्थिति में क्या करना है जो इसका सामना नहीं किया है। कहने के लिए कि वास्तविक AZ प्रशिक्षित न्यूरल नेट से पूर्वाग्रह + भार का उपयोग करते हुए एक MCTS निष्पादित करता है, यह सिर्फ एक कदम को पीछे खींचता है कि कैसे तंत्रिका जाल इन मूल्यों की गणना करता है। यदि यह बिना किसी मानव ज्ञान के साथ यादृच्छिक आत्म-नाटक के माध्यम से होता है, तो यह कैसे तय करता है कि किसी स्थिति को कैसे वजन करना है जो उसने कभी नहीं देखा है?

जवाबों:


6

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

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

अल्फाज़ेरो (पृष्ठ 3) पर कागज से :

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

[उद्धरण से हटाए गए गणित के प्रतीक]

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


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

@PhilipRoe आप सही हैं, प्रत्येक गेम केवल थोड़ी सी जानकारी प्रदान करता है। मैंने वास्तव में अपना खुद का शतरंज इंजन लिखा है जो एक विकासवादी एल्गोरिथ्म द्वारा सीखता है। इंजन की बेतरतीब ढंग से संशोधित प्रतियां एक दूसरे को खेलती हैं; हारने वाले हटा दिए जाते हैं और विजेता अधिक संशोधित प्रतियां तैयार करते हैं। यह आमतौर पर 10,000 से 20,000 के बीच का खेल लेता है ताकि इसके लिए उचित मूल्य के टुकड़े के मूल्यों (रानी, ​​किश्ती, बिशप / नाइट, प्यादा) का पता लगाया जा सके। इसने अपने कौशल को प्राप्त करने के लिए अल्फ़ाज़ेरो को 44 मिलियन गेम्स दिए (लिंक किए गए पेपर के पृष्ठ 15 पर तालिका)।
मार्क एच

प्रतिक्रिया देने के लिये धन्यवाद! लेकिन Im अभी भी चकित है। मूल्यांकन करने के लिए संभावित पदों का विशाल स्थान है। लेकिन संभावित प्रश्नों का विशाल स्थान भी पूछना है। एंथ्रोपोमोर्फिक रूप से मैं खुद को नियमों के अलावा शून्य पूर्व ज्ञान के साथ कल्पना करता हूं, और गेम का एक विशाल डेटाबेस जो लगभग अक्षमता के स्तर पर खेला जाता है (हालांकि मुझे याद नहीं है कि सब याद है) मुझे किस बिंदु पर होता है "अरे शायद मैं टुकड़ों को गिनना चाहिए "फिर टुकड़ों को गिनने से पहले एक अच्छा विचार कैसे लगता है?
फिलिप रो

1
मुझे कल्पना करना बहुत मुश्किल है, भले ही "एक अच्छा प्रश्न क्या बनता है?" लेकिन इसके बिना भी, इम ने प्रभावित किया कि 20,000 खेलों में टुकड़ों की एक उत्तराधिकार स्थापित किया जा सकता है। इसलिए मुझे यह स्वीकार करना बहुत मुश्किल है कि तबला वास्तव में रस है। अपने नियमों को बनाने और संशोधित करने की प्रक्रिया के बारे में कुछ न्यूनतम निर्देश (कितने, कितने, कितने?) अभी भी आवश्यक लगते हैं।
फिलिप रो

1
@PhilipRoe मेरे कार्यक्रम में, मैं इंजन को टुकड़ों को गिनने के लिए कहता हूं, लेकिन प्रत्येक टुकड़े की कीमत कितनी है। तो, मैं इंजन को बताता हूं कि क्या देखना है, लेकिन यह नहीं कि वजन क्या होता है। अल्फ़ाज़ेरो बहुत अधिक तबला रस है। अगर आप जिज्ञासु हैं: github.com/MarkZH/Genetic_Chess
मार्क H
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.