التعلم المعزز2016متوسط11 دقيقة قراءة

بنية الشبكة المزدوجة للتعلُّم المعزَّز العميق

Dueling Network Architectures for Deep Reinforcement Learning

Wang, Z. · Schaul, T. · Hessel, M. · van Hasselt, H. · Lanctot, M. · de Freitas, N. — ICML

المشكلة

في بنية DQN التقليدية، تمرّ السمات المستخرجة من الطبقات الالتفافية عبر مسار واحد من الطبقات كاملة الاتصال ليُنتج قيمة Q منفصلة لكل فعل. المشكلة أنّ الشبكة مضطرة لتعلّم قيمة كل فعل في كل حالة بشكل مستقل، حتى حين لا يؤثّر اختيار الفعل على النتيجة أصلًا. وكلّما كبُر فضاء الأفعال وتقاربت قيمها، أُهدرت سعة الشبكة وتباطأ التقارب.

الإسهام

تُقسِّم البنية المزدوجة الشبكة إلى مسارين بعد الطبقات الالتفافية المشتركة: مسار يُخرج عددًا واحدًا يمثّل قيمة الحالة V(s)، ومسار يُخرج قيمة أفضلية A(s,a) لكل فعل. يُدمج المساران بطريقة تطرح متوسط الأفضلية لتثبيت التفكيك ومنع الغموض. الفائدة الجوهرية أنّ مسار القيمة يتعلّم من كل تجربة يمرّ بها — لا من الفعل المختار وحده — فترتفع كفاءة التعلُّم بشكل ملموس حين تكون أفعال كثيرة متقاربة القيمة. بدمج هذه البنية مع DDQN وإعادة التشغيل ذات الأولوية، حقّقت أفضل النتائج على معيار Atari 2600.

الأثر

أصبحت البنية المزدوجة مكوّنًا راسخًا في التعلُّم المعزَّز العميق. أُدرج تفكيكها لدالة Q إلى قيمة V وأفضلية A ضمن وكيل Rainbow الذي جمع ستة تحسينات متعامدة في نظام واحد. والأثر الأعمق لهذه الورقة هو الفكرة ذاتها: أنّ بإمكانك تضمين المعرفة النظرية عن بنية المسألة — هنا تفكيك القيمة والأفضلية — مباشرةً في تصميم الشبكة، وهو ما فتح الباب أمام أعمال لاحقة في تصميم بنى مخصّصة للتعلُّم المعزَّز.

تخيّل أنك تبحث عن شقة للإيجار. شبكة DQN العادية تتعامل مع كل خيار بشكل منفصل: «الشقة ب + الأريكة الزرقاء = 82 نقطة» — درجة واحدة مدمجة.

الشبكة المزدوجة تفكّر بطريقة مختلفة: تسأل أولًا «ما مدى جاذبية الحي نفسه؟» — وهذه ، لا تتغيّر مهما بدّلت الأثاث. ثم تسأل «هل الأريكة الزرقاء تضيف شيئًا أو تنقص عن متوسط خيارات الأثاث؟» — وهذه . في حيٍّ ممتاز، معظم خيارات الأثاث مقبولة والفروق بينها هامشية. في حيٍّ متوسط، حتى فرق الأثاث الصغير يؤثّر — لكن درجة الحي نفسها هي التي تحسم القرار.

النقطة الجوهرية: الشبكة المزدوجة تتعلّم جودة الحي من كل خيار أثاث تلاحظه، لا من الخيار الذي جرّبته فحسب. لذلك تصل إلى أسرع.

خلفية: قيم Q والقيمة والأفضلية

قبل أن نشرح البنية، نحتاج إلى فهم ثلاث كميّات أساسية من نظرية ، لأن التصميم المزدوج يبني عليها مباشرةً:

دالة قيمة الحالة V(s) — تجيب عن السؤال: «ما مدى جودة أن أكون في الحالة s وأنا أتبع π؟» هي في جوهرها متوسط الجودة عبر جميع الأفعال الممكنة.

Q(s,a) — تجيب عن: «ما مدى جودة أن أتخذ الفعل a في الحالة s ثم أتبع π؟» هذه هي الكمية التي تقدّرها شبكة التقليدية.

