शतरंज के लिए कोई गहन सुदृढीकरण सीखने वाले इंजन क्यों नहीं हैं, जो अल्फागो के समान है?


32

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


5
देखें arxiv.org/abs/1509.01549 (जिराफ: डीप रेनफोर्स लर्निंग टू प्ले शतरंज) और एक लोकप्रिय लेख technologyreview.com/s/541276/… । इसके अलावा erikbern.com/2014/11/29/deep-learning-for-chess.html
कहना है कि मोनिका

यह सिर्फ समय की बात थी जब तक कि कोई इसे ठीक से करने के लिए चारों ओर नहीं पहुंच जाता। आपके द्वारा अपना प्रश्न पोस्ट करने के एक महीने बाद, यहां आप जाएं: arxiv.org/abs/1712.01815
अमीबा का कहना है कि मोनिका

जवाबों:


49

EDIT (पेपर पढ़ने के बाद):

मैंने पेपर सोच समझकर पढ़ा है। Google ने कागज में जो दावा किया है, उससे शुरू करते हैं:

  • उन्होंने मोंटे-कार्लो-ट्री-सर्च + डीप न्यूरल नेटवर्क के साथ स्टॉकफिश को हराया
  • यह मैच बिल्कुल एकतरफा था, अल्फ़ाज़ेरो के लिए कई जीतें लेकिन स्टॉकफिश के लिए कोई नहीं
  • वे इसे केवल चार घंटे में करने में सक्षम थे
  • अल्फ़ाज़ो एक इंसान की तरह खेला

दुर्भाग्य से, मुझे नहीं लगता कि यह एक अच्छा जर्नल पेपर है। मैं लिंक के साथ समझाने जा रहा हूँ (ताकि आप जानते हैं कि मैं सपने नहीं देख रहा हूँ):

  • https://chess.stackexchange.com/questions/19360/how-is-alpha-zero-more-human पर मेरा जवाब है कि अल्फ़ाज़ेरो ने इंसान की तरह कैसे खेला

  • मैच अनुचित था , दृढ़ता से पक्षपातपूर्ण। मैं स्टॉकफोर्ड के मूल प्रोग्रामर टॉर्ड रोमस्टैड को उद्धृत करता हूं।

https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author

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

स्टॉकफ़िश केवल एक मिनट प्रति चाल के साथ सर्वश्रेष्ठ शतरंज नहीं खेल सकती थी। कार्यक्रम उस के लिए डिज़ाइन नहीं किया गया था।

  • स्टॉकफ़िश एक नियमित वाणिज्यिक मशीन पर चल रहा था, जबकि अल्फाज़ेरो 4 लाख + टीपीयू मशीन पर था जो अल्फ़ाज़ेरो के लिए ट्यून किया गया था। यह एक सस्ते एंड्रॉइड फोन के खिलाफ अपने हाई-एंड डेस्कटॉप से ​​मेल खाने जैसा है। टॉर्ड ने लिखा है:

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

  • Google ने अनजाने में स्टॉकफिश के लिए 32 कोर मशीन को 64 धागे दिए। मैं जीएम लैरी कॉफ़मैन (विश्व स्तरीय कंप्यूटर शतरंज विशेषज्ञ) का उद्धरण देता हूं:

http://talkchess.com/forum/viewtopic.php?p=741987&highlight=#741987

मैं मानता हूं कि परीक्षा निष्पक्ष थी; एसएफ को चोट पहुंचाने वाला एक और मुद्दा यह था कि यह जाहिरा तौर पर 32 कोर मशीन पर 64 थ्रेड्स पर चलता था, लेकिन यह उस मशीन पर सिर्फ 32 थ्रेड चलाने में ज्यादा बेहतर होगा, क्योंकि लगभग 5 से 3 मंदी की भरपाई करने के लिए लगभग कोई एसएमपी लाभ नहीं है। मेरे द्वारा लागत अनुपात भी अधिक था; मैं सोच रहा था कि यह एक 64 कोर मशीन थी, लेकिन एक 32 कोर मशीन की लागत लगभग आधी थी जो मैंने अनुमान लगाया था। तो शायद सभी 30 से 1 में सभी इतना बुरा नहीं है एक अनुमान है। दूसरी ओर मुझे लगता है कि आप इसे कम करके आंक सकते हैं कि इसे और बेहतर बनाया जा सकता है।

  • स्टॉकफिश ने केवल 1GB हैश टेबल दी। यह एक मजाक है ... मेरे पास मेरे iPhone पर मेरे स्टॉकफिश आईओएस ऐप (अस्वीकरण: मैं लेखक हूं) के लिए एक बड़ा हैश टेबल है ! टॉर्ड ने लिखा है:

    ... धागे की संख्या के लिए बहुत छोटी हैश टेबल ...

