เหตุใดจึงไม่มีเครื่องมือการเรียนรู้การเสริมลึกสำหรับหมากรุกคล้ายกับ AlphaGo?


32

คอมพิวเตอร์มีเวลานานที่จะสามารถเล่นหมากรุกโดยใช้ "กำลังดุร้าย" - เทคนิคค้นหาความลึกระดับหนึ่งแล้วประเมินตำแหน่ง อย่างไรก็ตามคอมพิวเตอร์ AlphaGo ใช้ ANN เพื่อประเมินตำแหน่งเท่านั้น (มันไม่ทำการค้นหาเชิงลึกเท่าที่ฉันรู้) เป็นไปได้ไหมที่จะสร้างเอ็นจิ้นหมากรุกที่เล่นหมากรุกในแบบเดียวกับ AlphaGo เล่น Go? ทำไมไม่มีใครทำอย่างนี้? โปรแกรมนี้จะทำงานได้ดีกว่าโปรแกรมหมากรุกชั้นนำ (และผู้เล่นหมากรุก) ในปัจจุบันหรือไม่?


5
ดูarxiv.org/abs/1509.01549 (ยีราฟ: การใช้ลึกเสริมสร้างการเรียนรู้การเล่นหมากรุก) และบทความที่นิยมtechnologyreview.com/s/541276/... นอกจากนี้erikbern.com/2014/11/29/deep-learning-for-chess.html
อะมีบากล่าวว่า Reinstate Monica

มันเป็นเพียงเรื่องของเวลาจนกว่าจะมีคนมาทำสิ่งนี้ให้ถูกต้อง ดังนั้นหนึ่งเดือนหลังจากที่คุณโพสต์คำถามของคุณที่นี่คุณไป: arxiv.org/abs/1712.01815
อะมีบาพูดว่า Reinstate Monica

คำตอบ:


49

แก้ไข (หลังจากอ่านกระดาษ):

ฉันอ่านกระดาษอย่างตั้งใจ เริ่มต้นด้วยสิ่งที่ Google อ้างสิทธิ์ในเอกสาร:

  • พวกเขาพ่ายแพ้ Stockfish กับ Monte-Carlo-Tree-Search + เครือข่ายประสาทลึก
  • การแข่งขันนั้นเป็นฝ่ายเดียวที่ชนะ AlphaZero แต่ไม่มีใน Stockfish
  • พวกเขาสามารถทำได้ภายในสี่ชั่วโมง
  • AlphaZero เล่นเหมือนมนุษย์

น่าเสียดายที่ฉันไม่คิดว่ามันเป็นวารสารที่ดี ฉันจะอธิบายด้วยลิงก์ (เพื่อให้คุณรู้ว่าฉันไม่ได้ฝัน):

  • https://chess.stackexchange.com/questions/19360/how-is-alpha-zero-more-humanมีคำตอบของฉันเกี่ยวกับวิธีการที่ AlphaZero เล่นเหมือนมนุษย์

  • การแข่งขันไม่ยุติธรรมอคติอย่างยิ่ง ฉันพูดถึง Tord Romstad โปรแกรมเมอร์ต้นฉบับของ Stockfish

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 แทนฟังก์ชั่นการประเมินผลแบบคงที่จะทำให้เครื่องยนต์ช้าลงอย่างมาก


1
ขอขอบคุณ. คำถามบางข้อ: เอ็นจิ้นหมากรุกใช้อัลกอริทึมอัลฟ่า - เบต้านี่ไม่ใช่อัลกอริธึม "กำลังดุร้าย" หรือไม่? "การค้นหาต้นไม้มอนติคาร์โล" หมายความว่าอย่างใดอย่างหนึ่งดูจำนวนของการเคลื่อนไหวไปข้างหน้าของตำแหน่งปัจจุบันหรือไม่?
lijas

1
@lijas "brute-force" ถูกกำหนดโดยทั่วไปว่าเป็นการค้นหาความเป็นไปได้ทั้งหมด เอ็นจิ้นหมากรุกไม่ทำเช่นนั้น
SmallChess

7
@lijas คุณเพิ่งตอบคำถาม การคูณเมทริกซ์เป็นการทำงานที่ช้า
SmallChess

3
การค้นหาเบต้าอัลฟ่าแน่ใจว่าเป็น "brute forcish" Hans Berliner เกี่ยวกับแนวโน้ม AI: "ฉันคิดว่าแนวโน้มที่สำคัญที่สุดคือคอมพิวเตอร์ได้เร็วขึ้นอย่างมากในช่วง 50 ปีที่ผ่านมาในกระบวนการนี้เราพบว่าหลายสิ่งหลายอย่างที่เรามีวิธีการแก้ปัญหามนุษย์ที่ดีที่สุด แก่นแท้ที่แท้จริงของวิธีการของมนุษย์สามารถทำได้โดยใช้วิธีการที่โหดเหี้ยมมากขึ้นซึ่งนับได้เพียงจนกระทั่งพบวิธีการแก้ปัญหาที่น่าพอใจหากนี่เป็นสิ่งที่ผิด (ดูieeexplore.ieee.org/document/820322/?reload=true )
Daniel Lidström

