دوال الخسارة والمهام

2 دقيقة

الهدف: مواءمة الهدف والطبقة الأخيرة ودالة الخسارة.

الخسارة تُقدّم إشارة التدريب. أما المقياس (Metric) فيصف الجودة بحسب الحاجة. ينبغي أن تكون الخسارة قابلة للاشتقاق في أغلب النقاط؛ أما مقياس الأعمال فقد لا يكون كذلك.

المهمةالمخرجالهدفخسارة PyTorch
انحدار(N,1) أو (N,)عدد عائمMSELoss, L1Loss, HuberLoss
ثنائيةLogit واحد0/1 عائمBCEWithLogitsLoss
K أصنافK من Logitsمؤشر صحيحCrossEntropyLoss
متعدّدة العلاماتK من LogitsK قيم 0/1BCEWithLogitsLoss

الإنتروبيا التقاطعية

بالنسبة للصنف الحقيقي y، تساوي الخسارة متعدّدة الأصناف -log p_y. يُعاقَب التنبؤ الواثق والخاطئ بشدّة. تجمع CrossEntropyLoss بين log_softmax والاحتمال العكسي السالب اللوغاريتمي؛ ولا يجب تزويدها باحتمالات مُطَبَّعة سلفاً.

التخفيض وعدم التوازن

خسارة الدُّفعة عادةً متوسّط. مع الأصناف النادرة، يمكن ترجيح الأصناف، لكن الترجيح لا يعوِّض عن بروتوكول تحقّق مناسب ولا عن مقاييس مثل الاستدعاء (Recall) والدقة (Precision) وPR-AUC.

python
import torch
from torch import nn

weights = torch.tensor([1.0, 4.0])
criterion = nn.CrossEntropyLoss(weight=weights)

تنعيم العلامات (Label smoothing)

يُبدّل تنعيم العلامات الهدف اليقيني المطلق بتوزيع مُخفَّف قليلاً. قد يُقلّل الإفراط في الثقة، لكنه يُعدّل المعايرة ويجب التحقّق منه، لا تطبيقه كطقس ثابت.

تحقّق سريع

لماذا لا تصلح الدقّة (Accuracy) خسارةً مباشرة؟ هل ينبغي تطبيق softmax قبل CrossEntropyLoss؟

الأجوبة

الدقّة متقطعة ولا تُنتج تدرجاً تقريباً. لا، تنتظر الخسارة Logits.

نشاط الإتقان — الخسارة والهدف والمقياس

من أجل سعر عقاري، والاحتيال الثنائي، وتصنيف نوع من عشرة أنواع، ووسوم مستقلّة، حدِّد شكل Logits وترميز الهدف وخسارة التدريب والمقياس التجاري. أضف حالة تكون فيها MAE مفضّلة على MSE. النجاح: للخسارة وللمقياس دوران متمايزان صراحة.

من المهمة إلى دالة الخسارة

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