Focal Loss
استكشف كيف يحل Focal Loss مشكلة عدم توازن الفئات في التعلم العميق. تعلم تنفيذه مع Ultralytics YOLO26 للتركيز على الأمثلة الصعبة وتحسين دقة النموذج.
فوسال لوس (Focal Loss) هي دالة هدف متخصصة تُستخدم بشكل أساسي في التعلم العميق لمعالجة تحدي عدم التوازن الشديد في الفئات. في العديد من مهام الرؤية الحاسوبية، مثل كشف الكائنات، يفوق عدد أمثلة الخلفية (العينات السالبة) بشكل كبير كائنات الاهتمام (العينات الموجبة). تتعامل الطرق القياسية، مثل Cross-Entropy Loss واسعة الاستخدام، مع جميع الأخطاء بالتساوي، مما يتسبب غالباً في إرهاق النموذج بسبب الحجم الهائل لبيانات الخلفية سهلة التصنيف. تعمل Focal Loss على تعديل حساب الخسارة القياسي لتقليل وزن هذه الأمثلة السهلة، مما يجبر optimization algorithm على تركيز قدرته التعلمية على الأمثلة "الصعبة"؛ وهي الكائنات النادرة والصعبة التصنيف والتي تعتبر حاسمة لأداء النموذج.
آلية التركيز#
تكمن الابتكار الأساسي لـ Focal Loss في قدرتها على تغيير مقياس العقوبة المخصصة لكل عينة ديناميكياً بناءً على ثقة النموذج. في سيناريو supervised learning نموذجي، قد يقوم الكاشف بتقييم آلاف مواقع المرشحات في الصورة. نظراً لأن معظم هذه المواقع لا تحتوي على أي كائنات، فإن loss function قياسية تجمع العديد من إشارات الخطأ الصغيرة من هذه العينات السلبية السهلة، والتي يمكن أن تطغى على الإشارة القيمة من الحالات الموجبة القليلة.
تقدم Focal Loss عامل تعديل يقلل من مساهمة الخسارة كلما زادت الثقة في الفئة الصحيحة. هذا يعني أنه إذا كان النموذج متأكداً بالفعل بنسبة 99% من أن رقعة الخلفية هي خلفية بالفعل، فإن الخسارة لتلك الرقعة يتم تقليلها لتصل إلى ما يقرب من الصفر. ونتيجة لذلك، يتم تحديث model weights أساساً بناءً على العينات المصنفة بشكل خاطئ أو تلك التي يكون النموذج غير متأكد منها. هذا النهج المستهدف ضروري لتدريب one-stage object detectors عالية الأداء مثل YOLO26، مما يسمح لها بتحقيق دقة عالية دون الحاجة إلى مراحل أخذ عينات معقدة.
تطبيقات العالم الحقيقي#
التعامل مع training data غير المتوازنة أمر بالغ الأهمية لنشر أنظمة ذكاء اصطناعي قوية في البيئات التي تكون فيها السلامة والدقة في غاية الأهمية.
- AI in Healthcare: في مجالات مثل medical image analysis، غالباً ما يكون تحديد الأمراض مشابهاً للعثور على إبرة في كومة قش. على سبيل المثال، في مسح بالرنين المغناطيسي يبحث عن آفات صغيرة، قد تشكل الأنسجة السليمة أكثر من 99% من البكسلات. قد يزيد النموذج القياسي من الدقة البسيطة عن طريق التنبؤ بـ "سليم" في كل مكان، مما يفوت التشخيص الحاسم. تُمكّن Focal Loss النظام من قمع الإشارة من الأنسجة السليمة الوفرة وإعطاء الأولوية لتعلم الميزات الدقيقة للشذوذ، وبالتالي تحسين recall للكشف الذي ينقذ الأرواح.
- Autonomous Vehicles: يجب أن تكتشف أنظمة الإدراك للسيارات ذاتية القيادة مستخدمي الطريق المعرضين للخطر مثل المشاة أو راكبي الدراجات في مواجهة خلفيات معقدة من المباني والطرق والسماء. في حين يتم تعلم الخلفية بسهولة، فإن العقبات الصغيرة أو البعيدة تشكل تحدياً كبيراً. من خلال استخدام Focal Loss، يمكن لتطبيقات AI in automotive ضمان ألا تتجاهل حزمة الإدراك هذه الكائنات الصعبة الاكتشاف، مع الحفاظ على معايير السلامة حتى عندما تحتل المخاطر جزءاً ضئيلاً فقط من المجال البصري.
التنفيذ باستخدام Ultralytics#
تتضمن مكتبة ultralytics تنفيذات محسنة لدوال الخسارة المتقدمة لدعم النماذج المتطورة. في حين أن Ultralytics Platform تقوم تلقائياً بتكوين هذه المعلمات الفائقة للتدريب الأمثل، يمكن للمطورين أيضاً الوصول إلى هذه المكونات مباشرة للبحث المخصص.
يوضح المثال التالي كيفية تهيئة Focal Loss باستخدام حزمة أدوات ultralytics وحساب الخطأ لمجموعة من التنبؤات.
import torch
from ultralytics.utils.loss import FocalLoss
# Initialize Focal Loss.
# The 'gamma' parameter controls the focusing strength (higher = more focus on hard examples).
criterion = FocalLoss(gamma=1.5)
# Example: Model predictions (logits) and binary Ground Truth labels
# requires_grad=True simulates model outputs that need backpropagation
predictions = torch.tensor([[0.8], [-1.5], [0.1]], requires_grad=True)
targets = torch.tensor([[1.0], [0.0], [1.0]])
# Calculate the loss value
loss = criterion(predictions, targets)
print(f"Computed Focal Loss: {loss.item():.4f}")التمييز عن المفاهيم ذات الصلة#
يساعد فهم المكان الذي تتناسب فيه Focal Loss مع المشهد الأوسع لقياس الخطأ في اختيار الاستراتيجية الصحيحة لمهام رؤية حاسوبية محددة.
- Focal Loss vs. Cross-Entropy Loss: تعتبر Cross-Entropy المقياس الأساسي للتصنيف الذي يعاقب التنبؤات بناءً على الخطأ اللوغاريتمي. Focal Loss هي بحتة امتداد لـ Cross-Entropy؛ إذا تم تعيين معامل التركيز على الصفر، فإنها تعود رياضياً إلى Cross-Entropy القياسية. التمييز الرئيسي هو قدرة Focal Loss على تقليل وزن العينات السلبية السهلة تلقائياً، مما يجعلها متفوقة لمجموعات البيانات غير المتوازنة مثل COCO.
- Focal Loss vs. IoU Loss: بينما تم تصميم Focal Loss لـ التصنيف (تحديد ماهية الكائن)، تُستخدم IoU Loss لـ التوطين (تحديد موقع الكائن). تستخدم الكواشف الحديثة دالة خسارة مركبة تجمع بين Focal Loss لاحتمالات الفئات والمقاييس المستندة إلى IoU لـ bounding box الانحدار.
- Focal Loss vs. Dice Loss: Dice Loss هي تقنية أخرى تُستخدم للتعامل مع عدم التوازن، بشكل أساسي في مهام image segmentation. بينما تعمل Focal Loss على بكسلات فردية أو عينات بناءً على الثقة، فإن Dice Loss تعمل على تحسين التداخل بين المناطق المتنبأ بها والحقيقية عالمياً. من الشائع رؤية كلاهما مستخدمين معاً في segmentation workflows معقدة.






