Choose Language
language choose
language choose
language choose
language choose
language choose
language choose
language choose
language choose
language choose
language choose
language choose
language choose
language choose
language choose
language choose
Abak Logo
Reinforcment Learning के साथ Abak Evolution खेलना
Reinforcment learnging ने AI में सबके लिए खेल बदल दिया है। मैंने इसका उपयोग Abak के neural network को train करने के लिए किया, और परिणाम शानदार रहे।

2018 में, Google ने अपने AlphaGo Neural Network से GO Champion को हरा दिया, और बहुत हलचल मच गई। नई उत्कृष्ट open-source Machine Learning libraries उपलब्ध हो गईं, जो training process को तेज करने के लिए home GPUs का उपयोग करती थीं।

मैंने निर्णय लिया कि मैं इसे Abak के साथ करने की कोशिश करूँगा, लेकिन जब मैंने शुरुआत की, तब मुझे मुश्किल से पता था कि neural network क्या होता है। कॉलेज (1996) में मुझे थोड़ी जिज्ञासा हुई थी, लेकिन data, GPU और लक्ष्य की कमी के कारण यह विषय बहुत कठिन लगा। और फिर: गणितीय दृष्टि से Neural Networks एक भारी विषय है, और आपको बहुत प्रेरणा चाहिए।

बहुत गहन और जुनूनी शोध के बाद, मैं एक model बना सका और उसे सीखने योग्य बना सका।

महान लोगों के कंधों पर खड़े होकर, मेरी पहली कोशिश Dr. Gerald Tesauro से सीखने की थी, जिन्होंने 90 के दशक में TD-Gammon विकसित किया। यदि मुझे सही याद है, तो यह reinforcement learning algorithm का पहला व्यावहारिक implementation था।

लेकिन क्योंकि Abak दो-आयामी खेल है, मैं प्रस्तावित model का उपयोग नहीं कर सकता था और मुझे अपना model विकसित करना पड़ा। मैंने तय किया कि कुछ algorithms के output को model का हिस्सा, expert information के रूप में उपयोग करूँ, ताकि NN के लिए learning process आसान हो। यह करते हुए मुझे थोड़ा cheating जैसा लगा।

यहाँ दोनों models, Backgammon और Abak, की तुलना है।

Backgammon Model

Backgammon का व्यापक रूप से उपयोग किया जाने वाला TD model columns का वर्णन करता है। बोर्ड के हर column के लिए उसे वर्णित करने हेतु 4 inputs उपयोग किए जाते हैं।

  • कोई checker नहीं: [0,0,0,0]
  • एक checker: [1,0,0,0]
  • दो checkers: [1,1,0,0],
  • तीन checkers: [1,1,1,0]
  • तीन से अधिक checkers: [1,1,1,1].

इसमें 28 ऐसे sets होते हैं (बोर्ड के प्रति column एक) जो हर team का प्रतिनिधित्व करते हैं, यानी कुल 28*2*4 inputs, और bar पर checkers गिनने के लिए कुछ अतिरिक्त inputs भी। दुर्भाग्यवश, मैं यह स्मृति से लिख रहा हूँ, इसलिए यह पूरी तरह सटीक न भी हो सकता है।

Abak Evolution Model

Abak का model बहुत अलग है। यह checkers का वर्णन करता है, और हर checker के पास features का एक set होता है। नए versions में मैंने पूरक के रूप में board का एक सरल वर्णन भी जोड़ा था, जिसके परिणाम असाधारण नहीं थे, लेकिन वे features अब भी मौजूद हैं।

game description model के चार भाग हैं [477 inputs]:

  • Checkers Description (14x30): इस वर्णन में checker के stats, distance, height आदि शामिल हैं। इसमें class शामिल नहीं है, क्योंकि वह model में उसकी position से inherit होती है।
  • Team Status (4x2): कुछ checker या status features की गिनती।
  • Map of strength (24x2).
  • Game status: अगला कौन roll करेगा! (1).

आप नीचे model का पूरा विवरण देख सकते हैं।

Versions:

1.- Python Cumpy (TD-V1).

इस AI का पहला version pure Python में Cumpy का उपयोग करके train किया गया था, जो Numpy जैसी library है और GPU पर चलती है। मैं चीज़ें शुरुआत से सीखना चाहता था, इसलिए Tensorflow के साथ कुछ समय खेलने के बावजूद, मैंने nude जाने का फैसला किया (खैर, शानदार Python और Cumpy जोड़ी से लैस होकर)।