1
@smallchess alpha beta เป็นอัลกอริทึมการค้นหาตามจริงถึงแม้มันจะเป็นตัวแปรเช่น negascout ซึ่งเป็นเพียงการปรับปรุงที่เพิ่มขึ้น เขาจะพูดถึงอะไรอีก สิ่งนี้ถูกเขียนอย่างดีก่อนที่ระบบการเรียนรู้อย่างลึกซึ้งจะมาถึง
Daniel Lidström

6

DeepBlue เอาชนะ Kasparov ได้แล้วดังนั้นปัญหานี้แก้ไขได้ด้วยวิธีที่ง่ายกว่ามาก สิ่งนี้เป็นไปได้เพราะจำนวนของการเคลื่อนไหวที่เป็นไปได้ในหมากรุกนั้นน้อยกว่ามากดังนั้นมันจึงเป็นปัญหาที่ง่ายกว่ามาก ยิ่งไปกว่านั้นสังเกตว่าทั้ง NN และกำลังดุร้ายต้องการทรัพยากรในการคำนวณขนาดใหญ่ ( ที่นี่คุณสามารถค้นหารูปภาพของคอมพิวเตอร์ที่อยู่ด้านหลัง AlphaGo ได้โปรดสังเกตว่ามันใช้ไม่ได้แม้แต่ GPU แต่เป็น TPU สำหรับการคำนวณ) ความวุ่นวายทั้งหมดที่เกิดขึ้นคือเมื่อ Deep Blue เอาชนะ Kasparov ชุมชน go ได้โต้เถียงว่าสิ่งนี้ไม่สามารถทำได้ด้วย go (ด้วยเหตุผลต่าง ๆ มากมาย แต่เพื่อสรุปข้อโต้แย้งที่ฉันต้องให้รายละเอียดเกี่ยวกับเกม ของไป) ใช่คุณสามารถสอน NN ให้เล่นหมากรุกมาริโอหรือลองสอนให้เล่นก็ได้ตาร์คราฟ ...

ฉันเดาว่าเหตุผลก็คือคุณมักไม่ค่อยได้ยินในสื่อกระแสหลักเกี่ยวกับคดีเมื่อผู้คนแก้ปัญหาที่ได้รับการแก้ไขแล้ว

นอกจากนี้สถานที่ตั้งของคุณผิด, การเรียนรู้ลึกจะใช้ในการเล่นหมากรุกเช่นที่อธิบายไว้ในเครื่องการเรียนรู้ลึกสอนตัวเองหมากรุกใน 72 ชั่วโมง, เล่นนานาชาติระดับปริญญาโท ดูเพิ่มเติมกระดาษที่สอดคล้องกันยีราฟ: การใช้ลึกเสริมสร้างการเรียนรู้การเล่นหมากรุก


3
แม้จะเห็นได้ชัดว่ามีบางโปรแกรมหมากรุกที่ได้รับการฝึกอบรมด้วยการเรียนรู้การเสริมแรงลึกความจริงยังคงไม่มีใครสร้างโปรแกรมที่จะเอาชนะเครื่องมือหมากรุก "แบบดั้งเดิม" ฉันคิดว่านี่เป็นเพราะปัญหานี้ (การตีเครื่องยนต์แบบดั้งเดิม) นั้นไม่น่าสนใจ / สร้างแรงจูงใจมากพอที่จะลงทุนความพยายามมากมายที่จำเป็นในการพัฒนาบางสิ่งในระดับ AlphaGo
อะมีบาพูดว่า Reinstate Monica

1
@amoeba ซอฟต์แวร์ไปเล่นสามารถใช้ได้อย่างกว้างขวางนอกจากนี้ยังไม่ได้ใช้การเรียนรู้ลึกและก็มักจะปรับตัวลดลงแล้ว 1 มือสมัครเล่นผู้เล่นแดนดังนั้นมากที่เลวร้ายยิ่งแล้ว AlphaGo AlphaGo เป็นข้อพิสูจน์แนวคิด
ทิม

1
@ rus9384 มันไม่ใช่เรื่องง่าย แต่เราได้ "แก้ปัญหา" ไปแล้ว Deep Bluie ได้เอาชนะ Kasparov เรามีหงส์ดำของเราที่ผ่านการทดสอบของทัวริง
ทิม

5
เกมที่มีการแก้ไขเป็นอีกสิ่งหนึ่ง: เราไม่รู้ว่าการเล่นที่สมบูรณ์แบบรับประกันว่าจะชนะสำหรับขาว / ดำหรือจบลงด้วยการเสมอกัน
rus9384

1
@ rus9384: มันจะสนุกถ้าเริ่มเกมกับหมากรุก AI ที่สมบูรณ์แบบและดู "White wins. Checkmate in 97 steps"
Eric Duminil
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.