วิธีการใช้พื้นที่การกระทำที่ จำกัด ในการเรียนรู้การเสริมแรง?


13

ฉันกำลังเขียนโมเดลการเรียนรู้การเสริมแรงด้วยตัวแทน PPO ต้องขอบคุณห้องสมุด Tensorforceที่ดีมากซึ่งสร้างจากส่วนบนของ Tensorflow

รุ่นแรกนั้นง่ายมากและตอนนี้ฉันกำลังดำดิ่งสู่สภาพแวดล้อมที่ซับซ้อนมากขึ้นซึ่งการกระทำทั้งหมดไม่พร้อมใช้งานในแต่ละขั้นตอน

สมมติว่ามี 5 การกระทำและความพร้อมใช้งานขึ้นอยู่กับสถานะภายใน (ซึ่งกำหนดโดยการกระทำก่อนหน้าและ / หรือพื้นที่รัฐ / การสังเกตใหม่):

  • 2 การกระทำ (0 และ 1) พร้อมใช้งานเสมอ
  • 2 การกระทำ (2 และ 3) จะใช้ได้เฉพาะเมื่อ internal_state == 0
  • 1 การกระทำ (4) ใช้ได้เฉพาะเมื่อ internal_state == 1

ดังนั้นจึงมีการดำเนินการ 4 รายการเมื่อ internal_state == 0 และ 3 การกระทำพร้อมใช้งานเมื่อ internal_state == 1

ฉันคิดว่ามีความเป็นไปได้เล็กน้อยที่จะนำไปใช้

  1. เปลี่ยนพื้นที่การดำเนินการในแต่ละขั้นตอนขึ้นอยู่กับ internal_state ฉันคิดว่านี่เป็นเรื่องไร้สาระ
  2. ไม่ทำอะไรเลย: ปล่อยให้นายแบบเข้าใจว่าการเลือกการกระทำที่ไม่พร้อมใช้งานไม่มีผลกระทบ
  3. ทำ - เกือบทุกอย่าง: ส่งผลกระทบต่อรางวัลลบเล็กน้อยเมื่อแบบจำลองเลือกการกระทำที่ไม่พร้อมใช้งาน
  4. ช่วยโมเดล: โดยการรวมจำนวนเต็มเข้าไปในพื้นที่รัฐ / การสังเกตที่แจ้งให้โมเดลทราบว่าค่า internal_state + bullet point 2 หรือ 3 คืออะไร

มีวิธีอื่นที่จะใช้สิ่งนี้หรือไม่? จากประสบการณ์ของคุณแบบไหนจะดีที่สุด?

คำตอบ:


5

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

ตัวอย่างเช่นในสถานการณ์ที่คุณอธิบาย:

  • 2 การกระทำ (0 และ 1) พร้อมใช้งานเสมอ
  • 2 การกระทำ (2 และ 3) จะใช้ได้เฉพาะเมื่อ internal_state == 0
  • 1 การกระทำ (4) ใช้ได้เฉพาะเมื่อ internal_state == 1

ในกรณีที่internal_state == 0หากมีการ4เลือกการกระทำ(การกระทำที่ผิดกฎหมาย) คุณสามารถสลับการกระทำนั้นเป็นการกระทำอย่างอื่นอย่างใดอย่างหนึ่งและเล่นการกระทำนั้นแทน มันไม่สำคัญเลย (ตามหลักวิชา) ที่คุณเลือกตราบใดที่คุณสอดคล้องกับมัน อัลกอริทึมไม่จำเป็นต้องรู้ว่ามันเลือกการกระทำที่ผิดกฎหมายเมื่อใดก็ตามที่มันเลือกการกระทำที่ผิดกฎหมายเดียวกันในอนาคตอีกครั้งในรัฐที่คล้ายกันมันจะถูกแมปไปยังการดำเนินการทางกฎหมายเดียวกันเสมอ


01


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

ฉันคาดหวังอย่างแน่นอนว่ามันจะเป็นประโยชน์ต่อประสิทธิภาพหากคุณสามารถรวมคุณลักษณะอินพุตสำหรับinternal_stateตัวแปร

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


2

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

ตัวเลือกการออกแบบที่ระบุไว้ในคำถาม

