التعلم المعزز2015متوسط12 دقيقة قراءة

التحكم بمستوى بشري عبر التعلم العميق بالتعزيز

Human-Level Control Through Deep Reinforcement Learning

Mnih, V. · Kavukcuoglu, K. · Silver, D. · Rusu, A. A. · Veness, J. · Bellemare, M. G. · Graves, A. · Riedmiller, M. · Fidjeland, A. K. · Ostrovski, G. · Petersen, S. · Beattie, C. · Sadik, A. · Antonoglou, I. · King, H. · Kumaran, D. · Wierstra, D. · Legg, S. · Hassabis, D. — Nature

المشكلة

في التعلّم بالتعزيز يتعلّم بالتجربة والخطأ — لكن حين يكون فضاء الحالات بحجم بكسلات شاشة Atari الخام (210×160×3 لكل إطار)، يستحيل تخزين قيمة لكل حالة في جدول تقليدي. الحل البديهي هو استخدام شبكة عصبية تقرّب دالة القيمة بدلاً من الجدول، لكن المحاولات السابقة فشلت بسبب عدم الاستقرار: كل تحديث يغيّر تنبؤات الشبكة في كل مكان، والعيّنات التدريبية المتتالية مترابطة بشدّة، والهدف الذي تحاول الشبكة الوصول إليه يتحرك باستمرار لأنه يعتمد على الشبكة نفسها أثناء تدريبها.

الإسهام

شبكة Q العميقة (DQN): شبكة عصبية التفافية تقرأ البكسلات الخام وتُخرج قيمة Q لكل فعل ممكن. ابتكاران أساسيان جعلا مستقراً. أولاً، : تُخزَّن الانتقالات في ذاكرة كبيرة وتُسحب منها دفعات عشوائية، مما يكسر الارتباط الزمني بين العيّنات ويتيح إعادة استخدام البيانات بكفاءة. ثانياً، شبكة هدف منفصلة تُجمَّد لآلاف الخطوات ثم تُحدَّث دورياً من الشبكة الرئيسية، مما يُثبّت الهدف الذي تسعى الشبكة لتقليله. ببنية واحدة ومجموعة معاملات فائقة واحدة، تعلّمت DQN لعب 49 لعبة Atari وبلغت أداءً بمستوى بشري في 29 منها.

الأثر

أثبتت DQN أن خوارزمية تعلّم واحدة تستطيع إتقان مهام متنوعة انطلاقاً من مدخلات حسية خام — وكانت أول برهان مقنع على إمكانية دمج التعلّم العميق مع التعلّم بالتعزيز على نطاق واسع. أطلقت هذه الورقة ميدان التعلّم العميق بالتعزيز بأكمله، وأدّت مباشرةً إلى AlphaGo وA3C وDDPG، ثم لاحقاً إلى RLHF لضبط النماذج اللغوية الكبيرة. وأصبحت فكرة إعادة تشغيل التجارب ركيزة أساسية في معظم خوارزميات التعلّم العميق بالتعزيز العاملة خارج .

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

هذا الدليل هو ما نسمّيه — وظيفتها تقييم كل فعل ممكن بناءً على ما تعرضه الشاشة الآن.

DQN هي المرة الأولى التي نجحت فيها واحدة في تعلّم هذا الدليل مباشرةً من البكسلات الخام، عبر عشرات الألعاب المختلفة، بمستوى يُنافس لاعبين بشر محترفين.

المشكلة: الشبكات العصبية + التعلم بالتعزيز = عدم استقرار

قبل DQN، كان لدى خوارزمية مُثبَتة نظرياً للتعلّم من التجربة: . الفكرة بسيطة: يحتفظ الوكيل بجدول يربط كل زوج (حالة، فعل) بـ المستقبلية المتوقعة — وهي ما نسمّيه قيمة Q. بعد كل خطوة يُحدَّث سطر واحد في الجدول وفق . ومع زيارات كافية لكل حالة، يُبرهَن رياضياً أن الخوارزمية تتقارب نحو السياسة المُثلى.

