อ่าน 7 นาที
การเพิ่มประสิทธิภาพนโยบายในระยะใกล้
การปรับนโยบายให้เหมาะสมแบบใกล้เคียง (Proximal Policy OptimizationหรือPPO ) เป็น อัลกอริธึม การเรียนรู้แบบเสริมแรง (Reinforcement Learning หรือ RL)...
การเพิ่มประสิทธิภาพนโยบายในระยะใกล้
| ส่วนหนึ่งของชุดบทความเกี่ยวกับ |
| การเรียนรู้ของเครื่องจักรและการขุดข้อมูล |
|---|
การปรับนโยบายให้เหมาะสมแบบใกล้เคียง (Proximal Policy OptimizationหรือPPO ) เป็น อัลกอริธึม การเรียนรู้แบบเสริมแรง (Reinforcement Learning หรือ RL) สำหรับฝึกตัวแทนอัจฉริยะโดยเฉพาะอย่างยิ่ง เป็นวิธีการไล่ระดับนโยบายซึ่งมักใช้กับการเรียนรู้แบบเสริมแรงเชิงลึก (Deep RL)เมื่อเครือข่ายนโยบายมีขนาดใหญ่มาก
ประวัติศาสตร์
อัลกอริทึมก่อนหน้าของ PPO คือ Trust Region Policy Optimization (TRPO) ซึ่งเผยแพร่ในปี 2015 โดยแก้ไขปัญหาความไม่เสถียรของอัลกอริทึมอื่นคือDeep Q-Network (DQN) โดยใช้ วิธี การ Trust Regionเพื่อจำกัดความแตกต่างของ KLระหว่างนโยบายเก่าและนโยบายใหม่ อย่างไรก็ตาม TRPO ใช้เมทริกซ์ Hessian (เมทริกซ์ของอนุพันธ์อันดับสอง) เพื่อบังคับใช้ Trust Region แต่เมทริกซ์ Hessian นั้นไม่มีประสิทธิภาพสำหรับปัญหาขนาดใหญ่[ 1 ]
PPO ได้รับการเผยแพร่ในปี 2017 โดยพื้นฐานแล้วเป็นการประมาณค่า TRPO ที่ไม่จำเป็นต้องคำนวณ Hessian ข้อจำกัดการล divergence ของ KL ได้รับการประมาณค่าโดยการตัดความชันของนโยบาย[ 2 ]
ตั้งแต่ปี 2018 PPO เป็นอัลกอริธึม RL เริ่มต้นที่OpenAI [ 3 ] PPO ได้ถูกนำไปใช้ในหลายด้าน เช่นการควบคุมแขนหุ่นยนต์การเอาชนะผู้เล่นมืออาชีพในDota 2 ( OpenAI Five ) และการเล่นเกม Atari [ 4 ]
ทรอปโป
TRPO ซึ่งเป็นรุ่นก่อนหน้าของ PPO เป็นอัลกอริธึมแบบ on-policy สามารถใช้งานได้ในสภาพแวดล้อมที่มีพื้นที่การกระทำแบบไม่ต่อเนื่องหรือแบบต่อเนื่องก็ได้
รหัสเทียมมีดังนี้: [ 5 ]
- อินพุต: พารามิเตอร์นโยบายเริ่มต้น, พารามิเตอร์ฟังก์ชันค่าเริ่มต้น
- พารามิเตอร์: ขีดจำกัดความแตกต่าง KL , สัมประสิทธิ์การย้อนกลับ, จำนวนขั้นตอนการย้อนกลับสูงสุด
- เพื่อทำ
- รวบรวมชุดวิถีการเคลื่อนที่โดยการเรียกใช้นโยบายในสภาพแวดล้อม
- คำนวณรางวัลที่จะได้รับ
- คำนวณค่าประมาณความได้เปรียบ(โดยใช้วิธีการประมาณความได้เปรียบใดๆ ก็ได้) โดยอิงจากฟังก์ชันมูลค่าปัจจุบัน
- ประมาณการความชันของนโยบายดังนี้
- ใช้ขั้นตอนวิธีไล่ระดับแบบสังยุค (conjugate gradient algorithm)เพื่อคำนวณหาค่าHessian ของค่าเฉลี่ย KL-divergence ของตัวอย่าง
- ปรับปรุงนโยบายโดยใช้การค้นหาเส้นแบบย้อนกลับ โดยกำหนดค่าที่น้อยที่สุดซึ่งช่วยปรับปรุงค่าความสูญเสียของตัวอย่างและตรงตามข้อจำกัดความแตกต่างของ KL ในตัวอย่าง
- ปรับฟังก์ชันค่าให้เหมาะสมโดยใช้การถดถอยบนค่าความคลาดเคลื่อนกำลังสองเฉลี่ย: โดยทั่วไปจะใช้ขั้นตอนวิธีลดความชัน (gradient descent) บางอย่าง
พีพีโอ
รหัสเทียมมีดังนี้: [ 6 ]
- อินพุต: พารามิเตอร์นโยบายเริ่มต้น, พารามิเตอร์ฟังก์ชันค่าเริ่มต้น
- เพื่อทำ
- รวบรวมชุดวิถีการเคลื่อนที่โดยการเรียกใช้นโยบายในสภาพแวดล้อม
- คำนวณรางวัลที่จะได้รับ
- คำนวณค่าประมาณความได้เปรียบ(โดยใช้วิธีการประมาณความได้เปรียบใดๆ ก็ได้) โดยอิงจากฟังก์ชันมูลค่าปัจจุบัน
- ปรับปรุงนโยบายโดยการเพิ่มค่าเป้าหมาย PPO-Clip ให้สูงสุด: โดยทั่วไปแล้วจะทำได้โดยใช้วิธีการเพิ่มค่าความชันแบบสุ่ม (stochastic gradient ascent) ด้วย Adam
- ปรับฟังก์ชันค่าให้เหมาะสมโดยใช้การถดถอยบนค่าความคลาดเคลื่อนกำลังสองเฉลี่ย: โดยทั่วไปจะใช้ขั้นตอนวิธีลดความชัน (gradient descent) บางอย่าง
เช่นเดียวกับวิธีการไล่ระดับนโยบายอื่นๆ PPO ถูกใช้สำหรับการฝึกตัวแทน RL ที่การกระทำถูกกำหนดโดยฟังก์ชันนโยบายที่สามารถหาอนุพันธ์ได้โดยวิธีการไล่ระดับความชัน
โดยสัญชาตญาณแล้ว วิธีการไล่ระดับนโยบายจะใช้ขั้นตอนการปรับปรุงนโยบายเล็กๆ ทำให้เอเจนต์สามารถบรรลุผลตอบแทนที่คาดหวังได้สูงขึ้นเรื่อยๆ
วิธีการไล่ระดับนโยบายอาจไม่เสถียร: ขนาดขั้นตอนที่ใหญ่เกินไปอาจนำนโยบายไปในทิศทางที่ไม่เหมาะสม ทำให้มีโอกาสน้อยที่จะแก้ไขได้ ในขณะที่ขนาดขั้นตอนที่เล็กเกินไปจะลดประสิทธิภาพโดยรวมลง
เพื่อแก้ปัญหาความไม่เสถียร PPO ใช้ฟังก์ชันคลิปที่จำกัดการอัปเดตนโยบายของเอเจนต์ไม่ให้มีขนาดใหญ่เกินไป เพื่อให้สามารถใช้ขนาดขั้นตอนที่ใหญ่ขึ้นได้โดยไม่ส่งผลเสียต่อกระบวนการเพิ่มระดับความชัน[ 7 ]
แนวคิดพื้นฐาน
เพื่อเริ่มต้นกระบวนการฝึก PPO ตัวแทนจะถูกตั้งค่าในสภาพแวดล้อมเพื่อดำเนินการตามอินพุตปัจจุบัน ในช่วงเริ่มต้นของการฝึก ตัวแทนสามารถสำรวจโซลูชันได้อย่างอิสระและติดตามผลลัพธ์ ต่อมา เมื่อมีตัวอย่างการเปลี่ยนสถานะและการอัปเดตนโยบายจำนวนหนึ่ง ตัวแทนจะเลือกการกระทำที่จะทำโดยการสุ่มตัวอย่างจากการกระจายความน่าจะเป็น ที่สร้างขึ้นโดยเครือข่ายนโยบาย[ 8 ]การกระทำที่มีแนวโน้มที่จะเป็นประโยชน์มากที่สุดจะมีโอกาสถูกเลือกจากตัวอย่างแบบสุ่มสูงสุด หลังจากที่ตัวแทนมาถึงสถานการณ์ที่แตกต่างกัน ( สถานะ ใหม่ ) โดยการกระทำ ตัวแทนจะได้รับรางวัลเป็นบวกหรือลบ เป้าหมายของตัวแทนคือการเพิ่มสัญญาณรางวัลสะสมให้สูงสุดในลำดับของสถานะที่เรียกว่า ตอน
กฎการไล่ระดับนโยบาย: ฟังก์ชันความได้เปรียบ
ฟังก์ชันความได้เปรียบ (แสดงด้วย) เป็นหัวใจสำคัญของ PPO เนื่องจากพยายามตอบคำถามว่าการกระทำเฉพาะอย่างของตัวแทนนั้นดีกว่าหรือแย่กว่าการกระทำอื่นที่เป็นไปได้ในสถานะที่กำหนดหรือไม่ ตามคำจำกัดความ ฟังก์ชันความได้เปรียบเป็นการประมาณค่าสัมพัทธ์ของการกระทำที่เลือก หากผลลัพธ์ของฟังก์ชันนี้เป็นบวก หมายความว่าการกระทำดังกล่าวดีกว่าผลตอบแทนเฉลี่ย ดังนั้นความเป็นไปได้ในการเลือกการกระทำเฉพาะนั้นจะเพิ่มขึ้น ในทางตรงกันข้าม หากผลลัพธ์ความได้เปรียบเป็นลบ แสดงว่าผลลัพธ์เป็นบวก[ 1 ]
ฟังก์ชันข้อได้เปรียบสามารถกำหนดได้เป็น โดยที่คือผลรวมส่วนลดของรางวัล (รางวัลถ่วงน้ำหนักทั้งหมดสำหรับการเสร็จสิ้นตอน) และคือค่าประมาณพื้นฐาน[ 9 ] [ 1 ]เนื่องจากฟังก์ชันข้อได้เปรียบคำนวณหลังจากเสร็จสิ้นตอน โปรแกรมจึงบันทึกผลลัพธ์ของตอน ดังนั้น การคำนวณข้อได้เปรียบจึงเป็น ปัญหา การเรียนรู้แบบไม่กำกับดูแล โดยพื้นฐาน ค่าประมาณพื้นฐานมาจากฟังก์ชันค่าที่ส่งออกผล รวมส่วนลด ที่คาดหวังของตอนโดยเริ่มจากสถานะปัจจุบัน ในอัลกอริทึม PPO ค่าประมาณพื้นฐานจะมีสัญญาณรบกวน (มีความแปรปรวน บางส่วน ) เนื่องจากใช้โครงข่ายประสาทเทียมเช่นเดียวกับฟังก์ชันนโยบายเอง เมื่อ คำนวณ และ แล้วฟังก์ชันข้อได้เปรียบจะคำนวณโดยการลบค่าประมาณพื้นฐานออกจากผลตอบแทนส่วนลดจริง[ 10 ]ถ้าผลตอบแทนจริงของการกระทำจะดีกว่าผลตอบแทนที่คาดหวังจากประสบการณ์ ถ้าผลตอบแทนจริงจะแย่กว่า
ฟังก์ชันอัตราส่วน
ใน PPO ฟังก์ชันอัตราส่วน ( ) คำนวณความน่าจะเป็นของการเลือกการกระทำในสถานะที่กำหนดโดยเครือข่ายนโยบายปัจจุบัน หารด้วยความน่าจะเป็นก่อนหน้าภายใต้นโยบายเก่า กล่าวอีกนัยหนึ่งคือ:
- ถ้าพารามิเตอร์เครือข่ายนโยบายอยู่ที่ใด การเลือกการกระทำ ในสถานะนั้นมีแนวโน้มที่จะขึ้นอยู่กับนโยบายปัจจุบันมากกว่านโยบายก่อนหน้า
- ถ้าเป็นเช่นนั้น โอกาสในการเลือกการกระทำในรัฐนั้นจะน้อยลงเมื่อพิจารณาจากนโยบายปัจจุบันเมื่อเทียบกับนโยบายเดิม
ดังนั้น ฟังก์ชันอัตราส่วนนี้จึงสามารถประมาณความแตกต่างระหว่างนโยบายเก่าและนโยบายปัจจุบันได้อย่างง่ายดาย[ 11 ] [ 7 ]
ฟังก์ชันวัตถุประสงค์ PPO
ฟังก์ชันเป้าหมายของ PPO ใช้ตัวดำเนินการค่าคาดหวัง (แทนด้วย) ซึ่งหมายความว่าฟังก์ชันนี้จะถูกคำนวณจากปริมาณของวิถีการเคลื่อนที่ ตัวดำเนินการค่าคาดหวังจะเลือกค่าต่ำสุดของสองพจน์:
- : นี่คือผลคูณของฟังก์ชันอัตราส่วนและฟังก์ชันข้อได้เปรียบที่นำเสนอใน TRPO หรือที่รู้จักกันในชื่อวัตถุประสงค์การไล่ระดับนโยบายปกติ[ 12 ]
- : อัตราส่วนนโยบายจะถูกจำกัดให้อยู่ในช่วงก่อนโดยทั่วไปจะกำหนดให้เป็น 0.2 จากนั้นจึงนำไปคูณด้วยข้อได้เปรียบเช่นเดียวกับที่กล่าวมาแล้ว
หลักการพื้นฐานเบื้องหลัง PPO เหมือนกับ TRPO คือ การอนุรักษ์นิยม การตัดค่าส่งผลให้การประมาณค่าความได้เปรียบของนโยบายใหม่มีความอนุรักษ์นิยม เหตุผลก็คือ หากตัวแทนทำการเปลี่ยนแปลงอย่างมีนัยสำคัญเนื่องจากการประมาณค่าความได้เปรียบสูง การอัปเดตนโยบายของตัวแทนจะมีขนาดใหญ่และไม่เสถียร และอาจเบี่ยงเบนจากนโยบายที่เหมาะสมที่สุดโดยมีโอกาสน้อยที่จะแก้ไขได้[ 13 ]ฟังก์ชันการตัดค่ามีการใช้งานทั่วไปสองแบบ: เมื่อการกระทำภายใต้นโยบายใหม่เป็นทางเลือกที่ดีโดยพิจารณาจากฟังก์ชันความได้เปรียบ ฟังก์ชันการตัดค่าจะจำกัดว่าสามารถให้เครดิตแก่นโยบายใหม่ได้มากน้อยเพียงใดสำหรับการกระทำที่ดีที่มีน้ำหนักเพิ่มขึ้น ในทางกลับกัน เมื่อการกระทำภายใต้นโยบายเดิมถูกตัดสินว่าไม่ดี ฟังก์ชันการตัดค่าจะจำกัดว่าตัวแทนสามารถยอมรับการกระทำที่ไม่ดีที่มีน้ำหนักลดลงของนโยบายใหม่ได้มากน้อยเพียงใด[ 14 ]ด้วยเหตุนี้ กลไกการตัดค่าจึงถูกออกแบบมาเพื่อยับยั้งแรงจูงใจในการเคลื่อนที่เกินขอบเขตที่กำหนดโดยการตัดค่าทั้งสองทิศทาง ข้อดีของวิธีนี้คือสามารถปรับให้เหมาะสมที่สุดได้โดยตรงด้วยการไล่ระดับความชัน (gradient descent ) ซึ่งแตกต่างจากข้อจำกัดเรื่องความแตกต่างของ KL ที่เข้มงวดของ TRPO ทำให้การใช้งานรวดเร็วและเข้าใจง่ายกว่า
หลังจากคำนวณฟังก์ชันวัตถุประสงค์ตัวแทนที่ถูกตัดแล้ว ตัวแทนจะมีอัตราส่วนความน่าจะเป็นสองค่า ได้แก่ ค่าที่ไม่ถูกตัดและค่าที่ถูกตัด จากนั้น โดยการหาค่าต่ำสุดของวัตถุประสงค์ทั้งสอง ค่าวัตถุประสงค์สุดท้ายจะกลายเป็นขอบเขตล่าง ( ขอบเขต มองโลกในแง่ร้าย ) ของสิ่งที่ตัวแทนรู้ว่าเป็นไปได้[ 14 ]กล่าวอีกนัยหนึ่ง วิธีการหาค่าต่ำสุดทำให้มั่นใจได้ว่าตัวแทนกำลังทำการอัปเดตที่ปลอดภัยที่สุดเท่าที่จะเป็นไปได้
ข้อดี
ความเรียบง่าย
PPO ประมาณการสิ่งที่ TRPO ทำ โดยใช้การคำนวณน้อยกว่ามาก โดยใช้การเพิ่มประสิทธิภาพอันดับแรก (ฟังก์ชันคลิป) เพื่อจำกัดการอัปเดตนโยบาย ในขณะที่ TRPO ใช้ข้อจำกัดความแตกต่าง KL (การเพิ่มประสิทธิภาพอันดับสอง) เมื่อเทียบกับ TRPO วิธี PPO นั้นง่ายต่อการใช้งานและต้องการทรัพยากรการคำนวณและเวลาน้อยกว่า ดังนั้นจึงถูกกว่าและมีประสิทธิภาพมากกว่าในการใช้ PPO ในปัญหาขนาดใหญ่[ 15 ]
ความเสถียร
ในขณะที่อัลกอริธึม RL อื่นๆ จำเป็นต้อง ปรับแต่ง ไฮเปอร์พารามิเตอร์แต่ PPO ไม่จำเป็นต้องปรับแต่งมากนัก (สามารถใช้ค่า epsilon 0.2 ได้ในกรณีส่วนใหญ่) [ 16 ]นอกจากนี้ PPO ไม่จำเป็นต้องใช้เทคนิคการเพิ่มประสิทธิภาพที่ซับซ้อน สามารถฝึกฝนได้ง่ายด้วย เฟรมเวิร์ก การเรียนรู้เชิงลึก มาตรฐาน และสามารถนำไปใช้กับงานต่างๆ ได้หลากหลาย
ประสิทธิภาพตัวอย่าง
ประสิทธิภาพการใช้ตัวอย่างบ่งชี้ว่าอัลกอริธึมต้องการข้อมูลมากหรือน้อยเพียงใดในการฝึกนโยบายที่ดี PPO บรรลุประสิทธิภาพการใช้ตัวอย่างเนื่องจากการใช้วัตถุประสงค์ตัวแทน วัตถุประสงค์ตัวแทนช่วยให้ PPO หลีกเลี่ยงนโยบายใหม่ที่เคลื่อนห่างจากนโยบายเก่ามากเกินไป ฟังก์ชันคลิปจะควบคุมการอัปเดตนโยบายและนำข้อมูลการฝึกอบรมกลับมาใช้ใหม่ ประสิทธิภาพการใช้ตัวอย่างมีประโยชน์อย่างยิ่งสำหรับงานที่ซับซ้อนและมีมิติสูง ซึ่งการรวบรวมข้อมูลและการคำนวณอาจมีค่าใช้จ่ายสูง[ 17 ]
ดูเพิ่มเติม
ลิงก์ภายนอก
- ประกาศเกี่ยวกับการปรับปรุงนโยบายระยะใกล้โดย OpenAI
- ที่เก็บ GitHub
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การเพิ่มประสิทธิภาพนโยบายในระยะใกล้
การปรับนโยบายให้เหมาะสมแบบใกล้เคียง (Proximal Policy OptimizationหรือPPO ) เป็น อัลกอริธึม การเรียนรู้แบบเสริมแรง (Reinforcement Learning หรือ RL)...
ประวัติศาสตร์
อัลกอริทึมก่อนหน้าของ PPO คือ Trust Region Policy Optimization (TRPO) ซึ่งเผยแพร่ในปี 2015 โดยแก้ไขปัญหาความไม่เสถียรของอัลกอริทึมอื่นคือ Deep Q-Network (DQN) โดยใช้ วิธี การ Trust Region เพื่อจำกัดความ แตกต่างของ KL ระหว่างนโยบายเก่าและนโยบายใหม่...
ทรอปโป
TRPO ซึ่งเป็นรุ่นก่อนหน้าของ PPO เป็นอัลกอริธึมแบบ on-policy สามารถใช้งานได้ในสภาพแวดล้อมที่มีพื้นที่การกระทำแบบไม่ต่อเนื่องหรือแบบต่อเนื่องก็ได้
แนวคิดพื้นฐาน
เพื่อเริ่มต้นกระบวนการฝึก PPO ตัวแทนจะถูกตั้งค่าในสภาพแวดล้อมเพื่อดำเนินการตามอินพุตปัจจุบัน ในช่วงเริ่มต้นของการฝึก ตัวแทนสามารถสำรวจโซลูชันได้อย่างอิสระและติดตามผลลัพธ์ ต่อมา เมื่อมีตัวอย่างการเปลี่ยนสถานะและการอัปเดตนโยบายจำนวนหนึ่ง...