التعلم المعزز1988متوسط10 دقيقة قراءة

التعلُّم بالتنبؤ عبر أساليب الفارق الزمني

Learning to Predict by the Methods of Temporal Differences

Sutton, R. S. — Machine Learning

المشكلة

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

الإسهام

يقدّم سوتون عائلة من إجراءات التعلم التزايدي — أساليب TD(λ) — تُحدِّث التنبؤات بالاعتماد على الفارق بين تنبؤات متعاقبة زمنياً بدلاً من انتظار النتيجة النهائية. الورقة تُثبت تقارب TD(0) الخطي وأمثليته على سلاسل ماركوف الممتصة، وتُظهر تجريبياً أن أساليب الفارق الزمني تتعلم أسرع من أساليب التعلم المُوجّه، وتُؤسّس الإطار النظري الذي أصبح لاحقاً العمود الفقري بأكمله.

الأثر

تُمثّل هذه الورقة الأساس النظري للتعلم المعزز الحديث. أساليب الفارق الزمني هي التي أتاحت ظهور TD-Gammon (لعب النرد بمستوى بطل العالم)، وتعلم Q، وSARSA، وبنى الممثل-الناقد، ثم خطوط RLHF التي تُوائم النماذج اللغوية الكبيرة مثل GPT وClaude مع التفضيلات البشرية. في كل مرة يُحدِّث فيها وكيل تعلم معزز دالة القيمة من انتقالة واحدة، فإنه يستخدم امتداداً مباشراً لإطار سوتون 1988.

تخيّل أنك تتسلق جبلاً قمته مخفية وراء الغيوم. في ، تنتظر حتى تصل القمة لتحكم هل كان كل مفترق طرق اختياراً صائباً أم لا.

أما في تعلم ، فأنت تتفقّد الارتفاع عند كل استراحة. إذا صعد بك المسار 200 متر، تُحسِّن رأيك في المفترق السابق — قبل أن ترى القمة. كل قراءة ارتفاع عند استراحة تتحول إلى خطوة تعلُّم فعلية، لا مجرد انتظار للمشهد النهائي من فوق.

مشكلة التنبؤ: لماذا ينتهي الانتظار حتى النهاية بإهدار المعلومات

يطرح سوتون التحدي الجوهري على شكل مسألة : لديك سلسلة من الحالات x1,x2,,xmx_1, x_2, \ldots, x_m، ثم تظهر النتيجة zz في النهاية. المطلوب هو بناء تنبؤ PtP_t عند كل خطوة يُقدِّر zz بأعلى دقة ممكنة.

النهج التقليدي في التعلم المُوجَّه يُعامل كل خطوة كزوج مستقل من المشاهدة والنتيجة (xt,z)(x_t, z)، ويُحدِّث الأوزان باستخدام (قاعدة دلتا):

Δwt=α(zPt)wPt\Delta w_t = \alpha (z - P_t) \nabla_w P_t
قاعدة تحديث Widrow-Hoff (التعلم المُوجّه)انتظر حتى تعرف النتيجة z، احسب الخطأ z − Pₜ لكل خطوة، ثم حدِّث جميع الأوزان دفعة واحدة. هذا يستلزم تخزين جميع المشاهدات ولا يمكن تنفيذه بشكل تزايدي.

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

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

الفكرة المحورية: التعلُّم من الفارق بين تنبؤات متعاقبة

الملاحظة المحورية التي اكتشفها سوتون هي أن الخطأ الكلّي zPtz - P_t يمكن تفكيكه إلى مجموع تلسكوبي من فروق التنبؤات المتعاقبة:

zPt=k=tm(Pk+1Pk)z - P_t = \sum_{k=t}^{m} (P_{k+1} - P_k)

حيث Pm+1=defzP_{m+1} \stackrel{\text{def}}{=} z. الفكرة أنك لست بحاجة لانتظار zz: يكفي أن تُحدِّث بعد كل خطوة بالاعتماد على مقدار التغيّر من PtP_t إلى Pt+1P_{t+1} فقط. هذا هو جوهر تعلم الفارق الزمني.

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

عائلة TD(λ): من الاسترجاع الكامل إلى التمهيد الذاتي المحض

يُعرِّف سوتون طيفاً كاملاً من أساليب الفارق الزمني يتحكم فيه المعامل λ[0,1]\lambda \in [0, 1]. قاعدة التحديث هي:

Δwt=α(Pt+1Pt)k=1tλtkwPk\Delta w_t = \alpha (P_{t+1} - P_t) \sum_{k=1}^{t} \lambda^{t-k} \nabla_w P_k
قاعدة تحديث TD(λ)يتحكم λ في أفق إسناد الفضل. عند λ = 1 نحصل على قاعدة Widrow-Hoff المُوجَّهة. عند λ = 0 لا يُؤخذ في الحسبان إلا المشاهدة الأخيرة. القيم البينية تمزج بين الطرفين بترجيح أسّي.