المشكلة أن شاشات Atari تحوي نحو 102800010^{28000} تركيبة بكسلات ممكنة — لا يوجد جدول في العالم يتّسع لهذا العدد. الحل البديهي هو : نستبدل الجدول بـشبكة عصبية تأخذ الشاشة كمدخل وتُخرج قيم Q لكل الأفعال. نظرياً الفكرة أنيقة لأن الشبكة تُعمّم على شاشات متشابهة بدل حفظ كل واحدة على حدة.

لكن عملياً، ثلاث مشكلات جعلت هذا الدمج كارثياً:

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

  • أهداف متحركة. هدف بيلمان يعتمد على تنبؤات الشبكة نفسها عن الحالة التالية. فكل تحديث للأوزان يُزيح تلك التنبؤات، ويتحرّك الهدف مع كل خطوة — كمن يصوّب على هدف يتفادى سهامه.

  • . تحديث الشبكة على حالة لعب معيّنة قد يمحو ما تعلّمته عن حالات أخرى. فتنسى الشبكة كيف تلعب المراحل الأولى بينما تتعلّم المراحل المتقدّمة.

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

البنية: من البكسلات الخام إلى قيم الأفعال

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

تتألّف الشبكة من ثلاث — الأولى بـ32 بحجم 8×8 و 4، والثانية بـ64 مرشّحاً بحجم 4×4 وخطوة 2، والثالثة بـ64 مرشّحاً بحجم 3×3 وخطوة 1 — تليها من 512 وحدة. جميع الطبقات تستخدم للتنشيط. ثم تأتي طبقة كاملة الاتصال الأخيرة التي تُخرج قيمة Q لكل فعل ممكن (عادةً من 4 إلى 18 فعلاً في ألعاب Atari).

النقطة المهمة: هذه البنية واحدة لجميع الألعاب التسع والأربعين. لا توجد قواعد خاصة بأي لعبة — الشبكة لا ترى سوى البكسلات والنتيجة. كل ما تعرفه عن Breakout أو Pong أو Space Invaders تعلّمته بالكامل من التجربة وحدها.

افتح في المختبر
انقر على أي طبقة لمعرفة دورها — من الإطارات الخام إلى قيم Q لكل فعل.
تستيقظ التجربة عند وصولك…

الابتكار الأول: إعادة تشغيل التجارب — كسر السلسلة

الابتكار الأول هو إعادة تشغيل التجارب. بدلاً من تدريب الشبكة على كل انتقال لحظة حدوثه، يخزّن الوكيل كل انتقال (st,at,rt,st+1)(s_t, a_t, r_t, s_{t+1}) في دائرية كبيرة تتّسع لمليون انتقال. وفي كل خطوة تدريبية تُسحب عشوائية من 32 انتقالاً من هذه الذاكرة.

هذه الفكرة التي تبدو بسيطة تحلّ مشكلتين في آن واحد:

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

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

تخيّلها كـدفتر ملاحظات: الوكيل يدوّن كل تجربة، ثم يراجع بفتح صفحات عشوائية بدلاً من إعادة قراءة الفقرة الأخيرة فقط.