1GB हैश टेबल इस तरह से एक मैच के लिए बिल्कुल अस्वीकार्य है। स्टॉकफिश अक्सर हैश टक्कर का सामना करेंगे। पुरानी हैश प्रविष्टियों को बदलने के लिए सीपीयू चक्र लेता है।

  • स्टॉकफिश को कई थ्रेड्स के साथ चलाने के लिए डिज़ाइन नहीं किया गया है। मेरे iOS शतरंज ऐप में, केवल कुछ थ्रेड्स का उपयोग किया जाता है। टॉर्ड ने लिखा है:

... कहीं अधिक खोज धागे के साथ खेल रहा था कभी भी परीक्षण के किसी भी महत्वपूर्ण राशि प्राप्त की है ...

  • स्टॉकफिश बिना ओपनिंग बुक या 6-पीस सिज़्गी एंडगेम टेबलबेस के बिना चल रही थी। नमूने का आकार अपर्याप्त था। स्टॉकफिश संस्करण नवीनतम नहीं था। चर्चा यहाँ

निष्कर्ष

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


EDIT (दिसंबर 2017):

शतरंज में गहन सुदृढीकरण सीखने के लिए Google Deepmind ( https://arxiv.org/pdf/1712.01815.pdf ) का एक नया पेपर है । अमूर्त से, दुनिया का नंबर एक स्टॉकफिश शतरंज इंजन "कायल" था। मुझे लगता है कि 1997 के डीप ब्लू मैच के बाद से कंप्यूटर शतरंज में यह सबसे महत्वपूर्ण उपलब्धि है। एक बार विवरण में पेपर पढ़ने के बाद मैं अपना उत्तर अपडेट करूंगा।


मूल (दिसंबर 2017 से पहले)

आइए अपना प्रश्न स्पष्ट करें:

  • नहीं, शतरंज इंजन ब्रूट-बल का उपयोग नहीं करते हैं।
  • AlphaGo करता उपयोग पेड़ खोज, इसे इस्तेमाल करता है मोंटे कार्लो ट्री खोजें । यदि आप आश्वस्त होना चाहते हैं तो Google " मोंटे कार्लो ट्री सर्च अल्फ़ागो "।

ANN का उपयोग शतरंज इंजन के लिए किया जा सकता है:

क्या यह कार्यक्रम आज के शीर्ष शतरंज-इंजनों (और शतरंज खिलाड़ियों) से बेहतर प्रदर्शन करेगा?

जिराफ इंटरनेशन मास्टर स्तर पर खेलते हैं, जो कि फिडे 2400 रेटिंग के बारे में है। हालांकि, स्टॉकफिश, हौदिनी और कोमोडो सभी FIDE 3000 पर खेलते हैं। यह एक बड़ा अंतर है। क्यूं कर? मोंटे-कार्लो ट्री सर्च क्यों नहीं?

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

वहाँ अनुसंधान था कि मोंटे कार्लो ट्री सर्च शतरंज के लिए अच्छा नहीं है। शतरंज के लिए गो एक अलग खेल है। शतरंज एल्गोरिदम गो के लिए काम नहीं करता है क्योंकि शतरंज क्रूर रणनीति पर निर्भर करता है। शतरंज में रणनीति निश्चित रूप से अधिक महत्वपूर्ण है।

अब, हमने स्थापित किया है कि MCTS अल्फ़ागो के लिए अच्छी तरह से काम करती है लेकिन शतरंज के लिए कम है। गहरी शिक्षा अधिक उपयोगी होगी यदि:

  • ट्यून एनएन मूल्यांकन पारंपरिक एल्गोरिदम की तुलना में बेहतर है। हालांकि ... गहरी शिक्षा जादू नहीं है, आप प्रोग्रामर के रूप में अभी भी प्रोग्रामिंग करने की आवश्यकता होगी। जैसा कि उल्लेख किया गया है, शतरंज में ट्यूनिंग के मापदंडों के लिए हमारे पास एसपीएएस जैसा कुछ है।
  • निवेश, पैसा! शतरंज में मशीन सीखने के लिए बहुत पैसा नहीं है। स्टॉकफिश स्वतंत्र और खुला स्रोत है, लेकिन सभी मानव खिलाड़ियों को हराने के लिए पर्याप्त मजबूत है। अगर कोई सिर्फ स्टॉकफिश को मुफ्त में डाउनलोड कर सकता है तो गूगल लाखों खर्च क्यों करेगा? CPU क्लस्टर के लिए भुगतान क्यों किया जा रहा है? प्रतिभाओं के लिए भुगतान करने वाला कौन है? कोई भी ऐसा नहीं करना चाहता है, क्योंकि शतरंज को "हल" खेल माना जाता है।

यदि गहरी शिक्षा निम्नलिखित प्राप्त कर सकती है, तो यह पारंपरिक एल्गोरिथ्म को हरा देगी:

  • एक शतरंज की स्थिति को देखते हुए, यह एक मानव ग्रैंडमास्टर की तरह "महसूस" करता है। उदाहरण के लिए, एक मानव ग्रैंडमास्टर उन पंक्तियों में नहीं जाएगा जो खराब हैं - अनुभव से। न तो पारंपरिक एल्गोरिथ्म और न ही गहन शिक्षा वह हासिल कर सकती है। आपका NN मॉडल आपको आपकी स्थिति के लिए एक संभावना [0..1] दे सकता है, लेकिन यह पर्याप्त अच्छा नहीं है।

मुझे इंगित करें:

नहीं जिराफ़ (@Tim द्वारा पोस्ट किया गया लिंक) मोंटे कार्लो ट्री सर्च का उपयोग नहीं करता है। यह नियमित रूप से नेगा-अधिकतम एल्गोरिथ्म का उपयोग करता है। यह सब कुछ एनएन के साथ नियमित मूल्यांकन फ़ंक्शन को प्रतिस्थापित करता है, और यह बहुत धीमा है।

एक और:

हालांकि 1997 के मैच में कास्परोव को डीप ब्लू ने हराया था। "मानवता" वास्तव में 2003-2005 के आसपास खो गई थी, जब क्रैमनिक एक जीत के बिना डीप फ्रिट्ज़ से मैच हार गए और माइकल एडम्स एकतरफा मैच में क्लस्टर मशीन से हार गए। उस समय के आसपास, Rybka दुनिया के सर्वश्रेष्ठ खिलाड़ियों के लिए बहुत मजबूत साबित हुई।

संदर्भ:

http://www.talkchess.com/forum/viewtopic.php?t=64096&postdays=0&postorder=asc&highlight=alphago+chess&topic_view=flat&start=0

मैं उद्धृत करता हूं:

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


1
धन्यवाद। कुछ प्रश्न: शतरंज के इंजन अल्फा-बीटा एल्गोरिथ्म का उपयोग करते हैं, क्या यह "जानवर-बल"-एल्गोरिथम नहीं है? क्या "मोंटे कार्लो ट्री सर्च" का मतलब है कि कोई व्यक्ति वर्तमान स्थिति से कई कदम आगे है?
लिजस

1
@ लिजस "ब्रूट-फोर्स" को आमतौर पर सभी संभावनाओं की खोज के रूप में परिभाषित किया जाता है। शतरंज इंजन ऐसा नहीं करते हैं।
स्मॉलचेयर

7
@ लिजस आपने सिर्फ सवाल का जवाब दिया। मैट्रिक्स गुणन एक धीमा संचालन है।
स्मॉलचेयर

3
अल्फा बीटा खोज सुनिश्चित करता है कि "ब्रूट फॉरस्किश" है। एआई ट्रेंड्स पर हैंस बर्लिनर: "मैं मानता हूं कि सबसे महत्वपूर्ण प्रवृत्ति यह थी कि इन पिछले 50 वर्षों में कंप्यूटर काफी तेजी से बढ़े। इस प्रक्रिया में, हमने पाया कि कई चीजें जिनके लिए हमारे पास सबसे अच्छा मानवविषयक समाधान था, जो कि कई मामलों में कैप्चर करने में विफल रहे। एक मानव पद्धति का वास्तविक सार, अधिक पाशविक तरीकों से किया जा सकता है जो केवल एक संतोषजनक समाधान पाए जाने तक गणना की गई थी। यदि यह विधर्म है, तो यह हो। " (देखें ieeexplore.ieee.org/document/820322/?reload=true )
डैनियल लिडस्ट्रॉम

1
@smallchess अल्फा बीटा डी वास्तव खोज एल्गोरिथ्म है, यहां तक ​​कि यह नेस्काउट जैसे वेरिएंट हैं जो केवल वृद्धिशील सुधार हैं। वह और क्या जिक्र कर सकता है? डीप लर्निंग सिस्टम आने से पहले यह अच्छी तरह से लिखा गया था।
डैनियल लिडस्ट्रॉम

6

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

मुझे लगता है कि इसका कारण यह है कि आप अक्सर मुख्यधारा के मीडिया में उन मामलों के बारे में नहीं सुनते हैं जब लोग उन समस्याओं को हल करते हैं जो पहले से ही हल थीं।

इसके अलावा आपका आधार गलत है, डीप लर्निंग का उपयोग शतरंज खेलने के लिए किया जाता है, जैसे कि डीप लर्निंग मशीन टीचर्स खुद को 72 घंटों में शतरंज सिखाती है, अंतर्राष्ट्रीय मास्टर स्तर पर खेलती है । इसी पेपर को भी देखें, जिराफ: शतरंज खेलने के लिए गहन सुदृढीकरण सीखने का उपयोग करना


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

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

1
@ rus9384 यह आसान नहीं है, लेकिन हमने पहले से ही इसे "हल" कर दिया है, डीप ब्लू ने कास्परोव को पीटा है, हमारे पास हमारे काले हंस हैं जो शतरंज ट्यूरिंग टेस्ट पास कर चुके हैं।
टिम

5
एकांत खेल एक और बात है: हमें पता नहीं है कि क्या सही खेल काले / सफेद या ड्रा द्वारा समाप्त होने की गारंटी देता है।
rus9384

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