ทำความเข้าใจกับ AlphaZero


29

เมื่อไม่นานมานี้มีข่าวออกมาว่าทีมวิจัย DeepMind ของ Alphabet ได้ขยายเครื่องมือการเรียนรู้ของเครื่องเพื่อเล่นทั้ง Shogi และหมากรุก เห็นได้ชัดหลังจากเพียงไม่กี่ชั่วโมงของการเรียนรู้ด้วยตนเองความหมายโดยการเล่นกับตัวเองเท่านั้นที่กำหนดกฎของเกมประสิทธิภาพการทำงานในหมากรุกได้แล้วเกินกว่าเครื่องยนต์ปัจจุบันด้านบนเช่น Stockfish 8. ฉันเองก็ไม่รู้เหมือนกันว่าตั้งค่าการแข่งขันไว้ตรงไหนภายใต้เงื่อนไขที่ Stockfish ตั้งไว้ให้ปฏิบัติเพราะถ้าเวลาในการคำนวณนั้น จำกัด เครื่องยนต์จะสามารถทำงานได้แย่มาก ไม่ว่าในกรณีใด ๆ นี่เป็นความสำเร็จที่น่าประทับใจมากเพราะถึงแม้ว่ามันจะปรากฎว่าสามารถสร้าง Stockfish ได้อย่างเหมาะสมที่สุดด้วยการฝึกฝนเพิ่มเติมไม่กี่ชั่วโมง AlphaZero ก็จะก้าวข้ามระดับการเล่นอีกครั้งซึ่งหมายความว่า AlphaZero แข็งแกร่งกว่าเดิม เอ็นจิ้นหมากรุกมาตรฐานตามฟังก์ชั่นการประเมินฮิวริสติก