فكّر في λ\lambda كأنه مقبض ذاكرة. ارفعه للحد الأقصى (λ=1\lambda = 1) وسيمنح المتعلم فضلاً متساوياً لكل المشاهدات السابقة — تماماً كما يفعل التعلم المُوجَّه. أنزِله للصفر (λ=0\lambda = 0) ولن تُؤثّر إلا الخطوة الأخيرة. أما القيم بينهما فتمنح الخطوات القريبة فضلاً أكبر بشكل أسّي مقارنةً بالبعيدة، كأنها بقعة ضوء تخفت كلما ابتعدت.

اللمسة الأنيقة هنا أن الترجيح الأسّي λtk\lambda^{t-k} يمتلك صيغة تزايدية بسيطة. نُعرِّف ete_t:

et=wPt+λet1e_t = \nabla_w P_t + \lambda \, e_{t-1}

هذا الأثر عبارة عن مجموع متجدّد يُخمِّد القديمة بمعامل λ\lambda عند كل خطوة. بفضله يستطيع TD(λ\lambda) أن يعمل بذاكرة ثابتة لكل خطوة — دون الحاجة لتخزين التاريخ بأكمله.

افتح في المختبر
اسحب شريط λ وشاهد كيف يتوزع الفضل على الحالات السابقة. عند λ=0 لا يحصل على الفضل إلا السلف المباشر فقط، وعند λ=1 تتقاسمه جميع الحالات بالتساوي.
تستيقظ التجربة عند وصولك…

تجربة المسار العشوائي: الدليل العملي

لاختبار الأساليب تجريبياً، صمّم سوتون تجربة أنيقة في بساطتها: مسار عشوائي محدود على 7 حالات (من A إلى G). كل مسار يبدأ من الحالة الوسطى D، وعند كل خطوة يتحرك يساراً أو يميناً باحتمال متساوٍ. إذا وصل إلى A (الحافة اليسرى) تكون النتيجة z=0z = 0، وإذا وصل إلى G (الحافة اليمنى) تكون النتيجة z=1z = 1. المهمة: تنبؤ احتمال الوصول إلى G انطلاقاً من كل حالة.

الاحتمالات الحقيقية هي 16,26,36,46,56\frac{1}{6}, \frac{2}{6}, \frac{3}{6}, \frac{4}{6}, \frac{5}{6} للحالات من B إلى F. رغم أن هذه المسألة من أبسط الأنظمة الديناميكية التي يمكن تصوّرها، إلا أنها تكشف بوضوح تفوّق أساليب الفارق الزمني.

افتح في المختبر
شغّل مسارات عشوائية وقارن أداء TD(0) مقابل Widrow-Hoff. لاحظ كيف يتقارب TD(0) نحو القيم الحقيقية أسرع وبخطأ أقل.
تستيقظ التجربة عند وصولك…

توصّل سوتون إلى نتيجتين لافتتين. في نظام العروض المتكررة (عرض نفسها حتى )، حقّق TD(0) خطأ جذر متوسط مربعات أقل من Widrow-Hoff عند كل قيمة λ<1\lambda < 1. وفي نظام العرض الوحيد (تمريرة واحدة على البيانات)، كانت أساليب الفارق الزمني عند λ0.3\lambda \approx 0.3 الأفضل أداءً، لكن جميع قيم λ<1\lambda < 1 تفوّقت على الأسلوب المُوجّه.

السؤال الطبيعي: كيف يخسر Widrow-Hoff وهو أسلوب مُثبَت رياضياً أنه يُقلّل خطأ مجموعة التدريب؟ الجواب أن تقليل الخطأ على بيانات التدريب ليس هو نفسه تقليل الخطأ على بيانات المستقبل. ما يحدث هو أن TD(0) يتقارب نحو المتوافقة مع الفعلية، وهذه التقديرات تُعمِّم بشكل أفضل على بيانات جديدة.

TD(0): الأبسط والأقوى في آن

عند λ=0\lambda = 0 تصل قاعدة التحديث إلى أبسط صورها وأكثرها تميّزاً:

Δwt=α(Pt+1Pt)wPt\Delta w_t = \alpha (P_{t+1} - P_t) \nabla_w P_t
تحديث TD(0) — أساس التعلم المعزز الحديثمطابقة للقاعدة المُوجَّهة إلا أن z استُبدلت بـ Pₜ₊₁. المتعلم يستخدم تنبؤه التالي كهدف — هذا هو التمهيد الذاتي. لا حاجة لتخزين أي تاريخ.

