English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

ضيف
1 / ?

متوسط متحرك أسي

متوسط سلس حديث

يتابع المتوسط المتحرك الأسي (EMA) قيمة بتوزيع أوزان أكبر للعينات الحديثة مقارنة بالقديمة، مع أوزان تتناقص أسيًا. الصيغة:


EMA(t) = (1 - alpha) EMA(t-1) + alpha value(t)


حيث يقع ألفا (عامل التنعيم) في (0, 1). يستخدم ANDREA قيمة alpha = 0.1 لتتبع الخسارة لكل مصدر.


مصطلح بمصطلح

- value(t): آخر ملاحظة. بالنسبة لـ ANDREA، هذه هي الخسارة التي يبلغ عنها CUDA بعد تمريرة أمامية على وثيقة من المصدر k.

- EMA(t-1): قيمة EMA السابقة للمصدر k. مخزنة في حالة الوكيل.

- alpha = 0.1: كل خسارة جديدة تساهم بنسبة 10%; التاريخ المتدحرج يساهم بنسبة 90%.

- (1 - alpha) = 0.9: الوزن على التاريخ.


لماذا EMA بدلاً من المتوسط البسيط

المتوسط المتحرك البسيط يعطي وزنًا متساويًا لكل خطوة. الخطوة 1 لها نفس الوزن مثل الخطوة 100,000. هذا يعمل إذا كانت البيانات ثابتة. خسائر ANDREA ليست ثابتة: سعة النموذج تتزايد أثناء التدريب، لذا خسائر المصدر في الخطوة 5,000 تختلف عن خسائرها في الخطوة 50,000.


EMA يحل هذه المشكلة. القيم القديمة للخسائر تتلاشى بشكل أسي. EMA يعكس الواقع الحالي، لا متوسط الظروف الأولية.


لكل مصدر

ANDREA يحافظ على EMA واحد لكل ذراع (لكل مصدر). ستة عشر ذراعًا = ستة عشر EMA. كل خطوة تقوم بتحديث EMA للمصدر الذي تم سحبه فقط. الـ15 EMA الأخرى تبقى مجمدة حتى سحبها التالي.

حساب خطوة EMA

المصدر k لديه EMA_k(t-1) = 4.521. يبلغ CUDA عن خسارة جديدة للمصدر k: loss_k(t) = 4.520. مع alpha = 0.1، احسب EMA_k(t). أظهر: (a) مصطلح (1-alpha)، (b) (1-alpha) * EMA_k(t-1)، (c) alpha * loss_k(t)، (d) المجموع. قسم إلى 4 منازل عشرية حيث يلزم.

صيغة المكافأة

المكافأة = التحسن، مقياس
Return ONLY translated blocks with their placeholders, preserving format: [BLOCK_TYPE SECTION/STEP] __BLOCK_N__ <translated content>

يُعرّف ANDREA مكافأة الخطوة للذراع k كالتالي:


reward_k = max(0, EMA_k(t-1) - loss_k(t)) * 1000


ثلاثة أجزاء:


1. EMA_k(t-1) - loss_k(t): التحسن. إذا كانت الخسارة الجديدة أقل من المتوسط المتحرك، فإن الفرق إيجابي: المصدر k أدى أفضل من المتوقع.

2. max(0, ...): قص التحسينات السلبية إلى صفر. إذا كانت الخسارة الجديدة أسوأ من EMA، لا مكافأة (ولا عقوبة أيضًا).

3. \* 1000: تكبير النطاق لجعل الإشارة قابلة للمقارنة مع مكافأة الاستكشاف UCB.


Reward Attribution Flow


لماذا max(0, ...)

ستدفع المكافآت السلبية متوسط الـ mean_reward(k) إلى الأسفل، مما يحيز UCB ضد الذراعات التي تتقلب خسائرها إلى الأعلى. لكن التقلب أمر طبيعي: وثيقة صعبة واحدة ترفع الخسارة دون أن تعني أن المصدر سيء. القص إلى صفر يعامل التقلب كـ 'لا معلومات' بدلاً من 'عقوبة'.


يمكن للمصادر كسب مكافأة صفر مرارًا دون الغرق. يظل ترتيب UCB الخاص بها مدفوعًا بمكافأة الاستكشاف (عالية عندما يكون n_k صغيرًا) بالإضافة إلى الانتصارات السابقة.


ما يبلغه CUDA

في كل مرور أمامي + خلفي، يصدر نواة CUDA سجلاً واحداً:


{source: 'hermes3-general', doc_index: 4231, loss: 4.520}


يتلقى الوكيل السجل، يبحث عن EMA لهذا المصدر، يحسب المكافأة، يحدث EMA، يغذي المكافأة في متراكم mean_reward(k) لللص.

حساب مكافأة

