ข้อสงสัยเล็กน้อยเกี่ยวกับการประยุกต์ใช้การเรียนรู้การเสริมแรงกับเกมเช่นหมากรุก


9

ฉันคิดค้นเกมกระดานเหมือนหมากรุก ฉันสร้างเครื่องยนต์เพื่อให้สามารถเล่นได้อย่างอิสระ เครื่องยนต์นั้นเป็นต้นไม้ตัดสินใจ มันประกอบด้วย:

  1. ฟังก์ชั่นการค้นหาที่แต่ละโหนดพบความเคลื่อนไหวที่ถูกกฎหมาย
  2. ฟังก์ชั่นการประเมินผลที่กำหนดค่าตัวเลขให้กับตำแหน่งกระดาน (บวกหมายถึงผู้เล่นคนแรกได้ไพ่ที่สูงกว่าหมายถึงผู้เล่นที่สองชนะแทน)
  3. อัลกอริทึม negamax การตัดตัวอักษร

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

ฉันต้องการใช้การเรียนรู้การเสริมแรงเพื่อทำให้เครื่องยนต์ดีขึ้นโดยการเล่นกับตัวเอง ฉันได้อ่านเกี่ยวกับหัวข้อ แต่ฉันยังค่อนข้างสับสน

มีรางวัลอื่นอีกบ้างในเกมที่เป็นส่วนหนึ่งของผลลัพธ์แบบชนะหรือแพ้ (1 หรือ 0) ถ้าฉันใช้รางวัลอื่น ๆ เช่นผลลัพธ์จากฟังก์ชั่นการประเมินผลในแต่ละเทิร์นฉันจะใช้มันได้อย่างไร ฉันจะแก้ไขฟังก์ชั่นการประเมินผลเพื่อให้ได้ผลตอบแทนที่ดีขึ้นหลังจากทำซ้ำได้อย่างไร

คำตอบ:


6

ฉันต้องการใช้การเรียนรู้การเสริมแรงเพื่อทำให้เครื่องยนต์ดีขึ้นโดยการเล่นกับตัวเอง ฉันได้อ่านเกี่ยวกับหัวข้อ แต่ฉันยังค่อนข้างสับสน

ถูกเตือน: การเรียนรู้การเสริมแรงเป็นวิชาที่ซับซ้อนมาก แม้ว่ามันอาจจะนำคุณไปสู่ทางอ้อมจากบอทที่เล่นเกม แต่คุณอาจต้องการศึกษาพื้นฐาน RL จุดเริ่มต้นที่ดีคือการเรียนรู้การเสริมแรง Sutton & Barto : บทนำ

มีรางวัลอื่นอีกบ้างในเกมที่เป็นส่วนหนึ่งของผลลัพธ์แบบชนะหรือแพ้ (1 หรือ 0)

ขึ้นอยู่กับเกมที่คุณเล่น ที่จริงแล้วสำหรับเกมที่ชนะ / เสมอ / แพ้เช่นหมากรุกดังนั้นรางวัลจากแต่ละการกระทำคือ 0 ยกเว้นการชนะ (+1) หรือแพ้ (-1) ในตอนท้าย ในเกมที่มีผลรวมเป็นศูนย์แล้วสิ่งนี้จะสอดคล้องกับ minimax, การตัดแต่งตัวอักษรและอื่น ๆ

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

ถ้าฉันใช้รางวัลอื่น ๆ เช่นผลลัพธ์จากฟังก์ชั่นการประเมินผลในแต่ละเทิร์นฉันจะใช้มันได้อย่างไร

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

ฉันจะแก้ไขฟังก์ชั่นการประเมินผลเพื่อให้ผลตอบแทนที่ดียิ่งขึ้นหลังจากการวนซ้ำได้อย่างไร

นั่นคือสิ่งที่ RL แตกต่างกันทุกวิธีที่พยายามทำมีตัวแก้ปัญหาที่แตกต่างหลากหลาย ไม่มีวิธีการอธิบายสั้น ๆ คุณสามารถเริ่มต้นด้วยวิธีการที่ง่ายเช่น Q-Learning Q-Learning เรียนรู้การประมาณการของ Q (s, a) (เรียกว่าค่าการกระทำ) ซึ่งเป็นผลตอบแทนที่คาดหวังเมื่ออยู่ในสถานะและดำเนินการ a และหลังจากนั้นทำตามนโยบายที่ดีที่สุด มันทำให้การคาดเดาโดยพลการเริ่มต้นและปรับให้ใกล้เคียงกับมูลค่าที่แท้จริงของแต่ละขั้นตอนในสภาพแวดล้อมการเรียนรู้ ตาราง Q-learners ง่าย ๆ ทำการปรับแต่งนี้เพียงแค่จัดเก็บตารางขนาดใหญ่ของทุกรัฐและการกระทำด้วยการประมาณการที่ดีที่สุดจนถึงมูลค่าที่แท้จริงและค่าเฉลี่ยในการประมาณการใหม่แต่ละครั้ง

นอกจากนี้ยังเป็นไปได้ที่จะรวมวิธี RL สำหรับการวิเคราะห์พฤติกรรมด้วยการค้นหาขั้นต่ำแบบมองไปข้างหน้านั่นคือสิ่งที่ AlphaGo ดั้งเดิมทำและสิ่งที่ AlphaGo Zero ทำในระหว่างการฝึกอบรม นี่เป็นวิธีที่มีประสิทธิภาพเนื่องจากการค้นหาขั้นต่ำจะทำงานเพื่อตรวจสอบฮิวริสติกที่สร้างขึ้นโดยใช้ RL อีกครั้ง แม้ว่าจะเป็นเกมที่เล่นง่ายพอ RL สามารถเรียนรู้การวิเคราะห์พฤติกรรมที่สมบูรณ์แบบและคุณจะต้องค้นหาเฉพาะที่ (สิ่งที่ควรทำในครั้งต่อไป)

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

ในความเป็นจริงหากฟังก์ชั่นฮิวริสติกของคุณเองไม่ผิดปกติคุณสามารถรักษามันเหมือนตัวประมาณเชิงเส้นและใช้ RL เพื่อเรียนรู้น้ำหนักที่ดีที่สุด


"การเรียนรู้การเสริมกำลังมีจุดมุ่งหมายเพื่อจัดการกับสภาพแวดล้อมที่มีรางวัลล่าช้าการเพิ่มรางวัล" ผู้ช่วยเหลือ "สำหรับผู้ที่ไม่ใช่เป้าหมายชั่วคราวมักจะตอบโต้ได้" ฉันต้องการทราบว่ามีบทความที่พยายามแก้ปัญหาของรางวัลแบบเบาบางโดยแนะนำเป้าหมายคนกลาง " Hindsight Experience Replay "
nbro

1
@nbro: มีความพยายามมากมายในการแก้ปัญหาแบบเบาบางมันเป็นคำถามปลายเปิดขนาดใหญ่ใน RL วิธีหนึ่งในการเพิ่มความท้าทายของปัญหาคือการให้รางวัลแบบเบาบางมากขึ้น การมีสิทธิ์ติดตามเป็นความพยายามอีกครั้งลำดับชั้น RL เป็นอีกพื้นที่ที่มีแนวโน้ม . . ฉันไม่คิดว่าฉันต้องการเพิ่มเทคนิคเหล่านี้ลงในคำตอบที่นี่เนื่องจากเป็นเรื่องเกี่ยวกับความเป็นไปได้สำหรับปัญหาของ OP และบทนำของเรื่อง
Neil Slater
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.