#q-learning — التعلّم بالتعزيز
تعلّم Q: تعلّم مسارٍ بالتجربة والخطأ.
ما ستُجرّبه
- مرحبًا بك في #q-learning. على الشاشة شبكةٌ 5 × 5 مرئيّةٌ من الأعلى: ينتظر العميل (كرةٌ زرقاء) على الخلية المُطوَّقة بالرمادي، أسفل اليسار؛ والهدف الذهبيّ (
+1) أعلى اليمين، وفخٌّ أحمر (−1) في المنتصف. كلّ خلية تحمل قيمتهاV(s) = max Q(s, a): كلّها صفر الآن، فهي رمادية — لا يعرف العميل شيئًا. لن يُسلِّمه أحدٌ الخريطة: يكسب−0.04لكلّ خطوة، و+1إن بلغ الهدف، و−1إن سقط في الفخّ. هذا هو التعلّم المعزَّز: تعلّم مسارٍ بالتجربة والخطأ، تمامًا كما تتعلّم عبور بيتٍ ليلًا دون إشعال الأنوار. - العب خطوةً واحدة:
/step. يختار العميل فعلًا (عشوائيًا، إذ لا يزال كلّ شيء متساويًا)، فيلعبه، ويحصّل المكافأة، ويُحدّث خليةً واحدة من جدول Q بالقاعدةQ ← Q + α·(r + γ·max Q(s′,·) − Q). تصلك الأرقام الدقيقة في الردّ. - شغِّل عشرين حلقةً دفعةً واحدة:
/episode 20. حلقةٌ واحدة = يعود العميل من البداية ويلعب حتى يبلغ الهدف أو الفخّ أو الخطوة المئة. - استمرّ:
/episode 100. راقب الأخضر يمتدّ عبر الشبكة خطوةً خطوة، وطول الحلقة يستقرّ نحو الأمثل (8 خطوات، الخطّ الأخضر المتقطّع على المنحنى). - اللون الواحد لكلّ خلية هو القيمة. لكن ماذا يفعل العميل؟ أظهِر سياسته:
/view arrows. - يُحدِّد عامل γ (غاما) مقدار اهتمام العميل بالمستقبل. قلّص أفقه:
/gamma 0.5. يعتمد جدول Q على γ، لذا يُصفَّر. - أعِد بدء التعلّم بهذا الأفق القصير:
/episode 100. - عرضٌ أخير: المسار الذي سيسلكه العميل لو لم يطع سوى أسهمه، بلا مزيد من الاستكشاف. اكتب
/policy— يتبدّل العرض إلى وضع المسار (/view pathيقوم بذلك أيضًا). - دورك:
/grid medium(جدرانٌ وفخّان) أو/grid maze(ممرٌّ من 25 خطوة: احسب عدد الحلقات اللازمة)، و/slip 0.2لريحٍ تُحرِف فعلًا من كلّ خمسة (يتعلّم العميل الابتعاد عن الفخّ)، و/epsilon 0.5للاستكشاف أكثر، و/alpha 0.1للتعلّم بتأنٍّ أكبر، و/gamma 0.95لعميلٍ صبور، ثم/episode 200لرؤية الفرق؛ و/seed 42لسحوباتٍ أخرى، و/resetلإعادة البدء. لقد جُلتَ في المختبر: عُد إلى القناة الأولى، #neuron، لإغلاق الحلقة — سترى بعيونٍ جديدة ما يعنيه «التعلّم» حقًّا.
أوامر القناة
/grid <small|medium|maze>— بدّل الشبكة؛ يُصفَّر جدول Q./episode <1..200>— العب n حلقة دفعةً واحدة (كلٌّ منها ≤ 100 خطوة) وحدِّث Q عند كلّ خطوة./step— انتقالٌ واحد (s, a, r, s′) وتحديث Q الموافق له، بالأرقام./alpha <0.01..1>— معدّل التعلّم α: كم من الخطأ تُصحّحه عند كلّ تحديث./gamma <0..0.99>— عامل الخصم γ: وزن المستقبل؛ يُصفَّر جدول Q./epsilon <0..1>— الاستكشاف ε: احتمال لعب فعلٍ عشوائيّ بدلًا من الأفضل./slip <0..0.3>— الريح: احتمال أن ينزلق الفعل ربع دورة؛ يُصفَّر جدول Q./view <values|arrows|path>— ما تُظهِره الشبكة: القيم، أم أسهم السياسة، أم المسار الجشع./policy— ارسم المسار الجشع من البداية وأعطِ طولَه (أو أشِر إلى دورة)./seed <1..9999>— تُغيّر السحوبات العشوائية (الاستكشاف، التعادلات، الريح)؛ يُصفَّر جدول Q./reset— العودة إلى الشبكة الصغيرة، α = 0.5، γ = 0.9، ε = 0.1، بلا ريح، جدولٌ فارغ.
المسرد
- التعلّم المعزَّز
- تعلّمٌ بالتجربة والخطأ: يتصرّف العميل في بيئةٍ ولا يتلقّى إلا مكافأة، لا الإجابة الصحيحة أبدًا. يبحث عن الاستراتيجية التي تُعظِّم مجموع المكافآت على المدى الطويل. الألعاب (AlphaGo)، والروبوتات، وتهذيب النماذج اللغوية الكبيرة (RLHF) كلّها تنتمي إلى هنا.
- العميل والبيئة والمكافأة
- حلقة التعزيز: يُلاحظ العميل حالةً s ويختار فعلًا a؛ فتردّ البيئة بـ مكافأة r وحالةٍ جديدة s′. هنا: الخلية، أحد أربعة اتجاهات، −0.04 / +1 / −1، وخلية الوصول.
- جدول Q
- جدولٌ Q(s, a) يُقدِّر، لكلّ حالةٍ ولكلّ فعل، العائد المخصوم الذي تحصل عليه بلعب a ثم التصرّف على نحوٍ أمثل بعدها. قيمة الحالة هي
V(s) = max_a Q(s, a)؛ وهي ما تُلوِّن الخلايا. - معادلة بلمان
- علاقةُ اتّساقٍ بين القيم المتجاورة:
Q(s, a) = r + γ·max_a′ Q(s′, a′). يُصحّح تعلّم Q كلّ تقدير نحو هذا الهدف، انتقالًا انتقالًا:Q ← Q + α·(r + γ·max Q(s′,·) − Q). الحدّ بين القوسين هو خطأ الفارق الزمنيّ. - عامل الخصم γ
- عددٌ بين 0 و1 يُثقِّل المستقبل: مكافأةٌ يتلقّاها العميل بعد k من الخطوات تُحسَب بمعامل
γ^k. قريبةً من 1، يكون العميل صبورًا وتنتشر القيم بعيدًا؛ صغيرةً، يكون قصير النظر ولا يرى إلا المكافآت القريبة. - معدّل التعلّم α
- حصّة الخطأ المُصحَّحة عند كلّ تحديث، بين 0 و1. كبيرة، يتعلّم الجدول بسرعة لكنّه ينسى كلّ شيء عند أقلّ ضربة حظّ سيّئة؛ صغيرة، يُتوسِّط عشوائيّة العالم (الريح) بكلفة حلقاتٍ أكثر.
- ε-الجشعة
- كيفية اختيار الفعل: باحتمال ε تستكشف (فعلٌ عشوائيّ)، وإلا فأنت تستغلّ (الفعل صاحب أكبر Q). بلا استكشاف لن تكتشف مساراتٍ لم تُجرِّبها؛ ومع الكثير منه، لن تستغلّ ما تعرفه.
- السياسة
- قاعدةٌ تُطابق كلّ حالة بفعل: ما يفعله العميل. تلعب السياسة الجشعة الفعلَ صاحبَ أكبر Q — وهي الأسهم والمسار المرسوم. هدف التعلّم المعزَّز هو إيجاد السياسة المُثلى.
- خارج السياسة وداخل السياسة
- تعلّم Q هو خارج السياسة: يتعلّم قيمة السياسة الجشعة مستخدمًا
max Q(s′,·)، حتى حين تأتي الأفعال من استكشافٍ ε-جشِع. أمّا SARSA فداخل السياسة: يستخدمQ(s′, a′)بالفعل المُقبِل حقًّا، فيت علّم قيمة السياسة الاستكشافية — أكثر حذرًا قرب الفخاخ. - DQN
- شبكة Q العميقة: حين تكون الحالات أكثر من أن تسعها جدول (بيكسلات لعبة أتاري)، تُقرِّب شبكةٌ عصبيّة Q(s, a). القاعدة نفسها لبلمان، مع حيلتين لاستقرار التدريب: ذاكرة إعادة التشغيل وشبكة هدفٍ مجمَّدة. تلك هي الجسر بين هذه القناة والشبكات العصبيّة في المختبر.
قنوات أخرى في التعلّم بالتعزيز
- #multi-armed-bandit — القاطع متعدّد الأذرع: أتستكشف أم تستغلّ؟
- #q-learning — تعلّم Q: تعلّم مسارٍ بالتجربة والخطأ.