التعلم المعزز2017متوسط10 دقيقة قراءة
خوارزمية تحسين السياسة القريبة (PPO)
Proximal Policy Optimization Algorithms
Schulman, J. · Wolski, F. · Dhariwal, P. · Radford, A. · Klimov, O. — arXiv
المشكلة
أساليب تدرُّج في قوية لكنها هشّة. REINFORCE تستهلك كل عيّنة مرة واحدة ثم تتخلّص منها — إسراف شديد في البيانات. أما TRPO فتضمن تحسّناً رتيباً بفرض قيد صارم على ، لكنها تعتمد على تحسين من الرتبة الثانية مُعقّد وصعب التنفيذ مع البنى المشتركة، ولا يتوافق مع الإسقاط العشوائي أو التشويش. ما احتاجه الممارسون هو خوارزمية تجمع استقرار TRPO مع بساطة أساليب الرتبة الأولى .
الإسهام
تقدّم PPO دالة هدف بديلة مقصوصة تمنع التحديثات المدمّرة دون الحاجة لتحسين من الرتبة الثانية. تُحصَر r(θ) = π_θ(a|s) / π_old(a|s) في المجال [1−ε, 1+ε]، فيتشكّل سقف مسطّح يوقف المُحسِّن حالما تتغيّر السياسة بالقدر الكافي. وبدمج ذلك مع عدة دورات تدريبية من تحديثات الدفعات المصغرة على بيانات المسار نفسها، تحقّق PPO استقرار TRPO ببساطة بضعة أسطر من الكود. تقترح الورقة أيضاً نسخة بديلة تعتمد عقوبة KL تكيّفية.
الأثر
أصبحت PPO الخوارزمية المعتمَدة للتعلم المعزز في عصر التعلم العميق. استخدمتها OpenAI ChatGPT عبر التعلم المعزز من التغذية الراجعة البشرية (RLHF)، واعتمد عليها DeepSeek-R1 لتدريب قدرات الاستدلال، وبها دُرِّب OpenAI Five للعب Dota 2، وعليها تقوم أنظمة التحكم الروبوتي كـتعلّم البراعة اليدوية. بساطتها ومتانتها فتحت باب التعلم المعزز لممارسين ليسوا بالضرورة متخصصين فيه.
تدريب السياسة يشبه ضبط وصفة طعام والمطعم مفتوح أمام الزبائن. تتذوّق الطبق، تعدّل التوابل، ثم تقدّمه مجدداً. REINFORCE ترمي الطبق بعد تذوّق واحد — مُبذِّرة. TRPO تستأجر عالِم أغذية ليحسب التعديل الآمن بدقة — نتيجة دقيقة لكن بتكلفة عالية. أما PPO فهي الطبّاخ العَمَلي: تذوَّق، عدِّل، لكن لا تُضِف أكثر من رشّة في كل مرة. إن كان التغيير كبيراً، توقَّف فوراً — لا تستمر بالسكب. «حدّ الرشّة» هذا هو آلية ، وهو ما يجعل PPO مستقرّة وبسيطة في آنٍ واحد.
المشكلة: تحديثات السياسة المُفرِطة
في التعلم المعزز، تحدّد السياسة احتمال كل فعل في كل حالة. يجمع من ، يحسب العوائد، ثم يحدّث لزيادة احتمال الأفعال الجيدة. هذه هي فكرة التي تقوم عليها REINFORCE.
السؤال الجوهري هنا: ما المقدار المناسب لكل تحديث؟
- خطوة صغيرة جداً تجعل التعلّم بطيئاً بشكل مؤلم — كل مسار يُستخدَم مرة ثم يُهمَل.
- خطوة كبيرة جداً قد تُنهي السياسة: تقفز إلى منطقة سيئة، تجمع بيانات رديئة منها، وتدخل في دوامة انحدار. تحديث سيئ واحد قد يمحو مكاسب آلاف التحديثات السابقة.
هذا ليس مجرد قلق نظري. في الواقع، التدريب بتدرُّج السياسة المباشر مشهور بعدم استقراره، وضبط فيه أقرب إلى فنّ منه إلى علم.
إجابة TRPO: منطقة الثقة
عالجت TRPO مشكلة التجاوز بفرض قيد صارم: تباعد KL بين السياسة القديمة والجديدة يجب أن يبقى تحت عتبة . هذا يضمن نظرياً تحسّناً رتيباً — كل تحديث إمّا يُحسِّن السياسة أو لا يفعل شيئاً.
لكن ثمن هذا الضمان ليس بسيطاً:
- تتطلب حساب مصفوفة معلومات فيشر (مشتقات من الرتبة الثانية)، فتصبح كل خطوة مكلفة حوسبياً.
- التحسين المقيّد يعتمد على التدرج المترافق مع بحث خطي — تطبيقه معقّد وتشخيص أخطائه أصعب.
- لا تتوافق مع البنى التي تتشارك المعاملات بين شبكة السياسة و، ولا مع تقنيات التنظيم كـ.
السؤال الذي طرحته PPO: هل يمكن تحقيق استقرار TRPO بلا أكثر من تدرُّجات الرتبة الأولى و ذكية؟
الفكرة المحورية: اقصص نسبة الاحتمال
تنطلق PPO من نفسها التي تستخدمها TRPO، لكنها تستبدل القيد الصارم بآلية بسيطة بشكل لافت. نبدأ بتعريف نسبة الاحتمال:
هذه النسبة تقيس مقدار اختلاف السياسة الجديدة عن القديمة بالنسبة لفعل معيّن. حين تكون فالسياستان متطابقتان. حين تكون فالسياسة الجديدة تعطي هذا الفعل احتمالاً أعلى، وحين تكون تعطيه احتمالاً أقل.
دالة الهدف البديلة بلا قيود تأخذ الشكل:
حيث هي المقدَّرة — أي مقدار تفوّق هذا الفعل على المتوسط. تعظيم هذه الدالة يدفع السياسة لتكرار الأفعال الجيدة بوتيرة أعلى. لكن بلا أي قيد، لا شيء يمنع من النمو بلا حدود، فتصبح التحديثات مدمّرة.
لماذا نأخذ الحد الأدنى؟ فكّر فيه كحدٍّ تشاؤمي يحمي من المبالغة في التحديث. حين تكون الميزة موجبة ( — أي أن الفعل أفضل من المتوسط)، يضع القصّ سقفاً على المكسب حين تتجاوز قيمة : «هذا الفعل جيد، لكنك زدت احتماله بما يكفي». وحين تكون الميزة سلبية ( — فعل أسوأ من المتوسط)، يمنع القصّ من الانخفاض دون : «هذا الفعل سيئ، لكن لا تُنقص احتماله بسرعة مفرطة».
ما يفعله القصّ عملياً هو إنشاء منطقة مسطحة في سطح دالة الهدف — هضبة يصبح فيها صفراً. حالما تتغيّر السياسة بالقدر الكافي، لا يجد المُحسِّن أي ميل يتبعه فيتوقف تلقائياً. لا حلّال قيود، لا رياضيات من الرتبة الثانية، لا مصفوفة فيشر — فقط min وclip.
المعلمة الفائقة ε: ما مقدار التغيير «الكافي»؟
عتبة القصّ ε تتحكم في الموازنة بين الاستقرار وسرعة التعلم. قيمة كبيرة (مثلاً 0.3) تسمح بتغييرات أوسع في السياسة عند كل تحديث — تعلُّم أسرع لكن مع خطر فقدان الاستقرار. قيمة صغيرة (مثلاً 0.1) تُضيّق نطاق التحديثات — تدريب أكثر أماناً لكنه أبطأ. تعتمد الورقة ε = 0.2 كقيمة افتراضية، وقد أثبتت فعاليتها عبر مهام متنوعة جداً، من ألعاب Atari إلى المشي الروبوتي في بيئات المحاكاة.
فكّر في ε كأنه حدّ السرعة على طريق سريع: حدٌّ منخفض جداً يُبطئ حركة المرور، وحدٌّ مرتفع جداً يتسبب في حوادث. القيمة 0.2 تمثّل النقطة المثالية — سريعة كفاية للتعلم الفعّال، ومنضبطة كفاية لتجنب الانهيار.
البديل: عقوبة KL التكيّفية
تقترح PPO أيضاً نسخة ثانية — PPO بالعقوبة — تستبدل القصّ بعقوبة على تباعد KL. الفكرة: أضف حدّ عقوبة إلى دالة الهدف، ثم اجعل يتكيّف تلقائياً:
- إن كان تباعد KL بعد التحديث كبيراً جداً (أعلى من )، زِد — أي شُدّ القيد.
- إن كان تباعد KL صغيراً جداً (أقل من )، أنقِص — أي أرخِ القيد.
بذلك تضبط العقوبة شدّتها ذاتياً. عملياً، يُفضَّل PPO-Clip لأنه أبسط وأكثر متانة، لكن PPO بالعقوبة يظلّ خياراً مفيداً حين تحتاج تحكماً مباشراً أدقّ في مقدار ابتعاد السياسة الجديدة عن القديمة.
حلقة تدريب PPO: بسيطة وصديقة للمعالجات
خوارزمية PPO كاملةً بسيطة بشكل أنيق. في كل تكرار:
- اجمع البيانات — شغّل السياسة الحالية في البيئة لمدة خطوة زمنية عبر فاعل متوازٍ، لتحصل على دفعة من ثلاثيات (حالة، فعل، ).
- قدّر الميزة — استخدم (GAE) لحساب عند كل خطوة زمنية. يوازن GAE بين الانحياز والتباين من خلال المعلمة .
- حسِّن — لمدة ، قسِّم الدفعة إلى وطبِّق الانحدار التدريجي العشوائي على دالة الهدف المُجمَّعة:
حيث هي خسارة دالة القيمة (تدريب الناقد) و مكافأة التي تشجّع . 4. كرّر — اجعل وعُد للخطوة الأولى.
الملاحظة الجوهرية هنا: بما أن دالة الهدف المقصوصة تمنع التحديثات المدمّرة، يمكنك بأمان إعادة استخدام الدفعة نفسها لعدة دورات () بدل التخلّص منها بعد خطوة تدرُّج واحدة. وهذا يرفع كفاءة استخدام العيّنات بشكل ملحوظ.
دالة الهدف المقصوصة في الكود
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import torch
def ppo_clip_objective(
log_probs_new, # log π_θ(a|s) من السياسة الحالية
log_probs_old, # log π_θ_old(a|s) من سياسة جمع البيانات
advantages, # Â_t من التقدير المعمّم للميزة (GAE)
epsilon=0.2 # عتبة القصّ
):
# نسبة الاحتمال: كم تغيرت السياسة؟
ratio = torch.exp(log_probs_new - log_probs_old) # r(θ)
# الهدف بدون قصّ: يكافئ التغييرات الكبيرة (خطير!)
unclipped = ratio * advantages
# الهدف المقصوص: يحدّ النسبة بالمجال [1-ε, 1+ε]
clipped = torch.clamp(ratio, 1 - epsilon, 1 + epsilon) * advantages
# خذ الحد التشاؤمي (الأدنى)
loss = -torch.mean(torch.min(unclipped, clipped))
return loss # نعكس الإشارة لأن المُحسِّنات تُصغّرالنتائج: التفوق على المنافسين بالبساطة
اختبرت الورقة PPO على مجالين رئيسيين:
- التحكم المستمر (MuJoCo): روبوتات مُحاكاة تتعلم المشي والركض والقفز. حققت PPO أداءً يعادل TRPO أو يتفوّق عليه في غالبية المهام، مع كونها أبسط بكثير.
- ألعاب Atari: 49 لعبة أركيد كلاسيكية. نافست PPO أداء A2C (النسخة المتزامنة من A3C) وACER (طريقة خارج السياسة) وتفوّقت في أغلب الألعاب، بمجموعة واحدة من .
النتيجة الأهم: حققت PPO توازناً ممتازاً بين كفاءة استخدام العيّنات (كمّ البيانات المطلوبة)، وبساطة التطبيق، وسرعة التدريب الفعلية. لم تستطع أي خوارزمية أخرى آنذاك منافستها في هذه الأبعاد الثلاثة مجتمعة.
لماذا أصبحت PPO الخوارزمية الافتراضية
يوضّح التسلسل الزمني أدناه كيف تحوّلت PPO إلى العمود الفقري لمواءمة الذكاء الاصطناعي الحديث وما بعدها. ما بدأ كأسلوب تحسين عملي للروبوتات أصبح المحرّك وراء أكثر أنظمة الذكاء الاصطناعي تأثيراً في العقد الأخير.
2017
نشر PPO
نشر Schulman وزملاؤه خوارزمية PPO في OpenAI. اعتُمدت فوراً في تطبيقات الروبوتات والألعاب، وحلّت محل TRPO كخيار أول للممارسين.
2018
OpenAI Five — لعبة Dota 2
دُرِّب فريق من خمس شبكات عصبية باستخدام PPO حتى تمكّن من هزيمة أبطال العالم في Dota 2، وهي لعبة استراتيجية معقدة متعددة اللاعبين تتطلب تخطيطاً بعيد المدى.
2019
تعلّم البراعة اليدوية — يد روبوتية
تعلّمت يد روبوتية التعامل مع مكعب روبيك عبر PPO في بيئة محاكاة، ثم نُقلت المهارة إلى روبوت حقيقي — إنجاز بارز في مجال النقل من المحاكاة إلى الواقع.
2020
تعلّم التلخيص بالتغذية الراجعة البشرية
استخدمت OpenAI خوارزمية PPO لضبط النماذج اللغوية بناءً على تفضيلات البشر — خطوة مبكرة نحو RLHF أدّت لاحقاً إلى InstructGPT وChatGPT.
2022
InstructGPT و ChatGPT
أصبحت PPO المحرّك الأساسي للتعلم المعزز في أنظمة RLHF: نموذج المكافأة يُقيّم المخرجات، وPPO تُحسّن النموذج اللغوي ليولّد استجابات يفضّلها البشر. أوصل ChatGPT هذه المنظومة إلى أكثر من 100 مليون مستخدم.
2025
DeepSeek-R1
اعتمدDeepSeek-R1 على التعلم المعزز الصرف (GRPO، نسخة من PPO بلا شبكة ناقد) لتطوير قدرات الاستدلال، مما يُبيّن أن أثر PPO يمتدّ إلى نماذج الاستدلال من الجيل الجديد.
تفصيل قرارات التصميم الرئيسية
المرجعSchulman, Wolski, Dhariwal, Radford, Klimov. Proximal Policy Optimization Algorithms. arXiv, 2017.
مصطلحات هذه الورقة
- التحسين التقريبي للسياسةProximal Policy Optimization
- القصّClipping
- دالة الهدف البديلةSurrogate Objective
- منطقة الثقةTrust Region
- التقدير المعمّم للميزةGeneralized Advantage Estimation (GAE)
- نسبة الاحتمالProbability Ratio