ตอนนี้ในแง่ของข่าวนี้มันจะดีถ้ามีคนสามารถอธิบายความแตกต่างที่สำคัญในการทำงานของเครื่องเรียนรู้เครื่องมือหมากรุกเมื่อเทียบกับเครื่องยนต์มาตรฐานที่เราทุกคนคุ้นเคยกับการใช้ เป็นรูปธรรมมากขึ้น:

  1. ฟังก์ชั่นการประเมินผลที่ AlphaZero ใช้ไม่ได้รับการฝึกฝนโดยวิธีการเรียนรู้ของเครื่องจักรในตอนท้ายฟังก์ชั่นการประเมินแบบฮิวริสติกอีกฟังก์ชั่นหรือไม่ ถ้าใช่มันจะยุติธรรมหรือไม่ที่จะบอกว่าความแตกต่างพื้นฐานระหว่างฟังก์ชั่นการประเมินของเครื่องยนต์ทั้งสองนั้นคือข้อเท็จจริงที่ว่า Stockfish มีฟังก์ชั่นการประเมินที่ได้รับการปรับแต่งโดยมนุษย์ด้วยมือ AlphaZero, ฟังก์ชั่นการประเมินเป้าหมายจะถูกกำหนดใหม่อย่างต่อเนื่องผ่านการฝึกอบรมเพิ่มเติม (เช่นผ่านการเล่นด้วยตนเอง)? ทำให้สิ่งหลังเป็นสิ่งที่มีพลังมากขึ้น
  2. ในที่สุดการพูดคลุมเครือเครื่องยนต์เช่น Stockfish ใช้ฟังก์ชั่นการประเมินผลกับต้นไม้ของการเคลื่อนไหวที่เป็นไปได้ตัดสินใจที่สาขาที่จะเก็บและที่จะวางแล้วผ่านคอนกรีตลึกการวิเคราะห์ของแต่ละสาขาอีกครั้งผ่านฟังก์ชั่นการประเมินมันแสดงให้เห็นว่าสาขาใดให้คุณค่าสูงสุดและกลายเป็นการเปลี่ยนแปลงที่สำคัญ (แน่นอนว่ามีเทคนิคขั้นสูงมากมายรอบกระบวนการนี้เพื่อตัดต้นไม้ขนาดใหญ่นี้ได้อย่างมีประสิทธิภาพ) ความหมายสำหรับแต่ละตำแหน่งงานประจำที่เป็นรูปธรรมนี้จะต้องมีการทำซ้ำสำหรับ Stockfish เพื่อตัดสินใจ ในทางตรงกันข้ามฉันคิดว่า AlphaZero ทำสิ่งที่แตกต่างกันมากกล่าวคือมันไม่ได้พึ่งพาการวิเคราะห์ที่เป็นรูปธรรมของต้นไม้ที่เป็นไปได้ในตำแหน่งที่กำหนดแทนที่จะฟังก์ชั่นการประเมินของมันจะกำหนดค่าให้กับตำแหน่งนั้น ตำแหน่งปัจจุบันในการเปรียบเทียบกับตำแหน่งอื่น ๆ ทั้งหมดที่ได้รับการฝึกอบรมสำหรับ) โดยไม่ต้องทำคอนกรีตการวิเคราะห์ในแบบที่ Stockfish หรือแม้แต่ผู้เล่นมนุษย์ทำ นี่เป็นภาพเสียงของการทำงานของ AlphaZero หรือเครื่องมือการเรียนรู้ของเครื่องที่ผ่านการฝึกอบรมมาแล้วหรือไม่?

  3. เรารู้ว่าพื้นที่ของตำแหน่งหมากรุกมีขนาดใหญ่พอที่ความพยายามใด ๆ ในการสุ่มตัวอย่างตำแหน่งทั้งหมดในนั้นจะเป็นไปได้แม้ในหลักการอย่างสมบูรณ์ในความไร้ประโยชน์ (ความซับซ้อน EXPTIME) ที่จะแนะนำว่าไม่มีการฝึกอบรม มีการสำรวจทุกตำแหน่งดังนั้นผลลัพธ์ที่ได้จะดีอย่างไรแม้ว่าจะมีการสำรวจตำแหน่งของพื้นที่เพียงเล็กน้อยด้วยการเล่นด้วยตัวเอง แนวคิดหลักในการเล่นคืออะไร

  4. ฉันเดาว่า AlphaZero มีวิธีที่ดีที่สุดในการเปรียบเทียบตำแหน่งที่กำหนดแม้ว่าจะใหม่กับตำแหน่งที่เคยเข้าชมก่อนหน้านี้ในชุดฝึกอบรมยิ่งมีการเปรียบเทียบมากเท่าใดการประเมินที่ถูกต้องก็สามารถดึงมาจากการเปรียบเทียบได้มากขึ้น ตัวอย่างเช่นเมื่อเล่นBg5 ในเกมที่ 5มันจะต้องสำรวจโครงสร้างที่คล้ายกันในระหว่างการฝึกอบรมนั่นคือมันสามารถที่จะรับรู้ได้ว่าตำแหน่งนี้มีความสำคัญเทียบเท่ากับ (ต่างไปจากเดิมอย่างสิ้นเชิง) ที่ศึกษาในการฝึกอบรม คล้ายคลึงกับวิธีการจดจำใบหน้าผ่านการเรียนรู้ของเครื่องและผลลัพธ์สรุปว่า Bg5 น่าจะเป็นการเคลื่อนไหวที่ดีที่สุดเช่นเดียวกับในตำแหน่งอื่น ๆ ที่คล้ายกัน นี่เป็นการคาดเดาที่ถูกต้องหรือไม่? ฉันไม่รู้ว่าการเปรียบเทียบนี้เป็นอย่างไร เสร็จสิ้นแล้วแน่นอนว่าไม่สามารถจัดเก็บตำแหน่งที่ผ่านการฝึกอบรมทั้งหมดและแยกวิเคราะห์ได้ในแต่ละครั้ง

นี่เป็นเพียงความพยายามในการทำความเข้าใจอย่างลึกซึ้งเกี่ยวกับการทำงานของ AlphaZero และวิธีการตัดสินใจในตำแหน่ง

คำตอบ:


18
  • AlphaZero เลือกการเคลื่อนไหวอย่างไรในการค้นหา

ชัดเจนมากจากกระดาษ

การจำลองแต่ละครั้งจะดำเนินการโดยการเลือกในแต่ละรัฐย้าย a ที่มีจำนวนการเยี่ยมชมต่ำความน่าจะเป็นสูงและการเลือกหุบเขาสูง ...

