Deep Reinforcement Learning - ค่าเฉลี่ย Q เป็นเมตริกการประเมินผล

Aug 18 2020

ฉันกำลังปรับโมเดลการเรียนรู้เชิงลึกสำหรับผู้เรียนเกม Space Invaders (ภาพด้านล่าง) สถานะถูกกำหนดให้เป็นระยะห่างระหว่างผู้เล่นกับศัตรู + ระยะทางสัมพัทธ์ระหว่างผู้เล่นและเลเซอร์ศัตรูที่ใกล้ที่สุด 6 ตัวซึ่งปรับให้เป็นมาตรฐานโดยความสูงของหน้าต่าง (หากตำแหน่งของผู้เล่นคือ$(x_p,y_p)$ และตำแหน่งของศัตรูคือ $(x_e,y_e)$ระยะห่างแบบยูคลิดคือ $\frac{\sqrt{(x_p-x_e)^2+(y_p-y_e)^2}}{HEIGHT}$และ HEIGHT คือความสูงของหน้าต่าง) ดังนั้นมิติพื้นที่สังเกตการณ์คือ (10 + 6) ซึ่งส่งผลให้มีการป้อนข้อมูลของโครงข่ายประสาทส่วนลึกของฉัน 16 หน่วย

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

นี่คือผลลัพธ์บางส่วนเกี่ยวกับผู้เรียน:

คำตอบ

NeilSlater Aug 20 2020 at 04:35

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

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

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

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

ฉันคิดว่าคุณควรใช้ Normalized $x, y$ตำแหน่งเป็นคุณสมบัติสำหรับแต่ละรายการที่กำลังติดตามบวกความเร็วปกติ$dx, dy$ สำหรับวัตถุทุกประเภทที่สามารถเปลี่ยนทิศทางได้ (หากเลเซอร์ของศัตรูตกลงมาตรงๆคุณอาจไม่ต้องการอะไรเลย)

นอกจากนี้:

  • หากขอบหน้าต่างมีความสำคัญคุณควรรวมญาติอย่างน้อย $x$หนึ่งในนั้นดังนั้นเอเจนต์จึงรู้ตำแหน่งที่แน่นอนบนหน้าจอและพื้นที่ที่ต้องซ้อมรบ นี่เป็นเรื่องจริงไม่ว่าผู้เล่นจะถูกปิดกั้นไม่ให้เคลื่อนที่ไปทางซ้ายหรือขวามากขึ้นหรือผู้เล่น "ล้อมรอบ" ไปอีกด้านหนึ่งของหน้าจอ เอฟเฟกต์ทั้งสองประเภทจะส่งผลอย่างมากต่อการเล่นเกมใกล้ขอบหน้าจอ

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

  • สำหรับเลเซอร์ศัตรูและขีปนาวุธของผู้เล่นสามารถกรองและจัดเรียงข้อมูลตามเกณฑ์บางอย่างได้ (เช่นระยะทางไปยังผู้เล่น) ตราบใดที่สิ่งนี้สอดคล้องกันอาจช่วยได้มากในการประมวลผลล่วงหน้าดังกล่าว