แก้ไข (หลังจากอ่านกระดาษ):
ฉันอ่านกระดาษอย่างตั้งใจ เริ่มต้นด้วยสิ่งที่ Google อ้างสิทธิ์ในเอกสาร:
- พวกเขาพ่ายแพ้ Stockfish กับ Monte-Carlo-Tree-Search + เครือข่ายประสาทลึก
- การแข่งขันนั้นเป็นฝ่ายเดียวที่ชนะ AlphaZero แต่ไม่มีใน Stockfish
- พวกเขาสามารถทำได้ภายในสี่ชั่วโมง
- AlphaZero เล่นเหมือนมนุษย์
น่าเสียดายที่ฉันไม่คิดว่ามันเป็นวารสารที่ดี ฉันจะอธิบายด้วยลิงก์ (เพื่อให้คุณรู้ว่าฉันไม่ได้ฝัน):
https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author
ผลการแข่งขันด้วยตนเองนั้นไม่มีความหมายมากนักเนื่องจากมีตัวเลือกการควบคุมเวลาและการตั้งค่าพารามิเตอร์ Stockfish ค่อนข้างแปลก: เกมดังกล่าวเล่นในเวลาที่กำหนด 1 นาทีต่อการเคลื่อนไหวซึ่งหมายความว่า Stockfish ไม่มีการจัดการพฤติกรรมการจัดการเวลา ( มีการใช้ความพยายามอย่างมากในการทำให้ Stockfish ระบุจุดวิกฤติในเกมและตัดสินใจว่าจะใช้เวลาพิเศษในการย้ายอย่างไรในเวลาที่กำหนดต่อการเคลื่อนไหวความแข็งแกร่งจะประสบอย่างมาก)
สต็อคฟิชไม่สามารถเล่นหมากรุกที่ดีที่สุดด้วยการเดินเพียงนาทีเดียว โปรแกรมไม่ได้ถูกออกแบบมาสำหรับสิ่งนั้น
- Stockfish ทำงานบนเครื่องเชิงพาณิชย์ทั่วไปในขณะที่ AlphaZero อยู่บนเครื่อง 4 ล้านเครื่อง + TPU ที่ปรับให้ AlphaZero นี่เป็นเหมือนการจับคู่เดสก์ท็อประดับสูงของคุณกับโทรศัพท์ Android ราคาถูก Tord เขียนว่า:
หนึ่งคือโปรแกรมหมากรุกทั่วไปที่ใช้งานบนคอมพิวเตอร์ทั่วไปส่วนอีกเครื่องใช้เทคนิคที่แตกต่างกันโดยพื้นฐานและใช้ฮาร์ดแวร์ที่ออกแบบเองซึ่งไม่สามารถซื้อได้
- Google ได้ให้เธรด 64 เธรดไปยังเครื่องหลัก 32 รายการสำหรับ Stockfish ฉันพูด GM Larry Kaufman (ผู้เชี่ยวชาญด้านหมากรุกคอมพิวเตอร์ระดับโลก):
http://talkchess.com/forum/viewtopic.php?p=741987&highlight=#741987
ฉันเห็นด้วยว่าการทดสอบนั้นไม่ยุติธรรม ปัญหาอีกประการหนึ่งที่ทำให้ SF เสียหายคือเห็นได้ชัดว่ามันทำงานบน 64 เธรดบนเครื่อง 32 คอร์ แต่มันจะเล่นได้ดีกว่าการรันเพียงแค่ 32 เธรดบนเครื่องนั้นเนื่องจากแทบจะไม่มีประโยชน์ใด ๆ ของ SMP นอกจากนี้อัตราส่วนต้นทุนก็มากกว่าที่ฉันพูด ฉันคิดว่ามันเป็นเครื่อง 64 คอร์ แต่เครื่อง 32 แกนมีค่าใช้จ่ายประมาณครึ่งหนึ่งที่ฉันเดาได้ ดังนั้นทั้งหมดใน 30 ต่อ 1 อาจไม่ดีนัก ในทางกลับกันฉันคิดว่าคุณดูถูกดูแคลนว่าจะสามารถปรับปรุงให้ดีขึ้นได้อีกมากเพียงใด
- สต็อคฟิชให้ตารางแฮชเพียง 1GB นี่เป็นเรื่องตลก ... ฉันมีตารางแฮชที่ใหญ่กว่าสำหรับแอป Stockfish iOSของฉัน(คำเตือน: ฉันเป็นผู้แต่ง) บน iPhone ของฉัน! Tord เขียนว่า:
... ทางตารางแฮชมีขนาดเล็กเกินไปสำหรับจำนวนเธรด ...
ตารางแฮช 1GB นั้นไม่สามารถยอมรับได้สำหรับการแข่งขันเช่นนี้ Stockfish มักจะพบการชนกันของแฮช ใช้รอบ CPU เพื่อแทนที่รายการแฮชเก่า
- สต็อคฟิชไม่ได้ออกแบบมาเพื่อใช้กับเธรดจำนวนมาก ในแอพหมากรุก iOS ของฉันใช้เพียงไม่กี่กระทู้ Tord เขียนว่า:
... กำลังเล่นกับเธรดการค้นหามากกว่าที่เคยได้รับจำนวนมากของการทดสอบ ...
- สต็อคฟิชทำงานโดยไม่มีสมุดบันทึกเปิดหรือฐานข้อมูลสำหรับวางท้ายโต๊ะแบบ Syzygy 6 ชิ้น ขนาดตัวอย่างไม่เพียงพอ เวอร์ชั่น Stockfish ไม่ใช่เวอร์ชั่นล่าสุด การอภิปรายที่นี่
สรุปผลการศึกษา
Google ไม่ได้พิสูจน์โดยไม่ต้องสงสัยว่าวิธีการของพวกเขาเหนือกว่า Stockfish ตัวเลขของพวกเขานั้นตื้นและมีความเอนเอียงอย่างยิ่งต่อ AlphaZero วิธีการของพวกเขาไม่สามารถทำซ้ำได้โดยบุคคลที่สามที่เป็นอิสระ มันยังเร็วไปที่จะบอกว่า Deep Learning เป็นวิธีที่เหนือกว่าในการเขียนโปรแกรมหมากรุกแบบดั้งเดิม
แก้ไข (ธันวาคม 2017):
มีกระดาษใหม่จาก Google Deepmind ( https://arxiv.org/pdf/1712.01815.pdf ) สำหรับการเรียนรู้การเสริมแรงในหมากรุก จากนามธรรมเครื่องมือหมากรุก Stockfish อันดับหนึ่งของโลกก็พ่ายแพ้ ฉันคิดว่านี่เป็นความสำเร็จที่สำคัญที่สุดในหมากรุกคอมพิวเตอร์ตั้งแต่การแข่งขัน Deep Blue ปี 1997 ฉันจะอัปเดตคำตอบเมื่ออ่านรายละเอียด
ต้นฉบับ (ก่อนธันวาคม 2017)
มาอธิบายคำถามของคุณกันดีกว่า:
- ไม่เครื่องมือหมากรุกไม่ใช้กำลังดุร้าย
- AlphaGo ไม่ค้นหาใช้ต้นไม้จะใช้Monte Carlo ต้นไม้ค้นหา Google " ค้นหาต้นไม้มอนติคาร์โล alphaGo " หากคุณต้องการที่จะมั่นใจ
ANN สามารถใช้สำหรับเอ็นจิ้นหมากรุก:
โปรแกรมนี้จะทำงานได้ดีกว่าโปรแกรมหมากรุกชั้นนำ (และผู้เล่นหมากรุก) ในปัจจุบันหรือไม่?
ยีราฟเล่นที่ระดับ Internation Master ซึ่งอยู่ในระดับ FIDE 2400 อย่างไรก็ตาม Stockfish, Houdini และ Komodo ต่างก็เล่นกันที่ FIDE 3000 นี่เป็นช่องว่างขนาดใหญ่ ทำไม? ทำไมไม่ลองค้นหา Monte-Carlo Tree ล่ะ?
- วัสดุฮิวริสติกในหมากรุกนั้นง่าย ส่วนใหญ่แล้วตำแหน่งหมากรุกจะชนะ / แพ้โดยการนับจำนวนวัสดุบนกระดาน โปรดจำข้อมูลการนับวัสดุที่ใช้ไม่ได้สำหรับ Go การนับวัสดุเป็นคำสั่งที่มีขนาดเร็วกว่าการรันโครงข่ายประสาทเทียมซึ่งสามารถทำได้โดย bitboards ที่แสดงด้วยจำนวนเต็ม 64 บิต บนระบบ 64 บิตสามารถทำได้โดยคำสั่งเครื่องหลาย ๆ คำสั่งเท่านั้น การค้นหาด้วยอัลกอริทึมแบบดั้งเดิมนั้นเร็วกว่าการเรียนรู้ของเครื่อง โหนดที่สูงขึ้นต่อวินาทีแปลเป็นการค้นหาที่ลึกกว่า
- ในทำนองเดียวกันมีเทคนิคที่มีประโยชน์มากและราคาถูกเช่นการตัดค่าโมฆะการย้ายแบบโมฆะการลดแบบช้าและการเคลื่อนไหวของนักฆ่าเป็นต้นพวกมันราคาถูกในการวิ่งและมีประสิทธิภาพมากสำหรับวิธีการที่ใช้ใน AlphaGo
- การประเมินแบบสแตติกในหมากรุกนั้นรวดเร็วและมีประโยชน์
- การเรียนรู้ของเครื่องมีประโยชน์สำหรับการปรับพารามิเตอร์ให้เหมาะสม แต่เรายังมี SPSA และ CLOP สำหรับหมากรุกด้วย
- มีตัวชี้วัดที่มีประโยชน์มากมายสำหรับการลดทรีในหมากรุก น้อยกว่ามากสำหรับ Go
มีงานวิจัยที่ค้นหา Monte Carlo Tree ไม่ได้ดีพอสำหรับหมากรุก เกมหมากรุกเป็นเกมที่แตกต่าง อัลกอริทึมหมากรุกไม่ทำงานเพื่อไปเพราะหมากรุกอาศัยกลยุทธ์ที่โหดร้าย กลยุทธ์มีความสำคัญมากในหมากรุก
ตอนนี้เราได้พิสูจน์แล้วว่า MCTS ทำงานได้ดีสำหรับ AlphaGo แต่น้อยกว่าสำหรับหมากรุก การเรียนรู้อย่างลึกซึ้งจะมีประโยชน์มากกว่าถ้า:
- การประเมิน NN ที่ปรับไว้นั้นดีกว่าอัลกอริธึมแบบดั้งเดิม อย่างไรก็ตาม ... การเรียนรู้ในระดับลึกไม่ใช่เรื่องมหัศจรรย์คุณในฐานะโปรแกรมเมอร์จะยังคงต้องทำการเขียนโปรแกรม ดังที่กล่าวไว้เรามีบางอย่างเช่น SPSA สำหรับการเล่นด้วยตนเองสำหรับการปรับพารามิเตอร์ในหมากรุก
- การลงทุนเงิน! ไม่มีเงินมากนักสำหรับการเรียนรู้ของเครื่องในหมากรุก Stockfish เป็นเกมฟรีและโอเพ่นซอร์ส แต่แข็งแกร่งพอที่จะเอาชนะผู้เล่นทุกคน ทำไม Google ถึงใช้เงินเป็นล้าน ๆ ถ้าใคร ๆ ก็สามารถดาวน์โหลด Stockfish ได้ฟรี จะจ่ายให้กับกลุ่ม CPU ทำไม ใครจะเป็นผู้จ่ายค่าพรสวรรค์? ไม่มีใครอยากทำเพราะหมากรุกถือเป็นเกมที่ "แก้ไขแล้ว"
หากการเรียนรู้ลึกสามารถบรรลุสิ่งต่อไปนี้มันจะเอาชนะอัลกอริทึมแบบดั้งเดิม:
- เมื่อได้ตำแหน่งหมากรุกแล้ว "รู้สึก" เหมือนเป็นปรมาจารย์มนุษย์ ตัวอย่างเช่นปรมาจารย์มนุษย์จะไม่เข้าไปในบรรทัดที่ไม่ดี - จากประสบการณ์ อัลกอริทึมแบบดั้งเดิมหรือการเรียนรู้อย่างลึกซึ้งไม่สามารถบรรลุเป้าหมายนั้น แบบจำลอง NN ของคุณอาจให้โอกาสคุณ [0..1] สำหรับตำแหน่งของคุณ แต่นั่นไม่ดีพอ
ให้ฉันชี้ให้เห็น:
ไม่ยีราฟ (ลิงก์ที่โพสต์โดย @Tim) ไม่ได้ใช้การค้นหาแบบต้นไม้ของ Monte Carlo มันใช้อัลกอริทึม nega-max ปกติ สิ่งที่มันทำคือแทนที่ฟังก์ชั่นการประเมินผลปกติด้วย NN และมันช้ามาก
อีกหนึ่ง:
แม้ว่าคาสปารอฟจะพ่ายแพ้โดย Deep Blue ในการแข่งขันปี 1997 "มนุษยชาติ" หายไปจริงๆระหว่างปีพ. ศ. 2546-2548 เมื่อครัมนิกแพ้การแข่งขันกับดีฟฟริตซ์โดยที่ไม่ชนะและไมเคิลอดัมส์ก็พ่ายแพ้ให้กับเครื่องคลัสเตอร์ในนัดเดียว ในช่วงเวลานั้น Rybka ได้พิสูจน์แล้วว่าแข็งแกร่งเกินไปสำหรับผู้เล่นที่ดีที่สุดในโลก
อ้างอิง:
http://www.talkchess.com/forum/viewtopic.php?t=64096&postdays=0&postorder=asc&highlight=alphago+chess&topic_view=flat&start=0
ฉันพูด:
ในหมากรุกเรามีแนวคิดเกี่ยวกับความสำคัญซึ่งให้การประเมินที่เป็นกันเองว่าเครื่องยนต์ทำงานได้ดีเพียงใดและสามารถคำนวณได้อย่างรวดเร็ว นอกจากนี้ยังมีด้านอื่น ๆ อีกมากมายของเกมที่สามารถเข้ารหัสในฟังก์ชั่นการประเมินผลแบบคงที่ซึ่งไม่สามารถทำได้ใน Go เนื่องจากการวิเคราะห์พฤติกรรมและการประเมินผลที่ดีหลายอย่าง EBF (Effective-Branching-Factor-Factor) จึงค่อนข้างเล็ก การใช้ Neural Network แทนฟังก์ชั่นการประเมินผลแบบคงที่จะทำให้เครื่องยนต์ช้าลงอย่างมาก