دالة الأفضلية A(s,a) = Q(s,a) − V(s) — تجيب عن: «كم يتفوّق الفعل a أو يتراجع مقارنةً بمتوسط الأفعال في الحالة s؟» بطبيعة التعريف، متوسط الأفضلية عبر جميع الأفعال يساوي صفرًا.

الملاحظة المحورية هنا: Q تمزج نوعين من المعلومات في رقم واحد — جودة الحالة نفسها، ومقدار ما يضيفه هذا الفعل بعينه. شبكة DQN التقليدية تخلطهما معًا. الشبكة المزدوجة تفصل بينهما.

Qπ(s,a)=Vπ(s)+Aπ(s,a)Q^\pi(s,a) = V^\pi(s) + A^\pi(s,a)
تفكيك قيمة Q — الأساس النظريQ = قيمة الحالة + الأفضلية. تلتقط V جودة الحالة إجمالًا، بينما تلتقط A مقدار تفوّق فعل معيّن أو تراجعه عن المتوسط. الشبكة المزدوجة تُجسّد هذا التفكيك حرفيًّا داخل بنيتها المعمارية.

المشكلة: تعلُّم مُهدَر في DQN التقليدية

لنأخذ مثالًا عمليًّا: لعبة قيادة مثل Enduro. في أغلب الأوقات، الطريق أمامك خالٍ — سواء تحرّكت يسارًا أو يمينًا أو بقيت مكانك، لن يختلف شيء. ما يهمّ فعلًا هو قيمة الحالة (هل الطريق آمن؟)، لا أفضلية فعل بعينه.

لكن DQN التقليدية مضطرة لتعلّم قيمة Q مستقلة لكل فعل في كل حالة. حين يتخذ الوكيل الفعل «اتجه يسارًا» ويحصل على ، لا تتحدّث سوى Q(s, يسار). أما Q(s, يمين) وQ(s, ابقَ) فلا تستفيدان شيئًا من تلك التجربة — رغم أنّ قيمة الحالة كان ينبغي أن تتغيّر بالقدر نفسه لها جميعًا.

وتسوء المشكلة كلما كبُر فضاء الأفعال. مع 18 فعلًا (وهو أمر شائع في ألعاب Atari)، كل انتقال لا يعلّم الشبكة إلا عن جزء من 18 من فضاء الأفعال. المكوّن المشترك بين جميع الأفعال — قيمة الحالة — يُتعلَّم أبطأ 18 مرة مما ينبغي.

افتح في المختبر
قارن بين طريقة التحديث في DQN أحادية المسار والشبكة المزدوجة. لاحظ أنّ مسار القيمة (الأخضر) يُحدَّث من كل فعل، بينما المسار الأحادي لا يُحدِّث إلا قيمة Q للفعل المختار.
تستيقظ التجربة عند وصولك…

الفكرة: مساران، قيمة Q واحدة

تبدأ البنية المزدوجة بنفس الموجودة في DQN — ثلاث طبقات تتولى البصرية من شاشة اللعبة. الاختلاف يبدأ بعد ذلك: بدلًا من تمرير هذه السمات عبر مسار واحد من ، تنقسم الشبكة إلى مسارين متوازيين:

  • مسار القيمة يأخذ السمات المشتركة ويُخرج عددًا واحدًا V(s) — يُجيب عن السؤال: ما جودة هذه الحالة إجمالًا؟
  • مسار الأفضلية يأخذ السمات نفسها ويُخرج متجهًا A(s,a) — قيمة واحدة لكل فعل — تقيس مقدار تفوّق كل فعل أو تراجعه عن المتوسط.

الصورة الذهنية هنا مثل طريق سريع ينقسم إلى حارتين: حارة تحمل إشارة «الجودة العامة» المهمّة دائمًا بصرف النظر عن الفعل، وحارة تحمل إشارة «الفروق بين الأفعال» التي لا تهمّ إلا حين يكون لاختيار الفعل أثر فعلي. الحارتان تلتقيان في النهاية لإنتاج قيم Q — لكن كل حارة تتعلّم بشكل مستقل.

