ฉันจะสร้างแบบจำลองปัญหาเป็น MDP ได้อย่างไรหากตัวแทนไม่ปฏิบัติตามลำดับต่อเนื่องของสถานะ
ในปัญหาของฉันตัวแทนไม่ปฏิบัติตามลำดับของรัฐที่ต่อเนื่องกัน แต่เลือกด้วย $\epsilon$- แก้ไขคู่ที่ดีที่สุด (สถานะการกระทำ) จากคิวลำดับความสำคัญ โดยเฉพาะอย่างยิ่งเมื่อตัวแทนของฉันไปอยู่ในสถานะ$s$ และเปิดการกระทำที่มีอยู่ $\{ a_i \}$จากนั้นจะประมาณค่าแต่ละรายการ $(s,a)$จับคู่ (การถดถอยด้วย DQN) และเก็บไว้ในคิว เพื่อให้ตัวแทนของฉันเปลี่ยนสถานะ$s'$โดยจะเลือกคู่ที่ดีที่สุดจากคิวแทนที่จะทำตามการดำเนินการที่มีอยู่ $\{ a_i \}$ ของ $s$. ฉันทราบว่ารัฐมีชุดการดำเนินการที่แตกต่างไปจากที่อื่นบางส่วน
อย่างไรก็ตามด้วยวิธีนี้ฉันจะสร้างแบบจำลอง MDP ของฉันได้อย่างไรหากตัวแทนของฉันไม่ปฏิบัติตามลำดับของรัฐที่ต่อเนื่องกัน
โดยเฉพาะอย่างยิ่งฉันมีโปรแกรมรวบรวมข้อมูลที่มุ่งเน้นซึ่งมีการป้อน URL เมล็ดพืชไม่กี่รายการ ฉันต้องการส่งออก URL ที่เกี่ยวข้องให้มากที่สุดเท่าที่จะเป็นไปได้พร้อมกับเมล็ด ฉันจำลองกรอบงาน RL ดังต่อไปนี้
- สถานะ: หน้าเว็บ
- การดำเนินการ: URL ขาออกของหน้าเว็บของรัฐ
- รางวัล: จากแหล่งภายนอกฉันทราบว่าเนื้อหาของหน้าเว็บมีความเกี่ยวข้องหรือไม่
ปัญหาคือในขณะที่รวบรวมข้อมูลหากตัวแทนยังคงดำเนินต่อไปโดยทำตามการเปลี่ยนสถานะต่อเนื่องอาจตกอยู่ในกับดักการรวบรวมข้อมูลหรือออพติมาในพื้นที่ นั่นคือเหตุผลว่าทำไมจึงใช้ลำดับความสำคัญในการรวบรวมข้อมูล ตัวแทนการรวบรวมข้อมูลไม่ปฏิบัติตามลำดับการเปลี่ยนสถานะที่ต่อเนื่องกันอีกต่อไป คู่สถานะการดำเนินการแต่ละคู่จะถูกเพิ่มลงในคิวลำดับความสำคัญพร้อมด้วยค่าการดำเนินการโดยประมาณ ในแต่ละครั้งจะเลือกคู่การดำเนินการของรัฐที่มีแนวโน้มมากที่สุดจากทุกคู่ในคิว ฉันทราบว่าการดำเนินการ URL แต่ละรายการสามารถประมาณได้โดยคำนึงถึงสถานะ - หน้าเว็บที่มีการดึงข้อมูล
คำตอบ
โดยพื้นฐานแล้วปัญหาของคุณคือคุณกำลังสับสนว่าสถานะและการดำเนินการในการตั้งค่านี้เป็นอย่างไร หน้าเว็บไม่ใช่สถานะของคุณ สถานะของคุณคือลำดับความสำคัญทั้งหมดของ(website-outlink)
คู่ + (new_website-outlink)
คู่ การกระทำของคุณคือคู่ที่คุณเลือก
ตอนนี้นี่คือการตั้งค่าปัญหาพื้นที่ขนาดตัวแปรและขนาดตัวแปรในเวลาเดียวกัน ในการจัดการกับสิ่งนี้เริ่มต้นด้วยการสังเกตว่าไม่state==observation
จำเป็นต้องเป็น (โดยทั่วไป) แล้วข้อสังเกตของคุณคืออะไร? การสังเกตของคุณเป็นชุดขนาดตัวแปรของ:
(website-outlink)
คู่หรือnext_website
(โดยแต่ละคู่next_website
จะถูกกำหนดโดยคู่ที่เกี่ยวข้อง)
ข้อสังเกตทั้งสองนี้สามารถใช้งานได้ดีการเลือกระหว่างข้อใดข้อหนึ่งเป็นเพียงประเด็นว่าคุณต้องการให้ตัวแทนของคุณเรียนรู้ว่า "ลิงก์ใดที่จะเปิดก่อนที่จะเปิด" หรือ "ลิงก์ใดที่มีความหมาย (หลังจากเปิด)"
สิ่งที่คิวลำดับความสำคัญของคุณทำโดยพื้นฐานแล้วเป็นเพียงการเพิ่มเคล็ดลับที่เป็นระเบียบซึ่ง:
- บันทึกความซับซ้อนในการคำนวณของการรักษาสถานะตามลำดับ (โปรดจำไว้ว่ารัฐของคุณไม่ใช่ a
website
แต่เป็นรายการ / ชุดของwebsite-outlink
) - หลีกเลี่ยงการคำนวณค่า Q ซ้ำโดยไม่จำเป็นสำหรับแต่ละการกระทำของคุณ (โปรดจำไว้ว่าการดำเนินการไม่ได้เลือกลิงก์ออก
new_website
แต่เลือกลิงก์ออกจากตัวเลือกที่มีอยู่ทั้งหมดในคิว)
อย่างไรก็ตามโปรดทราบว่าการมีการประหยัดครั้งที่สองเป็นสิ่งสำคัญที่จะต้องเก็บค่า Q สำหรับแต่ละคู่ !!!
สิ่งสำคัญประการสุดท้ายที่ควรทราบก็คือในสถานการณ์ที่คุณใช้ Replay Buffer (ซึ่งฉันเดาว่าน่าจะเป็นเพราะคุณเลือก DQN) คุณจะไม่สามารถใช้ลำดับความสำคัญในขณะที่เรียนรู้จาก RB ได้ เพื่อดูว่าทำไม (และจะดูในรายละเอียดวิธีการกระบวนการเรียนรู้ของคุณจริงดูเหมือน) เริ่มต้นด้วยการจดจำว่าการปรับปรุง Q-ค่าของคุณจะได้รับจากสูตรที่นี่ ; รัฐของคุณs_t
คือชุดคู่(กึ่งสั่งซื้อ1 ) Q(s_t, a_t)
เป็นเพียงการส่งออกของการทำงานถดถอย DQN ของคุณบนเพียงที่ดีที่สุดเว็บไซต์ / คู่ในชุดนี้ (คุณมีเพื่อเพิ่มดัชนีเพื่อแสดงถึงทางเลือกที่ดีที่สุดเมื่อเพิ่มช่วงการเปลี่ยนภาพไปยัง RB เพื่อให้สอดคล้องกันว่าการดำเนินการใดถูกดำเนินการจากสถานะนี้) ในการคำนวณค่าประมาณของมูลค่าในอนาคตที่เหมาะสมอย่างไรก็ตามคุณจะต้องคำนวณค่า Q ของทุกเว็บไซต์ / คู่ใหม่ในสถานะถัดไป คุณไม่สามารถใช้ลำดับความสำคัญเมื่อฝึกจาก RB
1 คุณมีลำดับลำดับความสำคัญสำหรับเว็บไซต์ทั้งหมดที่คุณมีในขณะที่ดูเว็บไซต์สุดท้าย แต่new_website-outlink
คู่ทั้งหมดที่คุณเพิ่มในตอนนี้ยังไม่ได้เรียงลำดับ คุณยังคงต้องรันเอเจนต์กับพวกเขาจากนั้นคุณสามารถสั่งพวกเขาด้วยคิวลำดับความสำคัญที่เหลือเพื่อสร้างสถานะถัดไป (ซึ่งจะยังไม่ได้รับคำสั่งเนื่องจากคุณจะมีnew_new_website-outink
คู่)