الأدلة الإرشادية
التعلّم المعزَّز
يقيّم Oloproof سياسة (policy) التعلّم المعزَّز بتشغيلها في جولات (episodes)، أو من سجل السياسة التي ستحلّ محلها. شغّلها حين تستطيع؛ واستخدم السجل حين لا تقع النتيجة إلا في العالم الحقيقي. هذه الصفحة هي المرجع لكلتا الطريقتين، ويشرح الدرس التعليمي كلًّا منهما على مثال قابل للتشغيل.
لا يستضيف Oloproof بيئةً ولا يعيد ضبطها ولا يحاكيها، ولا يدرّب السياسات. نظامك يشغّل بيئته الخاصة، كما يشغّل كل نظام يقيّمه Oloproof شيفرته الخاصة.
الجولات
المهمة حالة. والجولة قياس واحد لها: يشغّل نظامك السياسة في بيئته ويسجّل الجولة بـ current_case().rl_episode(...)، كمُخرَج فني من نوع rl_episode/v1.
| الحقل | النوع | المعنى |
|---|---|---|
| steps | قائمة خطوات، index يبدأ من 1 | مكافأة كل خطوة (reward)، وتكلفة القيد فيها (cost، الافتراضي 0)، واختياريًا action وobservation |
| success | true أو false أو غائب | حكم البيئة نفسها على الجولة |
| truncated | قيمة منطقية، الافتراضي false | أنهى حدُّ الخطوات الجولةَ قبل بلوغ حالة نهائية |
| horizon | عدد صحيح، اختياري | حد الخطوات؛ ولا يجوز أن يتجاوز طول الجولة هذا الحد |
يحوي السجل كل خطوة من الجولة. والجولة المبتورة هي جولة يعرّفها بروتوكول التقييم بأنها تنتهي عند حدها، لذا فعائدها وتكلفتها كاملان، وليسا حدودًا دنيا.
أعلن النوع الذي يسجّله النظام، كي يستطيع التشغيل رفض مُقيِّم يحتاج إلى سجل لا يكتبه النظام أبدًا:
system:
name: grid-agent
callable: env:run_baseline
records: [rl_episode/v1]مُقيِّمات الجولات
| النوع | يقيس | الحقول |
|---|---|---|
| episode_return | العائد، مع ترجيح كل مكافأة بـ discount لكل خطوة، كدرجة | return_range (مطلوب)، discount (الافتراضي 1) |
| episode_success | ينجح حين تسجّل الجولة success: true؛ ويكون مفقودًا حين لا تسجّل شيئًا | لا شيء |
| episode_cost_within | ينجح حين لا يتجاوز مجموع تكاليف الخطوات budget | budget (مطلوب) |
return_range هو النطاق الذي يقع فيه كل عائد، مثل 30 خطوة بقيمة -1 لكل منها في أسوأ الأحوال ومكافأة الهدف في أفضلها. والفترة حول متوسط العائد لا تصح إلا داخله، لذا فالعائد الواقع خارجه يوقف التشغيل برمز الخروج 2. وفي SDK الأصناف هي EpisodeReturn وEpisodeSuccess وEpisodeCostWithin في oloproof.evaluators.
عدة جولات لكل مهمة
اضبط replicates: لتشغيل عدة جولات لكل مهمة. ويقول current_case().replicate أيّ جولة تعمل الآن (0 للأولى)، وهو جزء من مفتاح التنفيذ المخزَّن، لذا فالبيئة التي تشتق بذرة الجولة منه تعيد الجولة نفسها للتكرار نفسه، ويعيد التشغيل الثاني استخدام ما خزّنه.
تبقى المهمة هي الوحدة. يصبح كل معيار متوسطًا على المهام لمتوسط كل مهمة على جولاتها، والفترة تعدّ المهام: خمس جولات لمهمة واحدة ليست خمس مهام مستقلة.
معدل النجاح على المهام المكرَّرة يقرأ نسبة الجولات الناجحة في كل مهمة. ولتسأل بدلًا من ذلك هل تنجح المهمة في كل مرة، أعلن مقياس every_replicate:
metrics:
- {id: solved_every_time, type: every_replicate, criterion: episode_success}لا تُحتسب المهمة إلا حين تنجح جميع جولاتها، لذا فكل مهمة نجاح واحد أو إخفاق واحد، وتنطبق فترة ذات الحدين الدقيقة. ومع جولة واحدة لكل مهمة يساوي معدل النجاح. والمهمة التي لها جولة مفقودة تكون مفقودة، حتى لو أخفقت جولة أخرى من جولاتها.
مقارنة سياستين
يقرن oloproof compare كل مهمة بنفسها، وقيمة كل جانب هي متوسطه على جولاته. ويُعرض فرق العائد بوحدة العائد نفسها، وفرق معدل النجاح بالنقاط المئوية. ويجوز أن يشغّل التشغيلان أعدادًا مختلفة من الجولات لكل مهمة، إلا لمقياس every_replicate: فالنجاح في كل جولة من خمس جولات والنجاح في الجولة الوحيدة سؤالان مختلفان، لذا لا تُحسب تلك المقارنة. ولا تُحسب مقارنات المِئين والترتيب حين يكون لأي من التشغيلين عدة جولات لكل مهمة.
التقييم خارج السياسة
استخدمه حين لا تقع النتيجة التي تهمّك إلا في العالم الحقيقي (تذكرة حُلَّت، مستخدم عاد) ولا تستطيع بعد تجربة السياسة الجديدة على حركة حقيقية. والدليل سجل لقرارات اتخذتها سياسة أقدم.
كل حالة قرار واحد مسجَّل:
{"id":"t001","input":{"topic":"technical","length":"short"},"expected":{"action":"small","logging_probabilities":{"small":0.7,"large":0.3},"reward":1}}| الحقل | المعنى |
|---|---|
| input | ما رأته السياسة حين قرّرت |
| expected.action | الفعل الذي اتخذته سياسة التسجيل (logging policy) |
| expected.logging_probabilities | الاحتمال الذي أعطته سياسة التسجيل لكل فعل في تلك اللحظة، ومجموعها 1 |
| expected.reward | ما تلا ذلك، ضمن reward_range؛ وغائب إن لم يصل أبدًا |
النظام هو السياسة التي تريد تقييمها. يتلقى input ويعيد احتماله الخاص لكل فعل تحت probabilities، أو تحت الحقل الذي تسمّيه في probabilities_field. ولا يشغّل نموذجًا أبدًا ولا يمسّ العالم الحقيقي. ولا يحوي input إلا ما رأته سياسة التسجيل حين قرّرت: لا الفعل المسجَّل ولا المكافأة أبدًا، فالسياسة قيد الاختبار يجب ألا تراهما. والسياسة التي تختار بالسحب العشوائي تعيد الاحتمالات التي تسحب منها، لا الفعل الذي سحبته؛ ويُقيَّم كل قرار من جديد حتى لو تكرّر مُدخَله. وتُسمّى الأفعال تمامًا كما يسمّيها السجل: الفعل المكتوب بتهجئة مختلفة يُحتسب فعلًا لم تتخذه سياسة التسجيل قط.
| النوع | يقدّر |
|---|---|
| off_policy_value | متوسط مكافأة السياسة على قرارات مثل القرارات المسجَّلة |
| off_policy_improvement | ذلك المتوسط مطروحًا منه متوسط سياسة التسجيل نفسها |
كلاهما يأخذ reward_range وpropensity_floor، أصغر احتمال أعطته سياسة التسجيل لأي فعل قد تتخذه السياسة الجديدة. اضبطه بناءً على طريقة تصميم سياسة التسجيل (معدل استكشاف، حصة دنيا)، لا بتجربة قيم على السجل أبدًا. يُعاد ترجيح كل قرار مسجَّل باحتمال فعله في السياسة الجديدة مقسومًا على احتماله في سياسة التسجيل، والحد الأدنى يقيّد هذا الوزن: من دونه لا تصح أي فترة. وفي SDK الصنفان هما OffPolicyValue وOffPolicyImprovement.
ما يفعله المحرك بقرار لا يستطيع قراءته كما هو:
| الوضع | النتيجة |
|---|---|
| احتمالات لا يبلغ مجموعها 1، أو فعل مسجَّل باحتمال 0، أو مكافأة خارج reward_range | يتوقف التشغيل برمز الخروج 2: فالاحتمال الخاطئ يجعل الفترة خاطئة دون أن يُظهر ذلك |
| قد تتخذ السياسة الجديدة فعلًا سُجِّل باحتمال أقل من الحد الأدنى | يكون القرار مفقودًا ويُحتسب بأسوأ قيمة ممكنة له |
| المكافأة غائبة | يكون القرار مفقودًا ويُحتسب بأسوأ قيمة ممكنة له |
ما تفترضه الإجابة:
- سُجِّلت الاحتمالات حين قرّرت سياسة التسجيل، وهي الاحتمالات التي استخدمتها. ولا يقدّرها Oloproof أبدًا.
- مكافأة كل قرار تعتمد على مُدخَله وفعله هو، لا على قرارات أخرى.
- حافظت سياسة التسجيل على الاحتمالات نفسها طوال نافذة السجل.
- تصف الإجابة قرارات مثل القرارات المسجَّلة، على امتداد الفترة الزمنية التي يغطيها السجل.
تكون الفترة واسعة حين يكون الحد الأدنى صغيرًا: فالقرارات التي تخبر عن فعل نادر الاختيار قليلة، وكل منها يُحتسب مرات كثيرة. ويضيّقها سجل أطول، وسياسة تسجيل تستكشف أكثر.
ما لم يُبنَ
- التقييم خارج السياسة لسلسلة من القرارات، حيث يغيّر كل اختيار ما يأتي بعده.
- سجل غيّرت سياسته احتمالاتها وهي تتعلّم خلال النافذة.
- احتمالات قُدِّرت بعد وقوعها.
- استضافة البيئات والمحاكيات أو إعادة ضبطها.
إلى أين بعد ذلك
- درس تعليمي: تقييم سياسة تعلّم معزَّز: الجزءان كلاهما، مُشغَّلين من البداية إلى النهاية.
- كتابة مجموعة اختبار: التكرارات وسائر حقول مجموعة الاختبار.
- مرجع التهيئة: كل حقل من حقول هذه المُقيِّمات.