Features:

  • एक network जो team 0 के खेल जीतने की संभावना का अनुमान लगाता है।
  • points के प्रति अनभिज्ञ।
  • इसमें "who rolls next" flag नहीं था।
  • इसमें strength map नहीं था
  • एक hidden layer, sigmoid activators के साथ।
  • मेरे पिछले AI को, जो expert information (GOAFI) के साथ लिखा गया था, हराने में 45.000 games लगे।
  • 4.500.000 games तक सीखा। और GOFAI के खिलाफ 75% मामलों में जीता।
  • यह 2 साल तक production में रहा।

2.- Tensorflow (TD-V2).

Version 1 के साथ मेरी तकलीफ यह थी कि वह जीत की संभावना अच्छी तरह नहीं निकाल पाता था, क्योंकि उसे "who rolls next" flag के बिना train किया गया था। किसी तरह NN के परिणाम अच्छी move चुनने के लिए काफी अच्छे थे, लेकिन गणितीय रूप से वे संगत नहीं थे। Version 2 ने यह समस्या हल की और खेल के 1, 2, या 3 points पर समाप्त होने की संभावनाएँ निकालने के लिए एक नया network भी जोड़ा।

इस बार नए model को train करने के लिए मैंने tensor flow चुना, क्योंकि मैं एक framework सीखना चाहता था, और मुझे शुरुआत के लिए इसका एक उत्कृष्ट उदाहरण मिला।

Features:

  • एक network जो team 0 के खेल जीतने की संभावना निकालता है।
  • एक network जो खेल के 1, 2, या 3 points पर समाप्त होने की probability निकालता है।
  • नया strength map शामिल है।
  • दो hidden layers, अलग activators के साथ: hidden layers के लिए Leaky RELU और output layer में sigmoid।
  • TD-V1 के खिलाफ 50% समय जीतने के लिए 12.000 games लगे।
  • 350.000 games तक सीखा और TD-V1 के खिलाफ 80% जीत दर तक पहुँचा।

3.- Version 3: फिलहाल रुका हुआ।

सबसे अच्छी चाल चुनने की decision-making की अंतिम कड़ी में एक सरल algorithm है, जो सर्वोत्तम Equity [%W*%p1+%W*%p2+%W*%p3] खोजता है।

match के लक्ष्य, हर खिलाड़ी को जीतने के लिए चाहिए points की संख्या, और cube value के आधार पर यह networks के output को अलग-अलग भार देता है।

मैं चाहता हूँ कि इसके लिए एक NN बने। वही V3 होगा। अभी विकास में नहीं है।

Abak का Neural Network Model:

Checker Description (14 inputs x 30 checkers ) :

  • home तक दूरी
    x/25
  • ऊपर मौजूद checkers की संख्या
    x/4
  • नीचे मौजूद checkers की संख्या
    x/4
  • bar में है
    [0,1]
  • home में है
    [0,1]
  • सुरक्षित है (distance = 0 पर)।
    [0,1]
  • क्या यह किसी दूसरे checker के साथ block बना रहा है
    [0,1]
  • क्या druid इसे trap कर सकता है
    [0,1]
  • क्या यह druid द्वारा trapped है
    [0,1]
  • क्या यह trap कर रहा है (यह input केवल हर druid के लिए है)
    [0,1]
  • निकट क्षेत्र में hit होने का जोखिम (6 positions आगे)
    [0..1]
  • दूर क्षेत्र में hit होने का जोखिम (12 positions आगे)
    [0..1]
  • druid द्वारा trap होने का जोखिम
    [0..1]
  • movement की संभावनाएँ
    [0..1]

हर team के लिए game-related input (4x2):

  • bar में checkers की संख्या।
    x/15
  • Safe checkers की संख्या।
    x/15
  • सभी checkers home में हैं।
    [0,1]
  • safe checkers 0 की संख्या।
    [0,1]

Strength Map: (24*2):

अंत में, force का एक map, कुछ वैसा जैसा Doctor Tessauros ने Backgammon के लिए प्रस्तावित किया था, लेकिन सरल रूप में। हर position और हर team के लिए इसमें 0 और 1 के बीच एक संख्या होती है, जो बताती है कि वह block कितना मजबूत है:

  • 0.0
    यदि खाली हो।
  • 0.1
    यदि वहाँ एक checker हो।
  • 0.5
    यदि वह checker guard हो।
  • 1.0
    यदि वहाँ दो या अधिक checkers हों।

Abak Evolution Backgammon एक शानदार class-based Backgammon variant है, जो सचमुच इस classical board game में एक नया आयाम जोड़ता है।