المصدر k لديه EMA_k(t-1) = 4.521. يبلغ CUDA عن loss_k(t) = 4.520. احسب reward_k خطوة بخطوة: (a) الفرق EMA_k(t-1) - loss_k(t)، (b) القيمة المقصوصة max(0, difference)، (c) المكافأة المقياسة (اضرب في 1000). ثم لحالة ثانية حيث loss_k(t) = 4.530 (أسوأ من EMA)، احسب (d) الفرق غير المقصوص، & (e) المكافأة النهائية بعد قص max(0, ...) & التوسيع.

مطابقة المكافأة مع مكافأة الاستكشاف

مشكلة الحجم

تحسنات الخسارة لكل خطوة تكون صغيرة. الخسارة تنخفض من 4.521 إلى 4.520: فرق 0.001. من 4.520 إلى 4.518: فرق 0.002. عبر تشغيل تدريب كامل، الفرق الخام يعيش في تقريباً [0, 0.01].


الآن انظر إلى مكافأة الاستكشاف في UCB عند C=0.5، مع N=1000 و n_k=20:


0.5 sqrt(ln(1000) / 20) = 0.5 sqrt(6.91 / 20) = 0.5 * 0.588 = 0.294


المكافأة تسير عند 0.294. المكافأة الخام تسير عند 0.001. المكافأة هي 300x أكبر من المكافأة. يرتب argmax في UCB تقريباً بالكامل حسب المكافأة؛ mean_reward توفر إشارة شبه صفرية.


النتيجة بدون التوسيع: يختار بنديت ANDREA الذراع ذو أصغر n_k في كل خطوة. يتم تجاهل mean_reward. يصبح البنديت سياسة استكشاف نقية.


الحل: 1000x

اضرب المكافأة الخام في 1000. الآن تكون المكافأة عند 1.0 (مقابل الخام 0.001). قارن مع نفس مكافأة الاستكشاف 0.294:


المكافأة المقياسة 1.0 مقابل المكافأة 0.294 = المكافأة تتقدم بـ 3.4x


الآن mean_reward تهيمن على ترتيب UCB. الاستكشاف يضيف لمسة دقيقة إلى الذيل (الأذرع النادرة تحصل على دفعة 0.3)، لكن جسم الترتيب يأتي من المكافأة المرصودة.


لماذا 1000 (وليس 10، ولا 100,000)

مطابقة ترتيب المقياس. المكافآت الخام تعمل ~10^-3. مكافأة الاستكشاف تعمل ~10^0. الفجوة هي 10^3. اضرب المكافأة الخام في 10^3 للوصول إلى نفس النطاق مثل المكافأة.


التوسع بـ100x يترك المكافأة عند 0.1 (لا تزال أقل من مكافأة 0.294 -> الاستكشاف لا يزال يسيطر). التوسع بـ100,000x يرفع المكافأة إلى 100 (الآن لا يمكن للاستكشاف التأثير على أي شيء؛ UCB ينهار إلى المتوسط الجشع mean_reward). 1000x يقع في المنطقة العاملة حيث يساهم كلا الطرفين.


المعايرة، وليس النظرية

عامل 1000x هو معايرة هندسية، وليس ثابتًا نظريًا. يعتمد على ثلاثة أشياء: مقياس خسارة التدريب (الإنتروبيا المتقاطعة على مفردات من 8K رمز تعمل قرب 4.5)، معدل انحلال الخسارة لكل خطوة (بطيء)، & ثابت UCB C=0.5. غيّر أيًا من تلك، & 1000 قد لا يكون المضاعف الصحيح بعد الآن.

التفكير حول عامل التوسع

افترض أن ANDREA قامت بتوسيع المكافآت الخام بمقدار 100x بدلاً من 1000x. مع مكافأة خام 0.001 وبونص الاستكشاف UCB 0.294 (C=0.5, N=1000, n_k=20): (a) احسب المكافأة الموسعة بـ100x، (b) احسب المكافأة الموسعة بـ1000x، (c) لكل توسيع، حدد أي مصطلح (mean_reward أو بونص الاستكشاف) يسيطر على درجة UCB لذراع mean_reward الخاص بها يساوي المكافأة الموسعة. (d) في جملة واحدة، شرح لماذا 1000x يوازن بين الاثنين.

القادم بعد ذلك

ما لديك

تحويل المكافآت يحول تقارير الخسارة CUDA إلى إشارة جاهزة لـUCB في ثلاث عمليات: EMA لكل مصدر يتتبع تاريخ الخسارة (alpha=0.1، بطيء)، reward = max(0, EMA - loss) يقص السلبيات، & توسيع 1000x يطابق مقدار المكافأة مع مقدار بونص الاستكشاف UCB.


ما تبقى

تعمل أرضيات الطوابق وعقوبات العصر (النشاط 79) فوق إخراج UCB. تضمن أرضيات المصادر أدنى عينة لمصادر الأولوية بغض النظر عن ترتيب UCB. تخفض عقوبات العصر وزن المصادر التي تم سحبها أكثر مرات مما لديها وثائق، مما يمنع حفظ الصغيرة مجموعات البيانات بينما تبقى مجموعات البيانات الكبيرة طازجة.


المرجع

ANDREA whitepaper، القسم 3.3.