นั่นหมายความว่าอย่างไร? AlphaZero มีการฝึกอบรมความน่าจะเป็นสำหรับการเคลื่อนไหวแต่ละครั้ง (ตอนท้ายของหน้า 2 ในหน้ากระดาษ) จากเครือข่ายประสาทลึก ในระหว่างการค้นหาจะทำการย้ายสัดส่วนตามความน่าจะเป็นนั้นและโหนดที่มีจำนวนต่ำ (เพื่อให้แน่ใจว่ามีการสำรวจพื้นที่การสุ่มตัวอย่าง) นี่ไม่ใช่แนวคิดใหม่ Monte Carlo Tree Search อยู่ในเอกสารก่อนที่ Google จะมีอยู่จริง

------ (มาก) ตัวอย่างหยาบ ------

เรามีสถานะและเรามีการเคลื่อนไหวทางกฎหมายสองประการ

  • การย้ายที่ 1 นั้นดีและสมเหตุสมผล
  • ย้าย 2 ทำให้ราชาของคุณตกอยู่ในอันตรายโดยไม่มีค่าตอบแทน

ตามกระดาษแบบลึกที่ผ่านการฝึกอบรมอาจประเมินความน่าจะเป็น (0.90, 0.10) สมมุติว่า AlphaZero ใช้การวนซ้ำ 4 ครั้งใน Monte Carlo การทำซ้ำอาจมีลักษณะดังนี้:

การวนซ้ำ 1 : เลือกการย้าย 1 เนื่องจากมีความน่าจะเป็นสูงสุด ทำการจำลองจากการเคลื่อนย้าย 1 การ วนซ้ำ 2 : เลือกการย้าย 1 เนื่องจากมีความน่าจะเป็นสูงสุด ทำการจำลองจากการเคลื่อนย้าย 1 การทำ ซ้ำ 3 : เลือกการย้าย 1 เนื่องจากมีความน่าจะเป็นสูงสุด ทำการจำลองจากการย้าย 1

ตอนนี้เราอยู่ที่การทำซ้ำ 4 แม้ว่าการเคลื่อนไหว 1 มีความน่าจะเป็นที่คาดการณ์สูงกว่า แต่การเคลื่อนที่ 2 ยังไม่ได้รับการค้นหา ("จำนวนการเยี่ยมชมต่ำ" ในกระดาษ) ตอนนี้ AlphaZero

การเคลื่อนไหวทั้งสองจะได้รับการพิจารณา แต่ AlphaZero จะวางทรัพยากรการคำนวณมากขึ้นในการย้าย 1 (สิ่งที่ดี)

AlphaZero จะเลือกการเคลื่อนไหวด้วยผลลัพธ์ที่ดีที่สุดที่คาดไว้

------------------ คำถามของคุณ: ------------------

ฟังก์ชั่นการประเมินผลที่ AlphaZero ใช้ไม่ได้รับการฝึกฝนโดยวิธีการเรียนรู้ของเครื่องจักรในตอนท้ายฟังก์ชั่นการประเมินแบบฮิวริสติกอีกฟังก์ชั่นหรือไม่

ฟังก์ชั่นการประเมินผลที่ผ่านการฝึกอบรมเป็นเครือข่ายประสาทลึกไม่ใช่ชุดของกฎการแก้ปัญหาเช่นเดียวกับที่คุณเห็นใน Stockfish ไม่มีใครเข้าใจอย่างถ่องแท้เกี่ยวกับ (ไม่ใช่แม้แต่ทีม Google) เครือข่ายที่ผ่านการฝึกอบรม แต่ก็ใช้งานได้ นี่คือวิธีการทำงานของ NN โดยทั่วไป

ในขณะที่สำหรับ AlphaZero ฟังก์ชั่นการประเมินเป้าหมายจะถูกกำหนดใหม่อย่างต่อเนื่องผ่านฟังก์ชั่นการประเมินเป้าหมายจะถูกกำหนดใหม่อย่างต่อเนื่องผ่านการฝึกอบรมเพิ่มเติม

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

(2)

Stockfish ใช้อัลฟ่าเบต้าในขณะที่ AlphaZero ใช้ Monte-Carlo มันเป็นอัลกอริธึมที่แตกต่างกันสองอย่าง อัลกอริทึมอัลฟาเบต้าถือว่าขอบเขตล่าง / บนในขณะที่ Monte-Carlo สร้างแบบจำลองจากรากถึงใบ

