أساليب الفاعل والناقد (A2C)
دالة الأفضلية، والفاعل (السياسة) والناقد (القيمة)، وتطبيق A2C المتزامن
أساليب الفاعل والناقد (A2C) درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
دمج السياسة والقيمة
تجمع أساليب Actor-Critic بين فكرتين: الممثّل، وهو سياسة تختار الأفعال، والناقد، وهو دالة قيمة تقيّمها. ويقدّم الناقد تغذية راجعة أقل تبايناً من العوائد الخام، مما يحقق استقراراً أكبر للتعلم.
الممثّل
الممثّل هو شبكة السياسة. ويُخرج logits الأفعال، أو احتمالاتها، للحالة الحالية تماماً كما في REINFORCE، ثم يقرر ما ينبغي فعله.
class ActorCritic(nn.Module):
def __init__(self, obs_dim, n_actions):
super().__init__()
self.shared = nn.Sequential(nn.Linear(obs_dim, 128), nn.ReLU())
self.actor = nn.Linear(128, n_actions)الناقد
يقدّر الناقد قيمة الحالة V(s)، أي العائد المتوقع انطلاقاً من الحالة s. وهو رأس ذو مخرج واحد يتنبأ بمدى جودة الوضع الحالي.
self.critic = nn.Linear(128, 1)
def forward(self, s):
h = self.shared(s)
return self.actor(h), self.critic(h)بنية أساسية مشتركة ورأسان
عادةً ما يتشارك الممثّل والناقد الطبقات المبكرة، أي البنية الأساسية، ثم ينفصلان إلى رأسين. وتُعد مشاركة السمات فعالة، كما تتيح للمهمتين تعزيز التمثيلات المفيدة.
دالة الأفضلية
الكمية الأساسية هي الأفضلية A = r + gamma * V(s') - V(s). وهي تقيس مدى تفوق الفعل على ما توقعه الناقد. تعني الأفضلية الموجبة أن الفعل «أفضل من المتوسط»، بينما تعني الأفضلية السالبة أنه أسوأ.
advantage = reward + gamma * V_next - V_currentلماذا تتفوق الأفضلية على العائد الخام
يؤدي استخدام الأفضلية بدلاً من العائد الكامل G_t إلى تمركز الإشارة حول تقدير الناقد، مما يقلل التباين بدرجة كبيرة. وهذا هو السبب الرئيسي في أن التعلم بأسلوب الممثّل-الناقد أكثر استقراراً من REINFORCE.
خسارة الممثّل
يُدرَّب الممثّل كما في REINFORCE، لكن مع ترجيح الأفعال بالأفضلية بدلاً من العائد: زِد احتمال الأفعال ذات الأفضلية الموجبة.
actor_loss = -(log_prob * advantage.detach()).mean()خسارة الناقد
يتعلم الناقد التنبؤ بالعوائد بدقة. وتتمثل خسارته في الخطأ التربيعي بين تنبؤه V(s) والهدف المرصود r + gamma * V(s').
target = reward + gamma * V_next.detach()
critic_loss = (V_current - target).pow(2).mean()الخسارة المجمّعة
درّب الرأسين معاً بجمع الخسارتين، وغالباً ما تُضاف مكافأة إنتروبيا صغيرة لتشجيع الاستكشاف. وتحدّث عملية انتشار عكسي واحدة البنية الأساسية المشتركة والرأسين.
loss = actor_loss + 0.5 * critic_loss - 0.01 * entropy
loss.backward()A2C المتزامن
إن A2C، أي الممثّل-الناقد القائم على الأفضلية، هو الإصدار المتزامن: إذ يجمع عدة عمّال متوازين الخبرات من نسخ البيئة في الوقت نفسه، ثم يستخدم تحديث متزامن واحد جميع بياناتهم، مما يحسن الاستقرار ومعدل الإنجاز.
# N parallel envs step together each iteration
# gather all transitions, then one combined updateA2C مقابل A3C
يتيح الإصدار غير المتزامن A3C للعمّال إجراء التحديثات بشكل مستقل. أما A2C فيزامن بينهم، وهو أبسط وأكثر ملاءمة لوحدات GPU، وعادةً ما يكون فعالاً بالقدر نفسه، ولذلك يحظى بشعبية كبيرة.
اختبار سريع
اختبر فهمك لأسلوب الممثّل-الناقد.
مراجعة: الممثّل-الناقد وA2C
لقد تعلّمتَ أن الممثّل يُخرج logits السياسة، وأن الناقد يقدّر V(s)، وغالباً ما يتم ذلك عبر بنية أساسية مشتركة برأسين. وتقلل الأفضلية r + gamma*V(s') - V(s) التباين، بينما يستخدم A2C المتزامن عمّالاً متوازيين لتحقيق تدريب مستقر وفعال.
الأسئلة الشائعة
هل درس «أساليب الفاعل والناقد (A2C)» مجاني؟
نعم — نص درس «أساليب الفاعل والناقد (A2C)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «أساليب الفاعل والناقد (A2C)»؟
دالة الأفضلية، والفاعل (السياسة) والناقد (القيمة)، وتطبيق A2C المتزامن تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «أساليب الفاعل والناقد (A2C)»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أساليب تدرّج السياسة: REINFORCE
- أساليب الفاعل والناقد (A2C)
- تحسين السياسة القريب (PPO)
- بيئات Gymnasium المخصصة