อะไรคือความแตกต่างระหว่างการวนซ้ำมูลค่าและการวนซ้ำตามนโยบาย?


94

ในการเรียนรู้เสริมสิ่งที่เป็นความแตกต่างระหว่างการย้ำนโยบายและย้ำคุ้มค่า ?

เท่าที่ฉันเข้าใจในการวนซ้ำคุณค่าคุณใช้สมการ Bellman เพื่อแก้ปัญหาสำหรับนโยบายที่ดีที่สุดในขณะที่ในการวนซ้ำนโยบายคุณสุ่มเลือกนโยบายπและหารางวัลของนโยบายนั้น

ข้อสงสัยของฉันคือหากคุณเลือกนโยบายแบบสุ่มπใน PI จะรับประกันได้อย่างไรว่าจะเป็นนโยบายที่ดีที่สุดแม้ว่าเราจะเลือกนโยบายแบบสุ่มหลายนโยบายก็ตาม


13
ควรถามคำถามนี้บนเว็บไซต์เช่นai.stackexchange.com , stats.stackexchange.comหรือdatascience.stackexchange.com จะเหมาะสมกว่า
nbro

คำตอบ:


124

ลองดูพวกเขาเคียงข้างกัน ส่วนสำคัญสำหรับการเปรียบเทียบจะถูกเน้น ตัวเลขจากซัตตันและ Barto หนังสือ: เสริมสร้างการเรียนรู้: บทนำ

ป้อนคำอธิบายภาพที่นี่ ประเด็นสำคัญ:

  1. การวนซ้ำนโยบายรวมถึง: การประเมินนโยบาย + การปรับปรุงนโยบายและทั้งสองจะทำซ้ำซ้ำ ๆ จนกว่านโยบายจะบรรจบกัน
  2. การวนซ้ำมูลค่าประกอบด้วย: การค้นหาฟังก์ชันค่าที่เหมาะสมที่สุด + การแยกนโยบายหนึ่งรายการ ไม่มีการทำซ้ำของทั้งสองเพราะเมื่อฟังก์ชันค่าเหมาะสมที่สุดแล้วนโยบายที่ไม่เหมาะสมก็ควรจะเหมาะสมที่สุดด้วย
  3. นอกจากนี้การค้นหาฟังก์ชันค่าที่เหมาะสมยังสามารถมองได้ว่าเป็นการผสมผสานระหว่างการปรับปรุงนโยบาย (เนื่องจากสูงสุด) และการประเมินนโยบายที่ถูกตัดทอน (การกำหนด v_ (s) ใหม่หลังจากการกวาดล้างสถานะทั้งหมดเพียงครั้งเดียวโดยไม่คำนึงถึงคอนเวอร์เจนซ์)
  4. อัลกอริทึมสำหรับการประเมินนโยบายและฟังก์ชันค่าที่เหมาะสมมีความคล้ายคลึงกันมากยกเว้นการดำเนินการสูงสุด (ตามที่เน้นไว้)
  5. ในทำนองเดียวกันขั้นตอนสำคัญในการปรับปรุงนโยบายและการสกัดนโยบายจะเหมือนกันยกเว้นในอดีตเกี่ยวข้องกับการตรวจสอบเสถียรภาพ

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

ฉันเดาว่าความสับสนส่วนใหญ่มาจากคำศัพท์ที่ค่อนข้างคล้ายกันเหล่านี้ซึ่งทำให้ฉันสับสนมาก่อน


3
ฉันยอมรับว่าการทำซ้ำตามนโยบายจะรวมเข้าด้วยกันในการทำซ้ำน้อยลงและฉันก็อ่านมาหลายที่แล้วว่าเร็วกว่า ฉันทำการทดลองเกี่ยวกับโลกกล่องและเขาวงกตที่เรียบง่ายด้วยทั้งสองวิธีใน Burlap ฉันพบว่าการวนซ้ำของค่าทำให้เกิดการวนซ้ำได้มากขึ้น แต่ใช้เวลาน้อยลงในการเข้าถึงคอนเวอร์เจนซ์ YMMV.
Ryan

1
@Chrom คุณควรได้อ่าน oppposite นี่คือคำพูดจากหนังสือ " การวนซ้ำตามนโยบายมักจะมาบรรจบกันในการทำซ้ำเพียงไม่กี่ครั้งซึ่งแสดงให้เห็นโดยตัวอย่างในรูปที่ 4.1 " จากหน้า 65 ของหนังสือเวอร์ชัน2017nov5
zyxue