สำรวจทุกตำแหน่งแล้วผลลัพธ์ที่ได้จะออกมาดีอย่างไรแม้จะมีการสำรวจตำแหน่งของพื้นที่เพียงเล็กน้อยด้วยการเล่นด้วยตัวเอง แนวคิดหลักในการเล่นคืออะไร

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

ตัวอย่างเช่นเมื่อเล่นการเคลื่อนไหว Bg5 ในเกม 5 มันจะต้องสำรวจโครงสร้างที่คล้ายกันในระหว่างการฝึก

ฉันไม่คิดว่า AlphaZero จะพบตำแหน่งเดียวกันแน่นอนในเกมการฝึกอบรม ฉันคิดว่าการอ่านอย่างรวดเร็วของ Monte-Carlo เป็นความคิดที่ดี:

https://chessprogramming.wikispaces.com/Monte-Carlo+Tree+Search

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

คุณสามารถคิดได้ว่า AlphaGo สามารถค้นหาได้ดีจนเห็นว่าความน่าจะเป็นที่จะชนะนั้นสูงที่สุดหลังจาก Bg5 ในขณะที่ Stockfish ไม่ได้พิจารณาถึงการเคลื่อนไหวอย่างจริงจัง


2
"การค้นหาต้นไม้มอนติคาร์โลอยู่ในวรรณคดีก่อนที่จะมี Google อยู่" ฉันสามารถติดตาม MCTS ย้อนกลับไปจนถึงปี 2549 ได้
CodesInChaos

2
@CodesInChaos MCTS ไม่ใช่เทคนิคใหม่ Google ไม่ได้ประดิษฐ์ Monte Carlo อย่างแน่นอน
SmallChess

4
Brügmann 1993 เป็น MC เท่านั้น MC Go Dev (2003)รวม MC และต้นไม้เข้าด้วยกัน แต่เป็นวิธีดั้งเดิม Chang (2005)ค่อนข้างใกล้เคียง แต่ในบริบทที่แตกต่างกันและฉันคิดว่ามันยังขาดตัวเลือกที่เหมาะสมของโหนดเพื่อขยายและขยายการประมาณ หัวกะทิที่มีประสิทธิภาพและตัวดำเนินการสำรองข้อมูลใน MCTS Remi Coulom (2006)เป็น MCTS ที่เหมาะสมเท่าที่ฉันสามารถบอกได้ตัวแรก
CodesInChaos

1
@ SmallChess บางส่วนของคำตอบของคุณดูเหมือนจะขัดแย้งกัน: "ตอนนี้ AlphaZero จะเลือกย้าย 2 และทำการจำลองการเคลื่อนไหวทั้งสองจะได้รับการพิจารณา แต่ AlphaZero จะวางทรัพยากรการคำนวณเพิ่มเติมในการย้าย 1 (สิ่งที่ดี)" ขัดแย้งกับคำแถลงการจำลองแต่ละครั้งดำเนินการโดยเลือกในแต่ละรัฐย้าย a ที่มีจำนวนการเยี่ยมชมต่ำ ...ตามตัวอย่างของคุณนั่นจะเป็น 2 มากกว่า 1 เพื่อความซื่อสัตย์กระดาษไม่ได้มีข้อมูลใด ๆ ที่เป็นประโยชน์สำหรับ ความเข้าใจขณะที่พวกเขาไม่สามารถทำซ้ำการทดลองหรือให้ข้อมูลเชิงลึกเกี่ยวกับวิธีการที่แท้จริงพวกเขาฝึกอบรมเครือข่าย
เริ่ม

1
สิ่งที่พวกเขาทำคือการระบุว่า "เราใช้อัลกอริธึม X และใช้งานได้" - ซึ่งให้ความเข้าใจน้อยมากเกี่ยวกับวิธีการของตัวเองดังนั้นฉันจะไม่เน้นมากเกินไปในกระดาษเพื่อพยายามคิดออกว่ามันทำอะไรจริงๆ
เริ่ม

0

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


1
ฉันคิดว่าฉันอาจจะสามารถตอบคุณได้ แต่ไม่ใช่ที่นี่ กรุณาเริ่มคำถามใหม่
SmallChess

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