افتح في المختبر
انقر على أي طبقة لمعرفة دورها. المسار العلوي يمثّل DQN التقليدية والمسار السفلي يمثّل البنية المزدوجة. لاحظ كيف ينقسم المساران بعد الطبقات الالتفافية المشتركة.
تستيقظ التجربة عند وصولك…

حيلة الدمج: حلّ مشكلة قابلية التعريف

لو دمجنا المسارين ببساطة عبر Q(s,a) = V(s) + A(s,a)، سنواجه مشكلة أساسية: يمكنك إضافة أي ثابت c إلى V وطرحه من A دون أن تتغيّر Q. بعبارة أخرى، الشبكة لن تستطيع أن تميّز أيّهما يمثّل قيمة الحالة الحقيقية وأيّهما يمثّل الأفضلية — التفكيك يصبح غير محدَّد.

الحل الذي تقترحه الورقة أنيق: اطرح متوسط الأفضلية عبر جميع الأفعال. هذا يُجبر الأفضلية على أن تكون نسبيّة مقارنةً بالمتوسط دائمًا، فيتثبّت التفكيك ويصبح لكل مكوّن معنًى واضح.

Q(s,a;θ,α,β)=V(s;θ,β)+(A(s,a;θ,α)1AaA(s,a;θ,α))Q(s,a;\theta,\alpha,\beta) = V(s;\theta,\beta) + \left( A(s,a;\theta,\alpha) - \frac{1}{|\mathcal{A}|}\sum_{a'} A(s,a';\theta,\alpha) \right)
وحدة الدمج — الجمع بين V وA لإنتاج Qθ = معاملات الطبقات الالتفافية المشتركة · β = معاملات مسار القيمة · α = معاملات مسار الأفضلية · طرح متوسط الأفضلية يضمن تحديد هوية كل مكوّن — V تمثّل فعلًا قيمة الحالة، والأفضلية تقيس فعلًا الجودة النسبية لكل فعل
افتح في المختبر
اسحب قيم V وA لترى كيف تدمجهما وحدة الدمج. بدّل بين طرح المتوسط وطرح الأعظم لملاحظة الفرق.
تستيقظ التجربة عند وصولك…

لماذا تنجح: تعلُّم فعّال عبر التفكيك

سرّ نجاح البنية المزدوجة يعود إلى خاصية واحدة بالغة الأهمية: مسار القيمة يتلقى تحديثًا من كل انتقال يمرّ به الوكيل، بصرف النظر عن الفعل الذي اختاره.

في DQN التقليدية، حين يتخذ الوكيل الفعل «يسار» في الحالة s، لا تُحدَّث سوى Q(s, يسار). السمات الالتفافية المشتركة تتعدّل قليلًا، لكن قيم Q للأفعال «يمين» و«أعلى» و«لا شيء» لا تتلقى أي مباشرة من هذا الانتقال.

في الشبكة المزدوجة الوضع مختلف: كل انتقال يُحدِّث V(s) لأنّها تُساهم في حساب Q لـجميع الأفعال. مسار القيمة يحصل على إشارة تدرُّج أكبر 18 مرة في لعبة بها 18 فعلًا. وهذا فعّال بشكل خاص في الحالات التي تكون فيها جميع الأفعال متقاربة القيمة — أي أنّ الأفضليات قريبة من الصفر والقيمة هي المهيمنة.

مسار الأفضلية لا يزال يتعلّم المعلومات الخاصة بكل فعل، لكنه يحتاج فقط إلى التقاط الفروق بين الأفعال — وهذه دالة أبسط بكثير من تعلّم قيمة Q الكاملة من الصفر.

افتح في المختبر
خرائط بروز مُحاكاة للعبة Enduro. مسار القيمة (يسار) يراقب الطريق والأفق. مسار الأفضلية (يمين) لا يَنشط إلا حين تقترب سيارة — أي حين يصبح لاختيار الفعل أثر حقيقي.
تستيقظ التجربة عند وصولك…

تقييم السياسة: تجربة الممر