3
ใช่ฉันได้เล่นกับโลกแห่งกริดหลายรสชาติ ฉันแค่พยายามชี้ให้เห็นว่า "เร็วกว่า" ในแง่ของการทำซ้ำน่าจะเป็นประโยชน์ต่อ PI แต่ "เร็วกว่า" ในแง่ของวินาทีอาจให้ VI
Ryan

3
เพื่อความชัดเจนการวนซ้ำนโยบายจะใช้เวลาในการทำซ้ำน้อยลง แต่มีความซับซ้อนในการคำนวณมากกว่าการวนซ้ำตามค่า อันไหนเร็วกว่านั้นขึ้นอยู่กับสภาพแวดล้อม
RF Nelson

2
ฉันรู้ว่านี่เป็นกระทู้เก่า แต่ฉันขอแนะนำอย่างยิ่งให้ดูสิ่งนี้ ( medium.com/@m.alzantot/… ) ลิงก์นี้ให้รหัสและทำให้ชัดเจนมากขึ้นสำหรับฉัน
ตีคู่

73

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

ในการวนซ้ำค่าคุณเริ่มต้นด้วยฟังก์ชันค่าสุ่มจากนั้นค้นหาฟังก์ชันค่าใหม่ (ปรับปรุง) ในกระบวนการวนซ้ำจนกว่าจะถึงฟังก์ชันค่าที่เหมาะสมที่สุด โปรดสังเกตว่าคุณสามารถรับนโยบายที่เหมาะสมที่สุดได้อย่างง่ายดายจากฟังก์ชันค่าที่เหมาะสมที่สุด กระบวนการนี้ขึ้นอยู่กับตัวดำเนินการ Bellman การเพิ่มประสิทธิภาพ

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


1
คำอธิบายที่ดีเกี่ยวกับเรื่องนี้ ขอฉันเพิ่มสิ่งนี้ในการวนซ้ำนโยบายมันใช้สมการความคาดหวังของเบลแมนและในการวนซ้ำค่าใช้สมการสูงสุดของเมลแมน สำหรับการวนซ้ำค่าอาจมีการทำซ้ำน้อยกว่า แต่สำหรับการวนซ้ำครั้งเดียวอาจมีงานมากมาย สำหรับการ
ทบทวน

ไม่มีตัวดำเนินการสูงสุดในการวนซ้ำนโยบายด้วยหรือ มิฉะนั้นจะอัปเดตนโยบายตามฟังก์ชันค่าใหม่ได้อย่างไร
huangzonghao

ไม่อัลกอริทึม SARSA เป็นตัวอย่างทั่วไปของการวนซ้ำนโยบาย ดังที่คุณเห็นในรหัสหลอกนี้ ( incompleteideas.net/book/ebook/node64.html ) การอัปเดตฟังก์ชันค่าไม่มีตัวดำเนินการสูงสุดใด ๆ อย่างไรก็ตามหากคุณหมายถึงตัวดำเนินการสูงสุดสำหรับการเลือกการกระทำที่ดีที่สุดจากฟังก์ชันค่า (เช่นการกระทำแบบโลภ) ใช่มีการดำเนินการสูงสุดในกระบวนการดังกล่าว
Pablo EM

11

ความแตกต่างพื้นฐานคือ -

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

ในการวนซ้ำมูลค่า - คุณสุ่มเลือกฟังก์ชันค่าจากนั้นค้นหาฟังก์ชันค่าใหม่ (ปรับปรุง) ในกระบวนการวนซ้ำจนกว่าจะถึงฟังก์ชันค่าที่เหมาะสมจากนั้นจึงได้รับนโยบายที่เหมาะสมที่สุดจากฟังก์ชันค่าที่เหมาะสมนั้น

การทำซ้ำนโยบายทำงานบนหลักการของ "การประเมินนโยบาย -> การปรับปรุงนโยบาย"

การทำซ้ำมูลค่าทำงานบนหลักการของ“ ฟังก์ชันค่าที่เหมาะสมที่สุด —-> นโยบายที่เหมาะสมที่สุด”


0

เท่าที่ฉันกังวลตรงกันข้ามกับความคิดของ @zyxue โดยทั่วไป VI นั้นเร็วกว่า PI มาก

เหตุผลนั้นตรงไปตรงมามากอย่างที่คุณทราบแล้ว Bellman Equation ใช้สำหรับการแก้ฟังก์ชันค่าสำหรับนโยบายที่กำหนด เนื่องจากเราสามารถแก้ฟังก์ชันค่าสำหรับนโยบายที่เหมาะสมได้โดยตรงการแก้ฟังก์ชันค่าสำหรับนโยบายปัจจุบันจึงเป็นการเสียเวลาอย่างเห็นได้ชัด

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

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