انتقل إلى المحتوى الرئيسي

الوحدة 2 — عمليّات القرار الماركوفية

قدّمت الوحدة الأولى حلقة التفاعل بلغة يوميّة. تُترجمها هذه الوحدة إلى صياغة رياضيّة موحّدة: عمليّة القرار الماركوفية (Markov Decision Process، أو MDP). كلّ الخوارزميّات اللاحقة تفترض هذه الصياغة، ولذلك فإنّ كلّ فشل غير مفهوم يحمل احتمالًا كبيرًا بأن يكون ماركوف نفسه هو من انتُهك.

المكوّنات الخمسة

يُعرَّف MDP بخمسة عناصر مرتّبة (S,A,P,R,γ)(S, A, P, R, \gamma):

  • مجموعة الحالات SS: الأوضاع الممكنة للبيئة. على FrozenLake تحتوي 16 حالة، رقمًا لكلّ خانة من شبكة 4×44 \times 4.
  • مجموعة الأفعال AA: قد تكون مشتركة بين الحالات (كأربعة اتّجاهات على FrozenLake) أو تعتمد على الحالة A(s)A(s).
  • دالّة الانتقال P(ss,a)P(s' \mid s, a): احتمال الوصول إلى ss' ابتداءً من ss بعد فعل aa. عندما is_slippery=True على FrozenLake يُصبح PP عشوائيًّا حقيقة: تنفيذ «شمال» يُترجَم فعليًّا إلى شمال بـ1/31/3، وشرق بـ1/31/3، وغرب بـ1/31/3.
  • دالّة المكافأة R(s,a,s)R(s, a, s'): القيمة العدديّة التي تُعطى بعد الانتقال. تتوفّر أحيانًا نسخة أبسط R(s,a)R(s, a) أو R(s)R(s).
  • معامل التخفيض γ\gamma: كما في الوحدة السابقة.

الشيء الجوهري هنا: الحالة تحتوي كلّ ما هو ضروري للقرار الأمثل. إن لم تكن كذلك، فليست ماركوفية.

فرضيّة ماركوف بالضبط

تنصّ فرضيّة ماركوف على أنّ الحالة الجديدة والمكافأة لا يعتمدان إلّا على الحالة الراهنة والفعل الراهن، لا على التاريخ:

P(st+1,rt+1st,at,st1,at1,,s0,a0)=P(st+1,rt+1st,at)P(s_{t+1}, r_{t+1} \mid s_t, a_t, s_{t-1}, a_{t-1}, \dots, s_0, a_0) = P(s_{t+1}, r_{t+1} \mid s_t, a_t)

قراءة عمليّة: يكفي أن تعلموا الحالة الراهنة لتقرّروا بأمثل قدر، ومعرفة الماضي لا تضيف شيئًا. تكديس تسع ماضيات إلى الحالة الراهنة يظلّ ماركوفيًّا (الحالة الجديدة أوسع)، لكنّه يُضخّم فضاء الحالة تضخيمًا هائلًا.

حين تُنتهك ماركوف

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

  • PixelPong: بكسلات إطار واحد لا تخبرك عن سرعة الكرة ولا اتّجاهها. الحلّ الكلاسيكي في DQN: تكديس آخر 4 إطارات، وهذا يُعيد شيئًا شبيهًا بماركوف.
  • قيادة ذاتية: صورة واحدة لا تُخبر بسرعة سيّارات أخرى؛ يلزم التاريخ.
  • رصيد حساب مصرفي: تكفي القيمة الحاليّة إن كانت الفوائد ثابتة. أمّا إن كانت تعتمد على متوسّط الشهر الماضي فتحتاجون إلى ذاكرة صريحة.

عندما تُنتهك فرضيّة ماركوف على «الحالة المُعلَنة»، يُسمّى النظام عمليّة قرار ماركوفيّة جزئية المشاهدة (POMDP). الحلول العمليّة: توسيع الحالة (تكديس التاريخ)، أو استعمال شبكة تكرارية (LSTM) تحفظ ذاكرة داخليّة.

علامة إنذار

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

السياسة والدور المزدوج

السياسة π\pi تُطابق كلّ حالة بتوزيع احتمال على الأفعال. سياسة حتميّة π(s)=a\pi(s) = a حالة خاصّة. السياسة كائن مركزي لسببين:

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

هذه الازدواجيّة تشرح لاحقًا الفرق بين طرائق على السياسة (on-policy) وخارج السياسة (off-policy).

FrozenLake بلغة MDP

نُصوغ الآن FrozenLake الكامل ليكون مرجعنا حتّى الوحدة 6:

import gymnasium as gym

env = gym.make("FrozenLake-v1", is_slippery=True)
S = env.observation_space.n # 16 حالات
A = env.action_space.n # 4 أفعال: يسار، أسفل، يمين، أعلى
gamma = 0.99

# استخراج P المُصرَّح به من البيئة (متاح لأنّ MDP معروف)
P = env.unwrapped.P # P[etat][action] = list de (prob, s', r, done)

المهمّ: P[etat][action] تُعيد قائمة من رباعيّات (p,s,r,terminated)(p, s', r, \text{terminated}). مع is_slippery=True، ليست هذه القائمة مُفردة العنصر: يشتمل كلّ فعل على ثلاثة سيناريوهات محتملة بأوزان 1/31/3 لكلّ منها. هذا هو ما يجعل المسألة صعبة.

المكافآت مُقتصدة: +1+1 عند الوصول إلى الخانة الهدف، و00 في كلّ مكان آخر. لا مكافأة سلبيّة على السقوط في ثقب، ولا عقوبة على الخطوات؛ ولذلك يواجه الوكيل مشكلة مكافأة متناثرة حقيقيّة، ومن هنا اختير هذا المُستوى تحديدًا للأمثلة التعليمية.

الخلاصة

  • MDP هو خماسيّة (S,A,P,R,γ)(S, A, P, R, \gamma)، والحالة يجب أن تحتوي كلّ ما هو لازم للقرار الأمثل.
  • تُختصر فرضيّة ماركوف في: المستقبل يعتمد على الحاضر وحده، لا على الماضي؛ وانتهاكها يقود إلى POMDP.
  • السياسة هي هدف التعلّم ومصدر البيانات في آن؛ ازدواجية تفسّر أشياء كثيرة لاحقًا.
  • FrozenLake بـis_slippery=True يُعطينا MDP عشوائيًّا صغيرًا نعرف PP فيه بالكامل، وسيكون مرجعنا للحسابات القادمة.

الوحدة التالية: دوالّ القيمة ومعادلات بلمان، الأداة التي تحوّل هذه الصياغة إلى شيء نستطيع فعلًا حسابه.