لعزل أثر البنية المعمارية وحدها عن تعقيدات التعلُّم المعزَّز الأخرى، صمّم المؤلفون تجربة على ممر بسيطة. يبدأ الوكيل من الزاوية السفلى اليسرى ويحتاج للوصول إلى الزاوية العليا اليمنى لتحصيل أقصى مكافأة. البيئة فيها 5 أفعال أساسية (أعلى، أسفل، يسار، يمين، لا شيء)، وأضاف المؤلفون أفعال «لا شيء» إضافية لصنع نُسخ بـ10 و20 فعلًا.

النتائج كانت واضحة: مع 5 أفعال، تتقارب البنيتان بسرعة متشابهة. مع 10 أفعال، تبدأ الشبكة المزدوجة بالتقدّم. ومع 20 فعلًا، تصبح الفجوة كبيرة جدًّا. والسبب هو بالضبط ما ناقشناه: كلما زادت الأفعال المتكررة التي لا تُحدث فرقًا، زادت كمية التعلُّم «المجاني» الذي يحصل عليه مسار القيمة.

افتح في المختبر
بدّل بين 5 و10 و20 فعلًا لترى كيف تتعاظم أفضلية الشبكة المزدوجة مع زيادة الأفعال المتكررة. الرسم يعرض مربع الخطأ عبر التكرارات.
تستيقظ التجربة عند وصولك…

Atari 2600: المعيار الكامل

الاختبار الحقيقي جاء على بيئة ألعاب Atari — 57 لعبة متنوعة يجب أن تتعلّم فيها بنية واحدة بمجموعة ثابتة لعب كل شيء من Breakout إلى Montezuma's Revenge.

البنية المزدوجة (المُدرَّبة مع DDQN) تفوّقت على البنية أحادية المسار في نحو 80% من الألعاب. الألعاب ذات 18 فعلًا حقّقت مكاسب أكبر (نسبة تفوّق 87%). وحين دُمجت مع ذات الأولوية، كانت التحسينات أوضح بكثير — إذ وصل الأداء إلى 591% من متوسط الأداء البشري، مقابل 434% لـ DDQN ذات الأولوية وحدها.

سبب نجاح هذا الدمج أنّ البنية المزدوجة وإعادة تشغيل التجارب ذات الأولوية تعالجان جانبين مختلفين من التعلُّم: البنية تستخلص فائدة أكبر من كل انتقال، بينما إعادة التشغيل ذات الأولوية تنتقي الانتقالات الأكثر إفادة.

افتح في المختبر
مقارنة الأداء عبر الطرق المختلفة. بدّل بين المتوسط الحسابي والوسيط للأداء البشري لترى أثر كل مكوّن.
تستيقظ التجربة عند وصولك…

الفكرة ذاتها في شيفرة برمجية

من أجمل ما في البنية المزدوجة أنّ تطبيقها بسيط جدًّا. التغيير الوحيد عن DQN التقليدية هو استبدال الطبقة كاملة الاتصال الأخيرة بمسارين متوازيين ووحدة الدمج. كل شيء آخر يبقى كما هو تمامًا: ، و، وإعادة تشغيل التجارب، واستراتيجية .

DQN المزدوجة — التغيير المعماري الجوهريpython

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

import torch
import torch.nn as nn

class DuelingDQN(nn.Module):
    def __init__(self, n_actions):
        super().__init__()
        # مستخرج السمات الالتفافي المشترك (مطابق لـ DQN)
        self.features = nn.Sequential(
            nn.Conv2d(4, 32, 8, stride=4), nn.ReLU(),
            nn.Conv2d(32, 64, 4, stride=2), nn.ReLU(),
            nn.Conv2d(64, 64, 3, stride=1), nn.ReLU(),
            nn.Flatten(),
        )
        # مسار القيمة: السمات المشتركة → عدد واحد V(s)
        self.value_stream = nn.Sequential(
            nn.Linear(3136, 512), nn.ReLU(),
            nn.Linear(512, 1),       # عدد واحد: «ما جودة هذه الحالة؟»
        )
        # مسار الأفضلية: السمات المشتركة → A(s,a) لكل فعل
        self.advantage_stream = nn.Sequential(
            nn.Linear(3136, 512), nn.ReLU(),
            nn.Linear(512, n_actions),  # قيمة واحدة لكل فعل
        )

    def forward(self, x):
        features = self.features(x)
        value = self.value_stream(features)         # (batch, 1)
        advantage = self.advantage_stream(features) # (batch, n_actions)
        # الدمج: Q = V + (A - متوسط(A))
        q = value + (advantage - advantage.mean(dim=1, keepdim=True))
        return q