افتح في المختبر
قارن بين التدريب المتسلسل (مترابط وغير مستقر) والسحب من ذاكرة التجارب (غير مترابط ومستقر). اضغط «ملء الذاكرة» ثم «سحب دفعة».
تستيقظ التجربة عند وصولك…
D={(st,at,rt,st+1)}t=1Nsample (s,a,r,s)Uniform(D)\mathcal{D} = \{(s_t, a_t, r_t, s_{t+1})\}_{t=1}^{N} \quad \longrightarrow \quad \text{sample } (s, a, r, s') \sim \text{Uniform}(\mathcal{D})
ذاكرة إعادة تشغيل التجاربتُخزَّن الانتقالات في ذاكرة D بسعة N. في كل خطوة تدريبية تُسحب دفعة مصغّرة بشكل عشوائي منتظم، مما يكسر الارتباط الزمني بين المشاهدات المتتالية.

الابتكار الثاني: شبكة الهدف — تجميد نقطة التصويب

الابتكار الثاني يعالج مشكلة الهدف المتحرك. في تعلّم Q، الهدف الذي نحاول تقليل الفرق عنه هو:

yt=rt+γmaxaQ(st+1,a;θ)y_t = r_t + \gamma \max_{a'} Q(s_{t+1}, a'; \theta)

لاحظ أن yty_t يعتمد على الشبكة θ\theta نفسها التي نُحدّثها. كل خطوة نزول تدرّجي تُغيّر θ\theta، فتتغيّر yty_t، فيتغيّر اتجاه التدرّج — حلقة تغذية راجعة تُسبّب تشعّب التدريب.

تكسر DQN هذه الحلقة بالاحتفاظ بـنسخة منفصلة من الشبكة تُسمّى بأوزان θ\theta^{-}. فيصبح الهدف:

yt=rt+γmaxaQ(st+1,a;θ)y_t = r_t + \gamma \max_{a'} Q(s_{t+1}, a'; \theta^{-})

شبكة الهدف مُجمَّدة — أوزانها لا تتغيّر أثناء التدريب. كل C=10,000C = 10{,}000 خطوة تُنسَخ أوزان الشبكة الرئيسية إلى شبكة الهدف. وبين عمليات النسخ يبقى الهدف ثابتاً، فيجد النزول التدرّجي سطحاً مستقراً للتحسين عليه.

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

افتح في المختبر
شاهد كيف تتطوّر تقديرات قيم Q مع شبكة هدف مُجمَّدة وبدونها. اضغط «تدريب» للمقارنة.
تستيقظ التجربة عند وصولك…
L(θ)=E(s,a,r,s)D[(r+γmaxaQ(s,a;θ)Q(s,a;θ))2]L(\theta) = \mathbb{E}_{(s,a,r,s') \sim \mathcal{D}} \Big[\big(r + \gamma \max_{a'} Q(s', a'; \theta^{-}) - Q(s, a; \theta)\big)^2\Big]
دالة فقد DQNتسعى الشبكة لتقليل مربّع الفرق بين تنبّؤها الحالي لقيمة Q وبين هدف بيلمان المحسوب عبر شبكة الهدف المُجمَّدة. التوقّع مأخوذ على انتقالات مسحوبة عشوائياً من ذاكرة التجارب D.

الاستكشاف: جدولة ε-الجشع

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

تتعامل DQN مع هذه المعضلة بأسلوب : باحتمال ε يُختار فعل عشوائي ()، وباحتمال 1−ε يُختار أفضل فعل معروف (). المفتاح هو الجدولة الزمنية: تبدأ ε من 1.0 (عشوائية تامة — الشبكة لا تعرف شيئاً بعد) وتنخفض خطياً إلى 0.1 خلال المليون إطار الأول، ثم تبقى عند 0.1 بشكل دائم.

في بداية التدريب يستكشف الوكيل على نطاق واسع — يجرّب أفعالاً لم يسبق أن حاولها. ومع تحسّن تقديرات Q لديه، ينتقل تدريجياً نحو استغلال ما تعلّمه، مع إبقاء فرصة 10% لاكتشافات مفاجئة.

افتح في المختبر
اسحب شريط تقدّم التدريب لترى كيف تنخفض ε مع الوقت — يتحوّل التوازن تدريجياً من الاستكشا إلى الاستغلال.
تستيقظ التجربة عند وصولك…

المعالجة المسبقة وتفاصيل التدريب

