ฉันคิดว่า OP สับสนกับ AlphaGo ด้วย alpha-beta ในอัลฟ่าเบต้าคุณจะต้องใช้เครือข่ายนโยบายเพื่อช่วยในการตัดแต่ง แต่ไม่ได้อยู่ที่นี่ อีกครั้งไม่มีการตัดแต่งเนื่องจากอัลกอริทึมอาศัยการค้นหาแบบต้นไม้ Monte-Carlo (MCTS)
ใครก็ตามที่คิดว่าคำตอบของฉันยาวเกินไปอาจข้ามไปยังส่วนสรุปที่ฉันระบุว่าทำไมเครือข่ายสองเครือข่ายจึงไม่ซ้ำซ้อนกัน
ในตัวอย่างต่อไปนี้ฉันจะทำให้เข้าใจง่ายขึ้นเพื่อทำให้ความคิดของฉันง่ายต่อการเข้าใจ
ตัวอย่าง:
ลองนึกภาพคุณมีตำแหน่งที่มีการเคลื่อนไหวทางกฎหมายสองแบบ การเคลื่อนไหวครั้งแรกนั้นเป็นการสูญเสียความตายสำหรับคุณอย่างไรก็ตามการเคลื่อนไหวครั้งที่สองจะให้คุณได้เปรียบในการชนะ
- ก้าวแรก: บังคับให้คุณต้องสูญเสีย
- การย้ายครั้งที่สอง: การบังคับให้ชนะเพื่อคุณ
เครือข่ายการประเมินผล
สมมติว่าเครือข่ายการประเมินที่ Google มอบให้นั้นสมบูรณ์แบบ มันสามารถประเมินตำแหน่งใบไม้ใด ๆ ในตัวอย่างของเราได้อย่างสมบูรณ์แบบ เราจะไม่เปลี่ยนเครือข่ายคุณค่าของเราในตัวอย่าง
เพื่อทำให้ตัวอย่างของเราง่ายขึ้นสมมติว่าเครือข่ายคุณค่าของเราให้:
- -1000 สำหรับตำแหน่งใบไม้ใด ๆ ซึ่งเป็นการสูญเสียสำหรับคุณ
- +1000 สำหรับตำแหน่งใบไม้ใด ๆ ที่ชนะสำหรับคุณ
นโยบายเครือข่าย
สมมติว่า Google ให้เครือข่ายนโยบายสองเครือข่ายแก่คุณ ความน่าจะเป็นที่สร้างขึ้นสำหรับตำแหน่งของเราคือ:
- นโยบายที่ 1: 0.9 สำหรับการย้าย 1 และ 0.1 สำหรับการย้าย 2
- นโยบายที่ 2: 0.2 สำหรับการย้าย 1 และ 0.8 สำหรับการย้าย 2
โปรดทราบว่าเครือข่ายนโยบายแรกของเราให้โอกาสก่อนหน้านี้ไม่ถูกต้องสำหรับตัวอย่าง มันให้ 0.9 สำหรับการย้าย 1 ซึ่งเป็นการเคลื่อนที่ที่สูญเสีย ไม่เป็นไรเพราะแม้แต่ Google ก็สามารถฝึกฝนเครือข่ายนโยบายที่สมบูรณ์แบบได้
เล่นกับเครือข่ายนโยบายแรก
AlphaGo จำเป็นต้องสร้างแบบจำลองด้วย Monte-Carlo และต้องเลือกย้าย 1 หรือ 2 ตอนนี้ AlphaGo ดึงตัวแปรสุ่มแบบกระจายและมันจะเลือก:
- ย้าย 1 ถ้าตัวเลขสุ่มคือ <= 0.9
- ย้าย 2 ถ้าหมายเลขสุ่มคือ> 0.9
ดังนั้น AlphaGo มีแนวโน้มที่จะเลือกการสูญเสียที่จะจำลอง (ในการจำลองครั้งแรกของเรา) ในการจำลองครั้งแรกของเราเราจะใช้เครือข่ายค่าเพื่อรับคะแนนสำหรับการจำลอง ในกระดาษมัน:
ค่านี้จะเป็น -1000 เพราะการจำลองนี้จะนำไปสู่การสูญเสีย
ตอนนี้ AlphaGo ต้องสร้างการจำลองที่สอง การย้ายครั้งแรกน่าจะเลือกได้มากกว่า แต่ในที่สุดการย้ายครั้งที่สองจะถูกเลือกเพราะ:
- ความน่าจะเป็นก่อนหน้าของเราสำหรับการเคลื่อนที่ครั้งที่สองคือ 0.1 ไม่ใช่ศูนย์
- AlphaGo ได้รับการสนับสนุนให้ลองเคลื่อนไหวที่ไม่ได้รับการสำรวจมากนัก ในบทความนี้ทำโดยสมการนี้:
โปรดทราบว่าN
เป็นจำนวนการเคลื่อนไหวที่ค้นหาการย้ายและอยู่ในตัวส่วน การย้ายครั้งแรกของเรามีโอกาสมากขึ้นที่ถูกค้นหาu
ฟังก์ชั่นที่มีขนาดเล็ก ดังนั้นความน่าจะเป็นสำหรับการเลือกการย้ายครั้งที่สองของเรานั้นดีขึ้นเนื่องจาก AlphaGo เลือกการเคลื่อนที่ตามสมการนี้:
นี่คือสมการสำคัญ โปรดดูอย่างระมัดระวัง:
- มันมีคำศัพท์
P
สำหรับความน่าจะเป็นก่อนหน้านี้ (ที่กำหนดโดยเครือข่ายนโยบาย)
- มันมีคำศัพท์
Q
สำหรับคะแนนการประเมิน (กำหนดโดยเครือข่ายค่า)
ตอนนี้เรารู้ว่าการเลือกครั้งที่สองของเราจะถูกเลือก เมื่อมันเกิดขึ้นเครือข่ายค่าจะให้ +1000 สิ่งนี้จะเพิ่มขึ้นQ
ซึ่งทำให้การย้ายครั้งที่สองมีโอกาสมากขึ้นที่จะถูกเลือกในการจำลองในภายหลัง
เมื่อมีการจำลองเพียงพอจำนวนครั้งที่การย้ายครั้งที่สองถูกเลือกสำหรับการจำลองควรมากกว่าจำนวนครั้งการย้ายครั้งแรกที่เลือก
ในที่สุดการย้ายที่ AlphaGo ตัดสินใจทำคือ (อ้างอิงจากกระดาษ):
เมื่อการค้นหาเสร็จสิ้นอัลกอริทึมจะเลือกการย้ายที่เยี่ยมชมมากที่สุดจากตำแหน่งรูท
เล่นกับเครือข่ายนโยบายที่สอง
เครือข่ายนโยบายที่สองของเราจะต้องการการวนซ้ำน้อยลงเพื่อเลือกการย้าย 2 เนื่องจากความน่าจะเป็นก่อนหน้านี้ที่กำหนดโดยเครือข่ายนโยบายนั้นถูกต้องตั้งแต่แรก
หมายเหตุ
ทุกอย่างที่นี่คล้ายกันมากกับBayesian
การวิเคราะห์ เราเริ่มด้วยความน่าจะเป็นก่อนหน้านี้ (ที่กำหนดโดยเครือข่ายนโยบาย) จากนั้นเราสร้างข้อมูลเพื่อย้ายการกระจายความน่าจะเป็น (ที่กำหนดโดยเครือข่ายค่า)
สรุป
- เครือข่ายนโยบายใช้เพื่อสร้างความน่าจะเป็นก่อนหน้าเพื่อเป็นแนวทางในการเลือกการค้นหา Monte-Carlo ที่ควรเลือก
- เครือข่ายค่าใช้ในการสร้างข้อมูลเพื่อตรวจสอบความถูกต้องของเครือข่ายนโยบาย หากเครือข่ายนโยบายไม่ดี AlphaGo จะต้องใช้ทรัพยากรการคำนวณเพิ่มเติมเพื่อมาบรรจบกัน (ถ้าเคย)
- คุณคิดเหมือนการวิเคราะห์แบบเบย์