خطوات الاستخدام
أدخل عدد الفئات (numClasses): يمثل عدد الفئات الممكنة في مشكلة التصنيف. هذا الرقم يحدد بُعد توزيع الاحتمالات المستهدف. كلما زاد عدد الفئات، أصبح تأثير التنعيم أكثر وضوحًا لأن معامل التنعيم يوزع بالتساوي على جميع الفئات. تأكد من أن الرقم صحيح لأن أي خطأ سيؤدي إلى حساب خاطئ للخسارة.
أدخل معامل التنعيم (smoothing): وهو معامل ε (عادة بين 0 و 1). يحدد مقدار التوزيع الاحتمالي الموحد الذي يُخلط مع التوزيع الواقعي (one-hot). على سبيل المثال، ε=0.1 يعني أن 90% من الوزن يذهب للفئة الصحيحة و 10% موزعة بالتساوي على جميع الفئات. هذا يمنع النموذج من أن يكون واثقًا جدًا في تنبؤاته ويحسن التعميم.
تحت الغطاء، تقوم الحاسبة بحساب التوزيع المستهدف المُنعَّم: target = (1 - ε) * one_hot + ε / K، حيث K هو عدد الفئات. ثم تحسب خسارة الإنتروبيا المتقاطعة (Cross-Entropy Loss) بين هذا التوزيع المُنعَّم وتوزيع الاحتمالات المتوقع من النموذج (softmax). الصيغة: Loss = - Σ target_i * log(p_i) حيث p_i هي الاحتمالات المتوقعة.
تنبيه عقدي: هذه الحاسبة لا تطلب توزيع النموذج المتوقع (لا إدخال للاحتمالات ولا لفئة الهدف)، لذا هي تعرض حالتين فقط قابلتين للحساب من (K, ε): الخسارة عند التنبؤ المنتظم p_i = 1/K وهي ln(K) كما في الخطوة الرابعة، والادنى الممكنة وهي انتروبيا الهدف المُنعَّم. تحت التنبؤ المنتظم يختصر معامل التنعيم جبريًا: Loss = -[(1-ε+ε/K) + (K-1)(ε/K)] ln(1/K) = ln(K) لكل ε، أي أن قيمة ln(K) لا تخبرك شيئًا عن شدة التنعيم. لأية قيمة أخرى (مثل توزيع [0.7, 0.2, 0.1] في المثال الأول أدناه) يجب الحساب يدويًا أو بإدخال الاحتمالات في مكتبة.
لكل فئة i، يتم حساب المساهمة في الخسارة. إذا كان predictive model يعطي توزيع احتمالي، فسيتم حساب اللوغاريتم الطبيعي لاحتمال كل فئة ثم ضربه في الهدف المُنعَّم. الناتج النهائي هو مجموع سالب هذه القيم. يمكن للحاسبة أيضًا عرض قيمة الخسارة لمثال افتراضي إذا لم يتم إدخال توزيع متوقع.
يُستخدم هذا المقياس بشكل شائع في تدريب نماذج التعلم العميق (خاصة التصنيف مع تسوية) لتحسين الأداء على البيانات غير المرئية. تكون الخسارة مع التنعيم أقل من الخسارة العادية عندما يكون النموذج واثقًا جدًا، مما يجعل التنبؤات أكثر سلاسة.
أمثلة محلولة
تطبيقات عملية على خسارة تنعيم التسميات بخطوات الحل كاملة.
الحل
أولاً، نحسب التوزيع المستهدف المُنعَّم. الفئة الصحيحة هي الفئة الأولى (one-hot: [1,0,0]). target = (1-0.2)*[1,0,0] + 0.2/3 = [0.8 + 0.0667, 0, 0.0667, 0.0667]? لنحسب بدقة: (1-0.2)=0.8, 0.2/3≈0.06667. إذن target = [0.8+0.06667, 0.06667, 0.06667] = [0.86667, 0.06667, 0.06667]. التوزيع المتوقع p = [0.7, 0.2, 0.1]. الآن نحسب الإنتروبيا المتقاطعة: Loss = - [0.86667*ln(0.7) + 0.06667*ln(0.2) + 0.06667*ln(0.1)]. ln(0.7)≈ -0.3567, ln(0.2)= -1.60944, ln(0.1)= -2.30259. مساهمة كل فئة: 0.86667*(-0.3567)= -0.3092, 0.06667*(-1.60944)= -0.1073, 0.06667*(-2.30259)= -0.1535. المجموع: -0.3092 -0.1073 -0.1535 = -0.5700. السالب: Loss = 0.5700. مقارنة بالخسارة العادية (بدون تنعيم): target=[1,0,0] يعطي Loss = -ln(0.7)=0.3567. التنعيم زاد الخسارة بشكل طفيف، مما يساعد في منع الثقة الزائدة.
الحل
التوزيع المستهدف المُنعَّم للفئة الصحيحة: target_5 = (1-0.1)*1 + 0.1/10 = 0.9 + 0.01 = 0.91. لبقية الفئات (9 فئات): target = 0 + 0.01 = 0.01 لكل منها. التوزيع المتوقع p_i = 0.1 لكل فئة. الآن نحسب الإنتروبيا المتقاطعة: Loss = - [0.91*ln(0.1) + 9 * (0.01*ln(0.1))] = - [0.91*(-2.30259) + 9*0.01*(-2.30259)] = - [ -2.09536 - 0.20723 ] = 2.30259. إذن الخسارة = ln(10) = 2.30259 بالضبط. التفسير الصحيح: بما أن اللوغاريتم ثابت عند ln(1/K) لكل فئة، تخرج_sum(target_i) = 1 عاملة مشتركة، فالنتيجة = ln(K) مستقلة عن ε — وليس كما هو شائع أنها تساوي انتروبيا الهدف (هذه الأخيرة 0.500288 وتمثل الحد الادنى القابل للتحقيق). الخسارة المرتفعة هنا تعني أن النموذج لا يعرف شيئًا: تنبؤه منتظم تمامًا.
أمثلة محسوبة
قيم مُدخَلة ونتيجة محسوبة فعليًا بواسطة خسارة تنعيم التسميات.
K=10 مع ε=0.1: خسارة التنبؤ المنتظم ln(10) والحد الادنى 0.500288
- عدد الفئات
- 10
- معامل التنعيم (0-0.5)
- 0.1
K=3 مع ε=0.2: الهدف 0.866667 والحد الادنى 0.485094
- عدد الفئات
- 3
- معامل التنعيم (0-0.5)
- 0.2
بلا تنعيم (ε=0): الحد الادنى 0 وهو الإنتروبيا المتقاطعة المعتادة
- عدد الفئات
- 2
- معامل التنعيم (0-0.5)
- 0