عدة قرارات عملية جعلت DQN تعمل عبر ألعاب متنوعة دون تعديل:

  • معالجة الإطارات. إطارات Atari الخام (210×160 بألوان RGB) تُحوَّل إلى 84×84 بتدرّج رمادي، ثم تُكدَّس آخر 4 إطارات معاً — وهذا يمنح الشبكة معلومات عن السرعة والاتجاه.

  • . كل مكافأة موجبة تُحوَّل إلى +1، وكل مكافأة سالبة إلى −1، والصفر يبقى صفراً. هذا يُلغي الحاجة لضبط مقياس المكافآت لكل لعبة على حدة، ويُوحّد أحجام بين الألعاب.

  • تخطّي الإطارات. الوكيل يرى إطاراً واحداً من كل أربعة ويكرّر فعله الأخير على الإطارات المتخطّاة. هذا يعني أن كل قرار يُغطّي 4 أضعاف الزمن الحقيقي من اللعب.

  • بنية واحدة. الشبكة الالتفافية نفسها بـ نفسها تُستخدم لجميع الألعاب التسع والأربعين — بلا ضبط خاص بأي لعبة. الفرق الوحيد هو عدد مخرجات الطبقة الأخيرة (واحدة لكل فعل متاح في تلك اللعبة).

حلقة تدريب DQN — شبه كودpython

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

# تهيئة ذاكرة التجارب D بسعة N
# تهيئة شبكة Q بأوزان عشوائية θ
# تهيئة شبكة الهدف بأوزان θ⁻ = θ
for episode in range(num_episodes):
    state = env.reset()
    state = preprocess(state)  # 84×84 رمادي، تكديس 4 إطارات
    for t in range(max_steps):
        # اختيار الفعل بأسلوب ε-الجشع
        if random() < epsilon:
            action = random_action()       # استكشاف
        else:
            action = argmax(Q(state, θ))   # استغلال

        next_state, reward, done = env.step(action)
        reward = clip(reward, -1, +1)      # قصّ المكافأة

        # تخزين الانتقال في ذاكرة التجارب
        D.store(state, action, reward, next_state, done)

        # سحب دفعة مصغرة عشوائية من D
        batch = D.sample(batch_size=32)

        # حساب هدف بيلمان بشبكة الهدف المُجمَّدة
        targets = rewards + γ * max(Q(next_states, θ⁻))

        # تحديث الشبكة الرئيسية بالانحدار التدريجي
        loss = MSE(Q(states, actions, θ), targets)
        θ = θ - lr * ∇loss

        # كل C خطوة، نسخ الرئيسية ← الهدف
        if t % C == 0:
            θ⁻ = θ

        state = next_state

النتائج: تفوّق على خبراء بشر

اختُبرت DQN على 49 لعبة Atari 2600 باستخدام بيئة Arcade Learning Environment. البنية نفسها والمعاملات الفائقة نفسها استُخدمت في كل لعبة — بلا أي ضبط مخصّص.

النتائج كانت لافتة: حققت DQN أداءً بمستوى بشري أو أفضل في 29 من 49 لعبة (أي 75% أو أكثر من نتيجة لاعب بشري محترف). في لعبة Breakout مثلاً، اكتشفت DQN بنفسها استراتيجية لم يستخدمها اللاعبون البشر: حفر نفق بمحاذاة الجدار لإرسال الكرة خلف صفّ الطوب وإحراز نقاط بأقلّ تحريك للمضرب.