المقدار (Pt+1Pt)(P_{t+1} - P_t) يُعرف اليوم بـ**** ويُرمز له بـ δt\delta_t في أدبيات التعلم المعزز. هذا هو إشارة التعلم الجوهرية في التعلم المعزز الحديث: في كل مرة يُحدِّث فيها أو SARSA أو بنية أوزانها، فإنها تحسب نسخة من هذا الخطأ.

— أي استخدام تقديرك الخاص لتحسين تقديرك — يبدو دائرياً للوهلة الأولى، لكن سوتون أثبت أنه ناجح. الحدس وراء ذلك أن Pt+1P_{t+1} يتضمن خطوة إضافية واحدة من المعلومات الحقيقية مقارنةً بـ PtP_t: فقد رأى الحالة الفعلية التالية. هذه المشاهدة الإضافية تجعل Pt+1P_{t+1} معياراً أدق من النتيجة النهائية zz التي قد تكون بعيدة ومُشوَّشة بعوامل كثيرة.

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

التقارب: لماذا لا يدخل التمهيد الذاتي في حلقة مفرغة

أعمق إسهام في الورقة هو البرهان على أن TD(0) الخطي يتقارب. هذه نتيجة لافتة لأن الأسلوب يتعلم من تنبؤاته هو، وهي خاطئة في البداية. الأساليب السابقة الشبيهة بالفارق الزمني (برنامج الداما لصامويل، ولواء الدلو لهولاند) نجحت عملياً لكنها افتقرت إلى أي ضمان نظري بـالتقارب.

يُبرهن سوتون على مبرهنتين لبيانات مولَّدة من بمتجهات مشاهدة مستقلة خطياً:

المبرهنة 2 (التقارب): إذا كان α\alpha صغيراً بما يكفي، فإن TD(0) الخطي يتقارب في القيمة المتوقعة نحو التنبؤات المثالية — أي القيم المتوقعة الحقيقية للنتائج عند كل حالة.

المبرهنة 3 (الأمثلية): تحت العروض المتكررة لمجموعة تدريب محدودة، يتقارب TD(0) الخطي نحو تقديرات الأرجحية العظمى — أي التنبؤات التي ستكون مثالية لو أن بيانات التدريب وصفت العملية الحقيقية بدقة تامة. أما Widrow-Hoff فيتقارب نحو التقديرات التي تُقلّل خطأ مجموعة التدريب فحسب، وهي عادةً دون المثلى للبيانات المستقبلية.

الفكرة بلغة الكود

خوارزمية TD(0) وTD(λ) الخطية على سلسلة ماركوف ممتصةpython

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

import numpy as np

def td_zero(sequences, n_states, alpha=0.05, n_episodes=100):
    """TD(0) الخطي للمسار العشوائي المحدود."""
    V = np.full(n_states, 0.5)  # التنبؤات الأولية
    for _ in range(n_episodes):
        for seq in sequences:
            for t in range(len(seq) - 1):
                s  = seq[t]         # فهرس الحالة الحالية
                s_ = seq[t + 1]     # فهرس الحالة التالية
                # خطأ الفارق الزمني: التنبؤ التالي ناقص الحالي
                if s_ == 0 or s_ == n_states - 1:   # حالة نهائية
                    target = 1.0 if s_ == n_states - 1 else 0.0
                else:
                    target = V[s_]   # تمهيد ذاتي من تنبؤنا
                delta = target - V[s]
                V[s] += alpha * delta  # تحديث TD(0) بالكامل
    return V

def td_lambda(sequences, n_states, lam=0.3, alpha=0.05, n_episodes=100):
    """TD(λ) الخطي مع أثر الأهلية."""
    V = np.full(n_states, 0.5)
    for _ in range(n_episodes):
        for seq in sequences:
            e = np.zeros(n_states)       # أثر الأهلية
            for t in range(len(seq) - 1):
                s  = seq[t]
                s_ = seq[t + 1]
                if s_ == 0 or s_ == n_states - 1:
                    target = 1.0 if s_ == n_states - 1 else 0.0
                else:
                    target = V[s_]
                delta = target - V[s]
                e *= lam               # إخماد الآثار القديمة
                e[s] += 1.0            # تعليم الحالة الحالية
                V += alpha * delta * e # تحديث جميع الحالات ذات الأثر
    return V

# الفرق الوحيد: TD(0) يُحدّث حالة واحدة في كل خطوة؛
# TD(λ) يُحدّث كل الحالات المزارة حديثاً بأوزان تتناسب مع λ.

التوسعات: النتائج التراكمية والخصم الزمني

يوسّع سوتون أساليب الفارق الزمني لتتجاوز تنبؤ نتيجة نهائية واحدة إلى تنبؤ التكاليف التراكمية التي تتجمع على طول التسلسل. إذا كان ct+1c_{t+1} هو التكلفة المتكبَّدة بين الخطوتين tt وt+1t+1، يصبح هدف التنبؤ:

zt=k=tmck+1z_t = \sum_{k=t}^{m} c_{k+1}

