ทำไม NN + MCTS & AB + eval จึงทำให้เอนจิ้นหมากรุกครองเครื่องยนต์?


14

ตามที่ฉันเข้าใจแล้วเครื่องยนต์สามารถแบ่งออกเป็นสี่กลุ่มในขณะนี้: กลุ่มที่ใช้ Alpha-beta (AB) + กลุ่มที่ใช้ Monte Carlo Tree Search (MCTS) สำหรับการค้นหาและกลุ่มที่ใช้ฟังก์ชั่นที่เขียนด้วยลายมือ + กลุ่มที่ใช้โครงข่ายประสาทเทียม EVAL สองเครื่องยนต์ที่แข็งแกร่งที่สุดคือลีลาและสต็อคฟิช Leela ใช้ MCTS + NN ในขณะที่ Stockfish ใช้ AB + ที่เขียนด้วยลายมือ

ทำไมทั้งสองชุดรวมกัน? ทำไมไม่เขียนด้วยลายมือ NN + AB หรือ MCTS + หาก MCTS ดีกว่า AB ทำไม Komodo MCTS ถึงไม่แข็งแกร่งกว่า Komodo AB ถ้า AB ดีกว่า MCTS เหตุใด Leela จึงใช้ AB แทนไม่ได้


เพียงแค่การเก็งกำไร: NN เป็นตัวจดจำรูปแบบ เนื่องจาก MCTS ใช้เครือข่ายที่กว้างขึ้นจึงมีแนวโน้มที่จะพบกับรูปแบบที่ NN ได้รับการฝึกฝนให้รู้จักว่าดีหรือไม่ดี
John Coleman

คำตอบ:


12

ความเร็ว

โครงข่ายประสาทเทียมทำงานได้ช้ากว่าฟังก์ชั่นการประเมินแบบทำด้วยมือ ในTCEC Superfinal , Leela Chess Zero ซึ่งทำงานบน GPU สองตัวโดยแต่ละตัวมีเทนเซอร์คอร์เฉพาะสามารถค้นหาตำแหน่งได้ประมาณ 60,000 ตำแหน่งต่อวินาที ในทางตรงกันข้าม Stockfish บนแกนเดียวบนพีซีของฉันค้นหามากกว่า 2 ล้านตำแหน่งต่อวินาที

ในขณะที่เครื่องยนต์สมัยใหม่มีเทคนิคมากมายให้เลือกเพื่อตัดกิ่งที่ไม่จำเป็นออกไปการค้นหาต้นไม้อัลฟ่า - เบต้ายังคงเป็นเทคนิคที่โหดเหี้ยมมาก

ในทางตรงกันข้าม MCTS นั้นเลือกได้มากกว่าและขยายเฉพาะแผนผังการค้นหาไปสู่การเคลื่อนไหวที่มีแนวโน้มมากที่สุดเท่านั้นซึ่งทำให้สามารถใช้จำนวนโหนดที่ จำกัด ที่สุดที่สามารถค้นหาได้มากที่สุด

พฤติกรรมกรณีที่เลวร้ายที่สุด

หนึ่งในความต้องการที่สำคัญของฟังก์ชั่นการประเมินผลสำหรับเครื่องยนต์ตามรอบการค้นหาอัลฟาเบต้าคือว่ามันจะต้องมีพฤติกรรมที่ดีเลวร้ายที่สุดกรณี นี่เป็นเพราะข้อผิดพลาดขนาดใหญ่ในการประเมินผล แต่หายากสามารถแพร่กระจายไปยังรากและนำไปสู่การเล่นที่ไม่ถูกต้องอย่างน่ากลัว

