ฉันคิดว่ามันจะดีที่สุดถ้าฉันอธิบายอย่างละเอียดในประเด็นที่สองของคุณด้วยตัวอย่างการย้ายในเกมที่ 1 ระหว่าง AlphaZero และ Stockfish ซึ่งทำหน้าที่ตอบสนองความอยากรู้ของฉันในวันนี้
จำกัด เวลา 1 นาที / การย้าย (Stockfish จะเสียเปรียบอย่างไร?)
ประสิทธิภาพของสต็อคฟิชนั้นขึ้นอยู่กับการ จำกัด เวลาและการกำหนดค่าฮาร์ดแวร์ดังนั้นให้คิดว่าเมื่อมีคนเพิ่มเธรดซีพียูเป็นสองเท่าดังนั้นสต็อคฟิชจึงใช้เวลาน้อยลง (ไม่จำเป็นต้องครึ่งหนึ่ง) ในการค้นหาโซลูชัน
ในรายงานแรกที่โพสต์บน Chess.comมีคนอ้างว่า Stockfish ไม่เล่นอย่างเหมาะสมเพราะเขาไม่สามารถทำซ้ำผลลัพธ์เดียวกันโดยใช้ Stockfish เดียวกันบนคอมพิวเตอร์ของเขา เขาบอกว่าในตำแหน่งด้านล่าง (เกมที่ 1 - ย้าย 11) สต็อคฟิชเล่น Kg1-h1 (ย้ายราชา) ซึ่งไม่สมเหตุสมผลเลย ในทางกลับกัน stockfish ในคอมพิวเตอร์ของเขาแสดงท่าทีที่พัฒนามากขึ้นเช่น Be3 (ย้ายบิชอปสแควร์เข้ม) มาดูที่ตำแหน่ง:
ใช่มันเป็นการเคลื่อนไหวแบบพาสซีฟและดูเหมือนว่าสต็อคฟิชน่าจะเล่นได้ดีกว่า แต่เขาผิด ทำไม? เพราะเขาวิ่งสต็อกฟิชเป็นเวลา 15 วินาทีและถ้าเขาวิ่งเป็นเวลาหนึ่งชั่วโมงเขาจะได้รับ Kg1-h1 เป็นท่าที่ดีที่สุดในตำแหน่งนั้น การเปลี่ยนแปลงสต็อคฟิชเป็นการตัดสินใจเมื่อวิเคราะห์การเคลื่อนไหวที่เป็นไปได้ทั้งหมดในเชิงลึก นี่คือสิ่งที่ฉันพูดไว้ในคำตอบของฉัน :
ฉันวิ่ง stockfish ล่าสุดที่ตำแหน่ง (ที่ย้าย 11):
- ตอนแรกมันให้ b4 เป็นการเคลื่อนที่ที่ดีที่สุดเมื่อเครื่องยนต์ทำงานเป็นเวลาประมาณหนึ่งนาที หลังจากนั้น Be3 จะตัดสินว่าดีกว่า
แต่หลังจาก 5 นาทีบนฮาร์ดแวร์ของฉันที่ทำงานบน 1,400k nodes / s มันจะตัดสินใจใช้ Kh1 เป็นการเคลื่อนไหวที่ดีที่สุด
ในกระดาษมีการกล่าวว่า stockfish คำนวณตำแหน่ง 70,000k ต่อวินาทีและทำงานเป็นเวลา 1 นาทีต่อการเคลื่อนไหวนั่นคือประมาณ 50 เท่าของฮาร์ดแวร์ของฉันดังนั้นฉันจะปล่อยให้ฉันทำงานเป็นเวลา 50 นาที ... Kg1-h1 ยังคงเป็น ทางเลือกสำหรับ Stockfish
การ จำกัด เวลาเป็นกุญแจสำคัญ
ในกรณีข้างต้นมันอาจไม่สำคัญหาก Stockfish วิ่งสองครั้งเพราะการตัดสินใจจะเหมือนกัน แต่ในการย้ายครั้งต่อไปแน่นอน :
ในตำแหน่งนี้ Stockfish เลือกที่จะย้ายจำนำทางด้านซ้าย ( a4-a5 ) สมมติว่าฉันมีคอมพิวเตอร์ที่รันเอ็นจิ้น Stockfish ที่ความเร็ว 1,400 โหนดต่อวินาทีนั่นคือต่ำกว่า Stockfish ในเกมจริงประมาณ 50 เท่า ( ในกระดาษมันบอกว่า 70,000 kn / s) ดังนั้นฉันสามารถจำลองเกมได้ถ้าฉันวิ่งเป็นเวลา 50 นาทีในแต่ละการเคลื่อนไหว ถูก
ฉันทำการวิเคราะห์สต็อคฟิชที่ตำแหน่งด้านบนและได้ผลลัพธ์ดังต่อไปนี้:
- Stockfish เริ่มต้นจากการแนะนำการเคลื่อนไหวบางอย่าง แต่หลังจาก 6 นาทีบนคอมพิวเตอร์ของฉัน (สอดคล้องกับ7.2 วินาทีใน Stockfish ในเกมจริง) มันแนะนำ A4-A5 เช่นเดียวกับเกมไป
นั่นเป็นเรื่องดี แต่ฉันยังคงทำงานต่อไปเป็นเวลา 50 นาทีเพื่อให้ได้การคำนวณของ Stockfish ในเกมที่ได้รับอนุญาต 1 นาที:
ความจริงที่น่าเศร้าคือฉันเชื่อว่า Stockfish สูญเสียทุกเกมเนื่องจากมีเวลา จำกัด สต็อคฟิชได้รับการค้นหาและประเมินผลเชิงลึกมากขึ้นเมื่อเวลาผ่านไปและในเกมไม่อนุญาตให้ใช้หนังสือเปิดซึ่งทำให้มันพิจารณาการเคลื่อนไหวจำนวนมากในระดับความลึกตื้น โปรดทราบว่าในการเล่นเกมa4-a5 ที่เกิดขึ้นจริงซึ่งแสดงให้เห็นว่า (สมมติว่าสามารถประเมินได้ 70 ล้านตำแหน่งต่อวินาที) Stockfish ในเกมไม่ได้ใช้เวลามากกว่า 21.6 วินาทีในการย้าย มิฉะนั้นมันจะเปลี่ยนการตัดสินใจของพวกเขาเป็นอีกสามการเคลื่อนไหวในเกมจริง เหตุผลของเรื่องนี้ยังไม่ชัดเจนสำหรับฉันเนื่องจาก Stockfish ของฉันยังใช้หน่วยความจำน้อยกว่า (ประมาณ 130MB ของ RAM เมื่อเทียบกับ 1GB ที่กล่าวถึงในเอกสารต้นฉบับโดยสมมติว่ามันเป็นตารางแฮช)
ข้อสรุป
ฮาร์ดแวร์ที่วิ่ง Stockfish อย่างที่ฉันชี้ให้เห็นนั้นดีที่สุดเร็วกว่าของฉันถึง 18 เท่า (อัปเดต: แกนเดียว) ตามการเคลื่อนไหวที่ฉันวิเคราะห์ ฉันไม่แน่ใจว่า AlphaZero สามารถใช้ฮาร์ดแวร์ดังกล่าวเพื่อฝึกอบรมเครือข่ายได้ใน 4 ชั่วโมงหรือไม่ฉันสามารถคิดได้ว่ามันต่ำเกินไปสำหรับเกมอย่างหมากรุก นอกจากนี้อัลฟ่าซีโรยังใช้เวลาในการเรียนรู้ซึ่งรวมถึงการสร้างช่องเปิดที่มั่นคง ในทางกลับกัน Stockfish นั้นเป็นคนพิการในการเปิดและมันไม่ได้ประเมิน 70 ล้านตำแหน่งต่อวินาทีเป็นเวลา 60 วินาทีในการย้ายแต่ละครั้ง
ในท้ายที่สุดทุกสิ่งที่ฉันพูดนั้นขึ้นอยู่กับสมมติฐานของฉัน แน่นอนผลลัพธ์ของ AlphaZero และเกมนั้นน่าสนใจมากสำหรับฉัน อย่างไรก็ตามฉันชอบที่จะดูเกมที่การเล่น Stockfish เหมือนกับสิ่งที่ฉันได้รับในคอมพิวเตอร์ของฉันเช่นกัน นั่นคือเวลามากขึ้นและอนุญาตให้เปิดหนังสือ นอกจากนี้ยังง่ายต่อการรับผลการวิเคราะห์สต็อคฟิชในทุกการเคลื่อนไหวและฉันหวังว่าพวกเขาจะปล่อยมันออกมาเพื่อแสดงว่ามันทำงานได้ดีเพียงใด