دوال الخسارة
Loss Functions
كيف نقيس خطأ الشبكة: MSE وCross-Entropy وغيرهما، وعلاقتها بنوع المسألة.
خسائر الانحدار
$$\text{MSE} = \frac{1}{n}\sum (y_i – \hat{y}_i)^2 \qquad \text{MAE} = \frac{1}{n}\sum |y_i – \hat{y}_i|$$
خسارة Huber تتصرف كـ MSE للأخطاء الصغيرة وكـ MAE للكبيرة، فتجمع النعومة ومقاومة القيم الشاذة.
خسائر التصنيف
الثنائي:
$$L = -\big[y\log p + (1-y)\log(1-p)\big]$$
متعدد الفئات (مع \(y\) متجه أحادي ساخن):
$$L = -\sum_{k} y_k \log p_k = -\log p_{\text{correct}}$$
في PyTorch
import torch, torch.nn as nn
logits = torch.tensor([[2.0, 0.5, -1.0]]) # مثال واحد، 3 فئات
target = torch.tensor([0]) # الفئة الصحيحة
print(nn.CrossEntropyLoss()(logits, target))
bin_logit = torch.tensor([0.8]); bin_y = torch.tensor([1.0])
print(nn.BCEWithLogitsLoss()(bin_logit, bin_y))
print(nn.MSELoss()(torch.tensor([2.5]), torch.tensor([3.0])))البيانات غير المتوازنة
- أوزان للفئات:
nn.CrossEntropyLoss(weight=...). - Focal Loss: تقلل وزن الأمثلة السهلة.
- Dice Loss: شائعة في تقسيم الصور الطبية حيث تكون منطقة الآفة صغيرة مقارنة بالخلفية:
$$L_{\text{Dice}} = 1 – \frac{2\sum p_i g_i}{\sum p_i + \sum g_i}$$
الخسارة مقابل مقياس التقييم
الخسارة يجب أن تكون قابلة للاشتقاق لتدريب الشبكة، أما مقياس التقييم (مثل الدقة أو F1) فقد لا يكون كذلك. لذلك قد ندرب بـ Cross-Entropy ونقيّم بـ F1.
مصطلحات الدرس
- الإنتروبيا التقاطعية Cross-Entropy
- خسارة تصنيف تساوي سالب لوغاريتم الاحتمال الذي أعطاه النموذج للفئة الصحيحة.
- اللوجيتات Logits
- مخرجات الطبقة الأخيرة قبل تطبيق sigmoid أو softmax.
- دالة الخسارة Loss Function
- دالة تقيس مقدار خطأ تنبؤات النموذج مقارنة بالقيم الصحيحة، ويهدف التدريب إلى تقليلها.
الملخص
دالة الخسارة تحول الفرق بين تنبؤ الشبكة والقيمة الصحيحة إلى عدد يُراد تقليله. للانحدار تُستخدم MSE أو MAE أو Huber، وللتصنيف الثنائي Binary Cross-Entropy، ولتعدد الفئات Categorical Cross-Entropy، ولتقسيم الصور الطبية غير المتوازنة كثيراً ما تُستخدم Dice. في PyTorch تأخذ CrossEntropyLoss المخرجات الخام (logits) وتطبق softmax داخلياً لاستقرار عددي أفضل.
أسئلة مراجعة
-
لماذا لا نطبق softmax قبل CrossEntropyLoss في PyTorch؟
لأنها تطبق log-softmax داخلياً على اللوجيتات، وتطبيقه مرتين يعطي نتائج خاطئة.
-
متى تفضل خسارة Huber على MSE؟
عند وجود قيم شاذة في المخرجات، لأنها أقل حساسية للأخطاء الكبيرة.
المصادر والمراجع
إكمال الدرس
أكملت كل دروس المسار! يمكنك الآن طلب شهادة إكمال المسار.
اطلب الشهادة