โดยธรรมชาติของความซับซ้อนของพวกเขาเครือข่ายประสาทมีแนวโน้มที่จะ overfitting และสามารถทำได้ดีเท่าข้อมูลที่ใช้ในการฝึกอบรมพวกเขา ยกตัวอย่างเช่นในการแข่งขัน 80 ของ TCEC ซีซั่น 14 Superfinalเมื่อเดินทาง 47 Lc0 ดูเหมือนจะไม่สะทกสะท้านกับราชินีพิเศษของสต็อคฟิชประเมินตำแหน่งในขณะที่เย็นตัวลง +0.77 ในขณะที่สต็อคฟิช (และเครื่องมืออื่น ๆ ส่วนใหญ่) คำอธิบายที่เป็นที่นิยมสำหรับสิ่งนี้คือ Lc0 อาจไม่มีเกมจำนวนมากที่มีหลายควีนส์บนกระดานในชุดฝึกอบรม

ดังนั้นโครงข่ายใยประสาทเทียมจึงมีพฤติกรรมที่แย่ที่สุดและมีแนวโน้มที่จะทำงานได้ไม่ดีเมื่อค้นหาด้วยอัลฟาเบต้า ในทางตรงกันข้าม MCTS อนุญาตให้มีการให้คะแนนที่ไม่ถูกต้องในตำแหน่งหนึ่งเพื่อชดเชยด้วยคะแนนเฉลี่ยที่เหมาะสมกับตำแหน่งที่อยู่ในการค้นหา

ความสงบ

เอ็นจิ้นอัลฟาเบต้าที่แข็งแกร่งทั้งหมดใช้เทคนิคที่เรียกว่าการค้นหา quiescenceซึ่งเป็นรูปแบบที่ จำกัด ของการค้นหาอัลฟาเบต้าที่ใช้กับโหนดโหนดเพื่อรับทราบว่าฟังก์ชั่นการประเมินแบบ handcrafted ทำงานได้ดีในตำแหน่ง "เงียบ" เท่านั้น .

ตัวอย่างเช่นทันทีหลังจากครึ่งแรกของการแลกเปลี่ยนราชินีฟังก์ชันการประเมินแบบ handcrafted อาจบอกคุณว่าด้านที่เพิ่งเอาราชินีของพวกเขาไปนั้นหายไปโดยสิ้นเชิงในขณะที่เครือข่ายประสาทอาจเข้าใจได้ว่าราชินีจะถูกยึดกลับคืนในไม่ช้า

นี้จะทำให้ในแบบฉบับที่ฟังก์ชั่นการประเมินผลในทำนองเดียวกันที่ไม่เหมาะสมสำหรับ MCTS เนื่องจากขาดของการค้นหาความสงบที่เกิดขึ้นในฟังก์ชั่นในแบบฉบับที่มีประสิทธิภาพไม่ดีมากเวลา (แม้ว่าโคโมโด 12 MCTS รับรอบข้อ จำกัด นี้โดยใช้การค้นหาอัลฟาเบต้าสั้นอยู่แล้วที่จะได้รับตำแหน่งนิ่งและ จึงอนุญาตให้การประเมินผลในแบบฉบับเพื่อให้คะแนนที่เหมาะสม


2

AB และ MCTS ไม่จำเป็นต้องดีไปกว่าการทำบุญด้วยตนเอง เป็นเพียงแค่ว่าพวกเขาเป็นอัลกอริทึมการค้นหาที่แตกต่างกันซึ่งทำงานได้ดีขึ้นกับรากฐานที่แตกต่างกัน สำหรับ NN นั้น MCTS ทำงานได้ดีเพราะช่วยให้เครื่องยนต์สำรวจสาขาที่ทำได้ดีขึ้น สิ่งนี้ทำให้เครื่องยนต์มีอิสระมากขึ้นในการดูสิ่งที่ "ต้องการ"

ในขณะเดียวกันกับ AB ทุกสาขาในหลักการจะต้องดู นี่เป็นเพราะถึงแม้จะมีการย้ำลึกเครื่องยนต์ซ้ำแล้วซ้ำอีกมองไปที่แต่ละสาขาในแต่ละรอบ ดังนั้นจึงไม่รู้ว่าสาขาใดสาขาหนึ่งชนะด้านใดด้านหนึ่งอย่างแท้จริงแม้ว่าจะดูเหมือนว่าแพ้ในระดับความลึกที่ จำกัด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.