في هذه الحالة يتعمم خطأ الفارق الزمني إلى (ct+1+Pt+1Pt)(c_{t+1} + P_{t+1} - P_t)، وهذه بالضبط الصيغة المستخدمة في التعلم المعزز الحديث. وعند إدخال γ\gamma، نحصل على خطأ الفارق الزمني المُخصَّم:

δt=ct+1+γPt+1Pt\delta_t = c_{t+1} + \gamma P_{t+1} - P_t

هذه هي إشارة التحديث التي استخدمها سوتون نفسه في (1984)، وهي تحديداً الإشارة التي تعتمد عليها كل خوارزمية تعلم معزز حديثة قائمة على تقدير القيمة.

δt=rt+1+γV(st+1)V(st)\delta_t = r_{t+1} + \gamma V(s_{t+1}) - V(s_t)
خطأ الفارق الزمني الحديث (نبض التعلم المعزز)rₜ₊₁ = المكافأة عند الخطوة التالية · γ = مُعامل الخصم · V(s) = تقدير القيمة للحالة s · هذه المعادلة الواحدة تقود تعلم Q وSARSA وبنية الممثل-الناقد وكل ما تفرّع منها.

الفارق الزمني بين عملاقين: البرمجة الديناميكية ومونت كارلو

يحتل تعلم الفارق الزمني موقعاً وسطاً فريداً بين نهجين كلاسيكيين:

(بيلمان، 1957) تحسب القيم انطلاقاً من نموذج معروف للبيئة: V(s)=aπ(as)sp(ss,a)[r+γV(s)]V(s) = \sum_a \pi(a|s) \sum_{s'} p(s'|s,a) [r + \gamma V(s')]. النتائج دقيقة لكنها تشترط توفُّر نموذج كامل — احتمالات الانتقال و لكل زوج حالة-فعل.

أساليب تُقدِّر القيم بحساب متوسط العائد التراكمي الكامل: V(s)متوسط GtV(s) \approx \text{متوسط } G_t عبر الحلقات. لا تحتاج نموذجاً، لكنها مضطرة للانتظار حتى نهاية كل حلقة.

الفارق الزمني يجمع أفضل ما في النهجين: مثل مونت كارلو، يتعلم من التجربة المباشرة دون نموذج. ومثل البرمجة الديناميكية، يُحدِّث تقديراته بالاعتماد على تقديرات أخرى (التمهيد الذاتي)، فيتعلم عند كل خطوة دون انتظار نهاية الحلقة.

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

الإرث الذي أسّس التعلم المعزز الحديث

  1. 1959

    لعبة الداما لصامويل

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

  2. 1988

    هذه الورقة — الصياغة الرسمية لـ TD(λ)

    يفصل سوتون أساليب الفارق الزمني عن الأنظمة الأكبر التي كانت مدمجة فيها، ويُثبت تقارب TD(0) وأمثليته، ويُقدِّم المعامل λ الذي يتحكم في المفاضلة بين التمهيد الذاتي والمعاينة الكاملة.

  3. 1989

    تعلم Q

    يوسّع واتكينز الفارق الزمني ليشمل التحكم، وذلك بتعلم قيم الأفعال Q(s, a) بأسلوب خارج السياسة. خطأ الفارق الزمني يصبح هو تحديث تعلم Q — وهو سليل مباشر لهذه الورقة.

  4. 1992

    TD-Gammon

    يُطبّق تيساورو TD(λ) مع شبكة عصبية على لعبة الطاولة (النرد)، ويُحقّق مستوى بطل العالم. هذا أول عرض عملي مبهر لقدرة الفارق الزمني مع تقريب الدوال على التعامل مع مسائل معقدة.

  5. 2000

    كتاب سوتون وبارتو في التعلم المعزز

    يُرسّخ أساليب الفارق الزمني بوصفها الفصل المحوري في نظرية التعلم المعزز. يُقدَّم TD(0) وSARSA وتعلم Q كعائلة موحدة انبثقت من أفكار هذه الورقة.

  6. 2015

    تقدير الميزة المعمَّم (GAE)

    يستخدم شولمان وزملاؤه TD(λ) لحساب الميزات في أساليب تدرُّج السياسة. المعامل λ من هذه الورقة يتحكم مباشرة في المفاضلة بين الانحياز والتباين في تحسين السياسات الحديثة.

  7. 2017

    PPO والفارق الزمني في RLHF

    دوال القيمة القائمة على الفارق الزمني تُصبح الناقد في بنية الممثل-الناقد التي تُشغِّل RLHF — الأسلوب المستخدم لمواءمة GPT وClaude والنماذج اللغوية الكبيرة الأخرى مع تفضيلات البشر.

المرجعSutton, R. S.. Learning to Predict by the Methods of Temporal Differences. Machine Learning 3(1), 1988.

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