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

التعلّم المعزّز العميق بأسلوب Q المزدوج

Deep Reinforcement Learning with Double Q-Learning

van Hasselt, H. · Guez, A. · Silver, D. — AAAI

المشكلة

نجحت DQN في تحقيق أداء بمستوى البشر على عشرات من ألعاب Atari، لكن تبيّن أن تقديراتها لقيم Q كانت مُضخَّمة بشكل منهجي. المشكلة أن عملية max تقوم بدورين في آنٍ واحد: تختار أفضل فعل وتقيّمه في الوقت ذاته، وكلاهما يعتمد على التقديرات المشوَّشة نفسها. هذا الاقتران يولّد انحيازاً تصاعدياً يُضخّم القيم ويُزعزع ، وقد يدفع العميل نحو سياسات أسوأ ممّا يمكنه تحقيقه فعلياً.

الإسهام

الفكرة الأساسية في Double DQN هي فصل مهمّة الاختيار عن مهمّة التقييم. الشبكة الحالية (online) تختار أفضل فعل، (target) تقدّر قيمته. هذا التعديل لا يتعدّى سطراً واحداً في حساب الهدف، لكنه يُزيل الجزء الأكبر من التضخّم في التقديرات ويُنتج سياسات أفضل على معيار Atari، دون أي تكلفة حوسبية إضافية لأن DQN تملك شبكة هدف بالفعل.

الأثر

صار Double DQN تحسيناً أساسياً يُضاف تلقائياً لكل عميل حديث يعمل بأسلوب القيم. Rainbow (2018) يتضمّنه كأحد مكوّناته الستة، ومبدأ فصل الاختيار عن التقييم انتقل إلى التحكم في الفضاءات المستمرة عبر TD3. الورقة أثبتت أن تعديلاً بسيطاً مستنداً إلى فكرة نظرية عمرها عقد من الزمن يمكن أن يُحدث فرقاً جوهرياً في نظام تعلّم معزّز عميق، وفتحت الباب لموجة من التحسينات المركّزة على DQN.

تخيّل مسابقة مواهب يتولّى فيها حكم واحد ترشيح الفائز وتقييمه في آنٍ واحد. لو كان انطباعه عن المتسابق C مشوَّشاً بالإيجاب، سيرشّحه بسبب ذلك التشويش — ثم يمنحه درجة عالية للسبب نفسه. مع تكرار الجولات، تتصاعد درجات الفائزين باستمرار حتى لو لم يتحسّن أداء أحد فعلياً.

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

المشكلة: شبكة DQN تبالغ في تقدير قيم Q

في ، يتعلّم دالة Q(s,a)Q(s,a) تقدّر إجمالي المستقبلية عند اتخاذ الفعل aa في ss. عند التحديث، نحسب هدفاً يعتمد على أقصى قيمة بين الأفعال المتاحة في الحالة التالية:

YDQN=r+γmaxaQ(s,a;θ)Y^{\text{DQN}} = r + \gamma \max_{a'} Q(s', a';\, \theta^{-})

المشكلة في عملية max تحديداً. حتى لو كان التشويش في تقدير كل فعل متمركزاً حول الصفر، فإن اختيار الأعلى بين عدة تقديرات مشوَّشة يميل دائماً نحو الأعلى — لأنك تختار التقدير الذي «حالفه الحظ» في التشويش. هذا هو ما يُسمّى .

DQN فاقمت المشكلة بالجمع بين — الذي يُدخل خطأ التقريب — وبين الذي يُمرّر ذلك الخطأ من تقدير إلى آخر. النتيجة: قيم Q مرتفعة على الورق لكنها لا تعكس الأداء الحقيقي.

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

لماذا تضرّ المبالغة في التقدير بعملية التعلّم

ليست مجرد رقم خاطئ على الشاشة — بل تُفسد العميل فعلياً من ثلاث جهات:

  • اضطراب التدريب. القيم المتضخّمة تولّد أخطاء TD كبيرة تجعل أوزان الشبكة تتأرجح بعنف، فيصعب الوصول إلى .

  • اختيارات خاطئة للأفعال. إذا تضخّم تقدير الفعل A أكثر من B، يختار العميل A حتى لو كان B هو الأفضل فعلياً. بمعنى آخر، السياسة تنحرف نحو أفعال دون المستوى الأمثل.

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

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

الحل: فصل الاختيار عن التقييم

الفكرة الأصلية لـ (van Hasselt, 2010) استخدمت جدولين مستقلين لقيم Q: واحد للاختيار وآخر للتقييم، ويُختار بينهما عشوائياً. لكن DQN تملك أصلاً شبكتين: الشبكة الحالية θ\theta التي تُحدَّث كل خطوة، وشبكة الهدف θ\theta^{-} وهي نسخة بطيئة تُزامَن دورياً. الفكرة الذكية: لنستفد منهما!

  • الشبكة الحالية تختار الفعل الأفضل: a=argmaxaQ(s,a;θ)a^* = \arg\max_a Q(s', a;\, \theta)
  • شبكة الهدف تقيّم ذلك الفعل: Q(s,a;θ)Q(s', a^*;\, \theta^{-})

هذا هو كامل التعديل — سطر واحد في حساب الهدف:

YDoubleDQN=r+γQ ⁣(s,  argmaxaQ(s,a;θ)online picks,  θtarget evaluates)Y^{\text{DoubleDQN}} = r + \gamma\, Q\!\bigl(s',\; \underbrace{\arg\max_{a} Q(s', a;\, \theta)}_{\text{online picks}},\; \underbrace{\theta^{-}}_{\text{target evaluates}}\bigr)
هدف Double DQN — الحل الكاملالشبكة الحالية تختار أفضل فعل · شبكة الهدف تحكم على جودته الحقيقية · تشويش الاختيار لم يعُد يُضخّم التقييم

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

افتح في المختبر
بدّل بين هدف DQN وهدف Double DQN. لاحظ كيف يُقرّب فصل الاختيار عن التقييم التقديرَ من القيمة الحقيقية.
تستيقظ التجربة عند وصولك…

مقارنة جنباً إلى جنب: هدف DQN مقابل هدف Double DQN

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

افتح في المختبر
المسار الأحمر يُظهر كيف تقترن عمليتا الاختيار والتقييم في DQN، بينما المسار الأخضر يوضّح كيف يفصلهما Double DQN.
تستيقظ التجربة عند وصولك…

التعديل في الشيفرة البرمجية

هدف DQN مقابل Double DQN — التعديل من سطر واحدpython

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

import torch

def dqn_target(reward, next_state, gamma, target_net):
    """DQN العادي: شبكة الهدف تختار وتقيّم معاً."""
    with torch.no_grad():
        # الشبكة نفسها تختار وتقيّم — مبالغة في التقدير!
        max_q = target_net(next_state).max(dim=1).values
    return reward + gamma * max_q

def double_dqn_target(reward, next_state, gamma, online_net, target_net):
    """Double DQN: الشبكة الحالية تختار، وشبكة الهدف تقيّم."""
    with torch.no_grad():
        # الخطوة 1: الشبكة الحالية تختار أفضل فعل
        best_actions = online_net(next_state).argmax(dim=1, keepdim=True)
        # الخطوة 2: شبكة الهدف تقيّم ذلك الفعل
        q_values = target_net(next_state).gather(1, best_actions).squeeze()
    return reward + gamma * q_values

# هذا كل شيء. عملية argmax واحدة + gather واحدة بدلاً من max واحدة.
# كل شيء آخر في حلقة تدريب DQN يبقى كما هو تماماً.

لماذا تبالغ الأعظمية في التقدير؟ نظرة أعمق

لتوضيح الفكرة رياضياً: لنفترض أن لدينا mm فعل وكلها بقيمة حقيقية Q=0Q^* = 0، لكن كل تقدير يحمل تشويشاً ϵi\epsilon_i من توزيع N(0,σ2)\mathcal{N}(0, \sigma^2). القيمة المتوقعة لأعلى تقدير بين الجميع هي:

E ⁣[maxiϵi]    σ2lnm\mathbb{E}\!\bigl[\max_i \epsilon_i\bigr] \;\approx\; \sigma\,\sqrt{2 \ln m}

هذه القيمة موجبة دائماً وتكبر كلّما زاد التشويش σ\sigma أو زاد عدد الأفعال mm. ليس الأمر خللاً برمجياً — بل هي خاصية رياضية تنشأ حتماً عند أخذ الحدّ الأعلى من تقديرات مشوَّشة.

التعلّم المزدوج يكسر هذه الحلقة باستخدام مقدِّر مستقل للتقييم. حين يكون تشويش الاختيار غير مرتبط بتشويش التقييم، يختفي الانحياز الموجب.

E ⁣[maxiϵi]σ2lnm\mathbb{E}\!\bigl[\max_i \epsilon_i\bigr] \approx \sigma\sqrt{2 \ln m}
المبالغة المتوقعة في التقدير لعدد m من الأفعال بتشويش σأفعال أكثر أو تشويش أعلى ← مبالغة أكبر. التعلّم المزدوج يفصل تشويش الاختيار عن تشويش التقييم فتنكسر حلقة التضخّم.
افتح في المختبر
حرّك المنزلقات لتغيير عدد الأفعال ومستوى التشويش. لاحظ كيف تتصاعد المبالغة — وكيف يُخمدها التعلّم المزدوج.
تستيقظ التجربة عند وصولك…

النتائج على ألعاب Atari

اختبر van Hasselt وزملاؤه Double DQN على كامل الألعاب الـ49 من ورقة DQN الأصلية، وجاءت النتائج واضحة:

  • دقة التقديرات. قيم Q في Double DQN كانت أقرب بكثير إلى العوائد الحقيقية. بعض الألعاب كانت DQN تبالغ فيها بـ5 إلى 10 أضعاف، بينما تقديرات Double DQN جاءت قريبة جداً من الواقع.

  • سياسات أفضل. رغم أن قيم Q كانت أقل عددياً، حقّق Double DQN نتائج لعب أعلى في أغلب الألعاب — ممّا يؤكد أن الدقة في التقدير تترجَم مباشرةً إلى قرارات أفضل.

  • استقرار أعلى. منحنيات التدريب كانت أكثر سلاسة، مع حالات أقل من الانهيار المفاجئ الذي يفقد فيه العميل ما تعلّمه.

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

خوارزمية Double DQN الكاملة

الخوارزمية مطابقة تماماً لـDQN ما عدا حساب الهدف. إليك حلقة التدريب بالكامل:

  1. راقب الحالة ss، واختر الفعل aa بأسلوب على الشبكة الحالية
  2. نفّذ aa، واحصل على المكافأة rr والحالة التالية ss'
  3. خزّن الانتقال (s,a,r,s)(s, a, r, s') في
  4. اسحب عشوائية من الانتقالات
  5. احسب أهداف Double DQN: الشبكة الحالية تختار، وشبكة الهدف تقيّم
  6. حدّث أوزان الشبكة الحالية بـ على خسارة TD
  7. كل CC خطوة، انسخ أوزان الشبكة الحالية إلى شبكة الهدف

الخطوات 1–4 و6–7 هي DQN الأصلية. الخطوة 5 فقط هي التي تختلف.

موقع Double DQN في الصورة الأكبر

Double DQN جزء من سلسلة تحسينات استهدفت نقاط ضعف DQN واحدةً تلو الأخرى:

  • DQN (2015) — الأساس: تعلّم Q العميق مع إعادة تشغيل الخبرات وشبكة الهدف.
  • Double DQN (2016) — يعالج تضخّم التقديرات بفصل الاختيار عن التقييم.
  • Dueling DQN (2016) — يفصل قيمة الحالة عن ، ممّا يحسّن التعميم.
  • إعادة التشغيل ذات الأولوية (2016) — تُكرّر الانتقالات الأهم بوتيرة أعلى.
  • Rainbow (2018) — يجمع ستة تحسينات في عميل واحد، ويُثبت أنها متكاملة لا متعارضة.
  1. 2010

    التعلّم المزدوج بأسلوب Q (جدولي)

    استخدم van Hasselt جدولين مستقلين لقيم Q، يُختار عشوائياً أيّهما يتولّى الاختيار وأيّهما يتولّى التقييم. أثبت أن هذا الأسلوب يُزيل انحياز المبالغة في الحالة الجدولية.

  2. 2015

    DQN — تحكّم بمستوى البشر

    جمع Mnih وفريقه بين تعلّم Q العميق وإعادة تشغيل الخبرات وشبكة الهدف، فحقّقوا أداءً بمستوى البشر في 49 لعبة Atari. نُشر العمل في Nature.

  3. 2016

    Double DQN

    نقل van Hasselt وGuez وSilver فكرة المقدِّر المزدوج إلى DQN. تعديل من سطر واحد بلا تكلفة إضافية، لكنّه أحدث تحسّناً جوهرياً في دقة القيم وجودة السياسات.

  4. 2016

    Dueling DQN

    قسّم Wang وفريقه الشبكة إلى فرعين: واحد لقيمة الحالة وآخر لميزة الفعل. التعديل مستقل عن Double DQN ويُدمجان معاً في العادة.

  5. 2018

    Rainbow

    دمج Hessel وفريقه ستة تحسينات لـDQN — المزدوج، والمبارزة، وإعادة التشغيل ذات الأولوية، والخطوات المتعددة، والتوزيعي، والشبكات المشوَّشة — في عميل واحد تصدّر نتائج Atari.

  6. 2018

    TD3

    وسّع Fujimoto وفريقه مبدأ التقدير المزدوج ليشمل الأفعال المستمرة، باستخدام ناقدَيْن توأمين يتبعان الفلسفة نفسها في مقاومة التضخّم.

الرؤية الجوهرية

المرجعvan Hasselt, Guez, Silver. Deep Reinforcement Learning with Double Q-Learning. AAAI, 2016.

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