एनएन + एमसीटीएस और एबी + हस्तलिखित eval इंजन शतरंज पर हावी क्यों है?


14

जैसा कि मैं समझता हूं कि यह इंजन अभी चार समूहों में विभाजित किया जा सकता है: वे जो अल्फा-बीटा (एबी) + का उपयोग करते हैं, जो खोज के लिए मोंटे कार्लो ट्री सर्च (MCTS) का उपयोग करते हैं, और जो हस्तलिखित कार्यों का उपयोग करते हैं + वे जो तंत्रिका नेटवर्क का उपयोग करते हैं eval। दो सबसे मजबूत इंजन लीला और स्टॉकफिश हैं। लीला MCTS + NN का उपयोग करती है, जबकि स्टॉकफ़िश AB + हस्तलिखित का उपयोग करती है।

ये दो संयोजन क्यों? एनएन + एबी, या एमसीटीएस + हस्तलिखित क्यों नहीं? यदि MCTS AB से बेहतर है, तो Komodo MCTS Komodo AB से अधिक मजबूत क्यों नहीं है? यदि AB MCTS से बेहतर है, तो लीला AB के बजाय AB का उपयोग क्यों नहीं कर रही है?


सिर्फ अटकलें: एनएन पैटर्न-पहचानकर्ता हैं। चूंकि एमसीटीएस एक व्यापक जाल का निर्माण करता है, इसलिए एनआरई को अच्छे या बुरे के रूप में पहचानने के लिए प्रशिक्षित किया गया है।
जॉन कोलमैन

जवाबों:


12

गति

तंत्रिका नेटवर्क दस्तकारी मूल्यांकन कार्यों की तुलना में बहुत अधिक धीरे-धीरे काम करते हैं। में TCEC Superfinal , लीला शतरंज शून्य, समर्पित टेन्सर कोर के साथ दो GPUs प्रत्येक पर चल रहा है, प्रति सेकंड के आसपास 60 हज़ार पदों खोज करने के लिए सक्षम है। इसके विपरीत, मेरे पीसी पर एक कोर पर स्टॉकफिश, प्रति सेकंड 2 मिलियन से अधिक स्थान खोजता है।

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

MCTS, इसके विपरीत, कहीं अधिक चयनात्मक है, और केवल अपने खोज ट्री को सबसे आशाजनक चाल की ओर बढ़ाता है, जो इसे अधिक सीमित संख्या में नोड्स बनाने की अनुमति देता है जो खोजे जा सकते हैं।

सबसे खराब मामला है

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

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

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

निष्क्रियता

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

उदाहरण के लिए, रानी मुद्रा की पहली छमाही के तुरंत बाद, एक दस्तकारी मूल्यांकन समारोह आपको बता सकता है कि जिस तरफ बस उनकी रानी को ले जाया गया था वह पूरी तरह से खो गया है, जबकि एक तंत्रिका नेटवर्क यह समझने में सक्षम हो सकता है कि रानी जल्द ही हटा दी जाएगी।

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


2

AB और MCTS जरूरी नहीं कि एक दूसरे से बेहतर हों। यह सिर्फ इतना है कि वे अलग-अलग खोज एल्गोरिदम हैं जो अलग-अलग नींव के साथ बेहतर काम करते हैं। एनएन के लिए, एमसीटीएस अच्छी तरह से काम करता है क्योंकि यह इंजन को उन शाखाओं का पता लगाने की अनुमति देता है जो बेहतर कर रहे हैं। यह इंजन को यह देखने की अधिक स्वतंत्रता देता है कि वह "क्या" चाहता है।

इस बीच एबी के साथ, सिद्धांत में सभी शाखाओं को देखना होगा। ऐसा इसलिए है क्योंकि पुनरावृति गहरी होने के साथ, इंजन केवल प्रत्येक पुनरावृत्ति में प्रत्येक शाखा पर अब तक दिखता है। इसलिए यह नहीं पता है कि एक शाखा वास्तव में एक तरफ के लिए जीत रही है, भले ही यह एक सीमित गहराई पर खो जाए।

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