ตัวเลือกเหล่านี้แสดงไว้ที่นี่สำหรับการอ้างอิงอย่างรวดเร็วเมื่ออ่านการวิเคราะห์เริ่มต้นด้านล่าง

  • เปลี่ยนพื้นที่การดำเนินการในแต่ละขั้นตอนขึ้นอยู่กับ internal_state ฉันคิดว่านี่เป็นเรื่องไร้สาระ
  • ไม่ทำอะไรเลย: ปล่อยให้นายแบบเข้าใจว่าการเลือกการกระทำที่ไม่พร้อมใช้งานไม่มีผลกระทบ
  • ทำ - เกือบทุกอย่าง: ส่งผลกระทบต่อรางวัลลบเล็กน้อยเมื่อแบบจำลองเลือกการกระทำที่ไม่พร้อมใช้งาน
  • ช่วยโมเดล: โดยการรวมจำนวนเต็มเข้าไปในพื้นที่รัฐ / การสังเกตที่แจ้งให้โมเดลทราบว่าค่า internal_state + bullet point 2 หรือ 3 คืออะไร

การวิเคราะห์เบื้องต้น

แน่นอนว่ามีเหตุผลที่จะเปลี่ยนพื้นที่การกระทำสำหรับการเคลื่อนไหวแต่ละครั้ง นั่นคือในความเป็นจริงการแสดงที่เหมาะสมสำหรับปัญหาตามที่ระบุไว้และวิธีปกติของมนุษย์เล่นเกมและวิธีที่คอมพิวเตอร์เอาชนะมนุษย์ใน Chess and Go

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

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

ปัญหาเกี่ยวกับแนวคิดของการช่วยเหลือแบบจำลองคือมันไม่ได้เป็นความคิดที่แข็งแกร่งกว่าการขยายแบบจำลอง ในโอเพ่นซอร์สสิ่งนี้จะทำโดยการขยายคลาสที่เป็นตัวแทนของโมเดลซึ่งจะต้องใช้งานเชิงทฤษฎีบางอย่างก่อนการเข้ารหัส

    a. Represent rule-conditioned learning in nomenclature
    b. Represent convergence mathematically using the new nomenclature
    c. Determining a method of convergence
    d. Proving convergence
    e. Rechecking
    f. Defining a smooth and efficient algorithm
    g. Providing PAC learning information for planning
    f. Peer review
    g. Extending the classes of the library
    h. Proof of concept with the current problem above
    i. Additional cases and metrics comparing the approach with the others
    j. Extending the library flexibility to support more such dev

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

สำหรับวิธีแก้ปัญหาระยะสั้นการช่วยแบบจำลองอาจใช้งานได้ แต่มันไม่ใช่กลยุทธ์ที่ดีในการส่งเสริมความคิดของ AI ในเส้นทางการเรียนรู้การเสริมแรง ในฐานะที่เป็นทางออกระยะสั้นสำหรับปัญหาบางอย่างมันอาจทำงานได้ดี ความคิดที่แทบจะไม่มีอะไรเลยอาจจะฟังดูดีกว่าเพราะมันเหมาะกับหลักฐานการลู่เข้าที่นำไปสู่การใช้งานเฉพาะ Tensorforce มีแนวโน้มที่จะใช้

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


3
สิ่งที่มักจะเกิดขึ้นเช่นใน AlphaGo คือการเป็นตัวแทนระดับต่ำในโครงข่ายประสาทเทียมเป็นพื้นที่ปฏิบัติการขนาดใหญ่มากซึ่งส่วนใหญ่เป็นไปไม่ได้ในสถานะปัจจุบัน (เป็นเช่นนี้เนื่องจากข้อ จำกัด ของ NN ง่ายๆ ) จากนั้นอีกส่วนหนึ่งของรหัสจะใช้ตัวกรองเพื่อเลือกและทำให้ความน่าจะเป็นปกติสำหรับการย้ายที่อนุญาตเท่านั้น NN รวมกันและตัวกรองเป็นส่วนหนึ่งของเอเจนต์ ดังนั้นจึงยุติธรรมที่จะกล่าวว่าตัวแทนโดยรวมจะ "เปลี่ยนพื้นที่การดำเนินการสำหรับการย้ายแต่ละครั้ง" - ฉันไม่ทราบวิธีที่อาจประสบความสำเร็จในห้องสมุด Tensorforce ว่า
Neil Slater

1

โดยปกติชุดของการกระทำที่ตัวแทนสามารถดำเนินการได้ไม่เปลี่ยนแปลงตลอดเวลา แต่การกระทำบางอย่างอาจเป็นไปไม่ได้ในรัฐที่แตกต่างกัน

ลองดูตัวอย่างที่ pice ของรหัสhttps://github.com/haje01/gym-tictactoe/blob/master/examples/base_agent.py :

ava_actions = env.available_actions()
action = agent.act(state, ava_actions)
state, reward, done, info = env.step(action)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.