# هذا كل شيء. نفس دالة الخسارة، نفس شبكة الهدف، نفس ذاكرة الإعادة.
# التغيير المعماري هو الإسهام بالكامل.

نقاش: متى تُحدث البنية المزدوجة الفارق الأكبر؟

البنية المزدوجة ليست أفضل دائمًا — فائدتها تتعاظم بحسب عاملين:

  • عدد الأفعال. كلما زادت الأفعال المتاحة، استفاد مسار القيمة أكثر من التعلُّم المشترك. في تجربة الممر، اتّسعت الفجوة بين البنية المزدوجة والمسار الأحادي من فرق طفيف (5 أفعال) إلى فرق واضح (20 فعلًا). وفي ألعاب Atari، الألعاب ذات 18 فعلًا أظهرت تحسّنات أقوى.
  • نسبة الحالات التي لا يُحدث فيها اختيار الفعل فرقًا. في كثير من حالات ألعاب القيادة، يكون الطريق خاليًا وجميع الأفعال متكافئة. هنا تتألّق البنية المزدوجة: مسار القيمة يلتقط كل المعلومات المفيدة، ومسار الأفضلية يتعلّم بشكل صحيح أنّ «جميع الأفعال متساوية».

خرائط البروز تقدّم دليلًا حدسيًّا واضحًا على هذا التقسيم: مسار القيمة يراقب الطريق والأفق (أمور مهمّة بصرف النظر عن الفعل)، بينما مسار الأفضلية لا يَنشط إلا حين تقترب سيارة — أي حين يُصبح لاختيار الفعل عواقب حقيقية.

تفاصيل عملية

الموقع في مسيرة التعلُّم المعزَّز: من DQN إلى Rainbow

البنية المزدوجة واحدة من عدّة تحسينات متعامدة على DQN جُمعت لاحقًا في وكيل Rainbow (2017):

  1. 2013

    DQN

    الشبكة العميقة لـ Q. أول من وظّف شبكات التفافية عميقة مع إعادة تشغيل التجارب وشبكة هدف للعب ألعاب Atari انطلاقًا من البكسلات الخام. أثبتت أنّ التعلُّم المعزَّز العميق قابل للتطبيق فعلًا.

  2. 2015

    DQN المزدوج

    عالج مشكلة المبالغة في تقدير قيم Q عبر فصل خطوة اختيار الفعل عن خطوة تقييمه. تختار الشبكة الحيّة الفعل، بينما تتولى شبكة الهدف تقييمه.

  3. 2016

    DQN المزدوجة البنية (هذه الورقة)

    فصلت قيمة الحالة عن أفضلية الفعل داخل بنية الشبكة نفسها. تحسين متعامد مع DDQN — معماري لا خوارزمي.

  4. 2016

    إعادة التشغيل ذات الأولوية

    تُعيد تشغيل الانتقالات ذات خطأ الفارق الزمني المرتفع بوتيرة أعلى. دُمجت مع DQN المزدوجة البنية وحقّقت أفضل النتائج آنذاك.

  5. 2017

    Rainbow

    جمع ستة تحسينات متعامدة على DQN — المزدوج، والمزدوج البنية، وإعادة التشغيل ذات الأولوية، والخطوات المتعددة، والتوزيعي، والضوضائي — في وكيل واحد. تفكيك البنية المزدوجة كان ركيزة أساسية فيه.

المرجعWang, Schaul, Hessel, van Hasselt, Lanctot, de Freitas. Dueling Network Architectures for Deep Reinforcement Learning. ICML, 2016.

مصطلحات هذه الورقة