في المقابل، عانت DQN في الألعاب التي تتطلّب طويل المدى (مثل Montezuma's Revenge التي تستلزم تذكّر مفاتيح وأماكنها عبر غرف عديدة). كشف ذلك عن قصور جوهري: استكشاف ε-الجشع عشوائي أكثر من اللازم ولا يكفي لاكتشاف استراتيجيات معقّدة متعدّدة الخطوات في ذات مكافآت نادرة.

افتح في المختبر
نتائج DQN مُقيَّسة نسبةً إلى أداء البشر (100% = خبير بشري). مرّر المؤشر فوق أي شريط لرؤية النتائج الدقيقة.
تستيقظ التجربة عند وصولك…

لماذا DQN مهمة: ميلاد التعلم العميق بالتعزيز

قبل DQN، لم يكن «التعلّم العميق بالتعزيز» موجوداً كميدان حقيقي. باحثو التعلّم بالتعزيز اعتمدوا على سمات مصمَّمة يدوياً، وباحثو اشتغلوا ببيانات . الجمع بين الشبكات العصبية والتعلّم بالتعزيز كان يُعدّ مشروعاً محكوماً بالفشل بسبب عدم الاستقرار.

غيّرت DQN هذه المعادلة. أثبتت أن فكرتين هندسيتين بسيطتين — ذاكرة تجارب وشبكة هدف — تكفيان لترويض عدم الاستقرار، ففتحت الباب واسعاً أمام ميدان جديد بأكمله. خلال عامين فقط، استخدم فريق DeepMind المبادئ ذاتها لبناء AlphaGo الذي هزم بطل العالم في لعبة Go — إنجاز كان يُعتقد أنه يبعد عقوداً. ثم مُدِّدت أفكار DQN إلى فضاءات أفعال مستمرة مع DDPG، وإلى تدريب غير متزامن متعدّد الوكلاء مع A3C، ولاحقاً إلى Double DQN وDueling DQN اللتين عالجتا مشكلة المبالغة في تقدير قيم Q.

من بين الابتكارين، أثبتت فكرة إعادة تشغيل التجارب ديمومة استثنائية. تكاد كل خوارزمية حديثة للتعلّم العميق بالتعزيز — من SAC إلى TD3 إلى Dreamer — تستخدم ذاكرة تجارب. وإعادة التشغيل ذات الأولوية، وهي امتداد مباشر لهذه الفكرة تُرجّح فيه سحب الانتقالات الأكثر «مفاجأة»، أصبحت من أكثر التحسينات استشهاداً في هذا الميدان.

  1. 2013

    DQN — لعب Atari بالتعلم العميق بالتعزيز (ورشة NIPS)

    قدّم Mnih وفريقه فكرة DQN الأساسية — شبكة التفافية مع إعادة تشغيل التجارب لألعاب Atari — في ورقة ورشة عمل أثارت حماساً كبيراً في مجتمع التعلّم بالتعزيز.

  2. 2015

    DQN — ورقة Nature مع شبكات الهدف

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

  3. 2015

    Double DQN — إصلاح فرط التقدير

    أظهر Van Hasselt وفريقه أن DQN تبالغ بشكل منهجي في تقدير قيم Q، وعالجوا ذلك بفصل خطوة اختيار الفعل عن خطوة التقييم مستفيدين من الشبكتين اللتين تملكهما DQN أصلاً.

  4. 2015

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

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

  5. 2016

    Dueling DQN — فصل القيمة عن الميزة

    قسّم Wang وفريقه الشبكة إلى فرعين: أحدهما يقدّر قيمة الحالة V(s) والآخر يقدّر ميزة كل فعل A(s,a). هذا الفصل حسّن الأداء خاصةً في الألعاب التي تتساوى فيها أفعال كثيرة.

  6. 2016

    AlphaGo — مبادئ DQN تغزو لعبة Go

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

  7. 2016

    A3C — الفاعل-الناقد بالميزة غير المتزامن

    استبدل Mnih وفريقه ذاكرة التجارب بعدّة وكلاء متوازين يستكشفون أجزاء مختلفة من البيئة في آن واحد — وهو مسار بديل لكسر الارتباط أتاح التعلّم العميق بالتعزيز ضمن السياسة.

  8. 2017

    Rainbow — دمج كل تحسينات DQN

    جمع Hessel وفريقه ستة تحسينات (Double وDueling وPrioritized Replay وMulti-step وDistributional وNoisy Nets) وأظهروا أن دمجها معاً يتفوّق على أي مجموعة فرعية منها — في دراسة استبعاد منهجية شاملة.

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

المرجعMnih, Kavukcuoglu, Silver, Rusu, Veness, Bellemare, Graves, Riedmiller, Fidjeland, Ostrovski, Petersen, Beattie, Sadik, Antonoglou, King, Kumaran, Wierstra, Legg, Hassabis. Human-Level Control Through Deep Reinforcement Learning. Nature, 2015.

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