Test Data
استكشف الدور الحيوي لبيانات الاختبار في تعلم الآلة. تعلم كيفية تقييم أداء Ultralytics YOLO26 باستخدام مجموعات بيانات غير متحيزة لضمان الدقة في العالم الحقيقي.
بيانات الاختبار (Test Data) هي مجموعة فرعية محددة من مجموعة بيانات أكبر، مخصصة حصرياً لتقييم الأداء النهائي لنموذج تعلم الآلة (ML). على عكس البيانات المستخدمة خلال مراحل التعلم الأولية، تظل بيانات الاختبار "غير مرئية" تماماً للخوارزمية حتى نهاية دورة التطوير. هذا العزل ضروري لأنه يوفر تقييماً غير متحيز لمدى قدرة نموذج الرؤية الحاسوبية (CV) أو أي نظام ذكاء اصطناعي آخر على التعميم على مدخلات جديدة في العالم الحقيقي. من خلال محاكاة بيئة الإنتاج، تساعد بيانات الاختبار المطورين في التحقق من أن نموذجهم قد تعلم الأنماط الأساسية بالفعل بدلاً من مجرد حفظ أمثلة التدريب.
Link to this sectionدور بيانات الاختبار في دورة حياة تعلم الآلة#
في سير عمل تعلم الآلة القياسي، يتم تقسيم البيانات عادةً إلى ثلاث فئات متميزة، تخدم كل منها غرضاً فريداً. فهم الفرق بين هذه التقسيمات أمر حيوي لبناء أنظمة ذكاء اصطناعي (AI) قوية.
- بيانات التدريب: هذا هو الجزء الأكبر من مجموعة البيانات، ويُستخدم لتعليم النموذج. تقوم الخوارزمية بتعديل معاييرها الداخلية، أو الأوزان، بشكل متكرر لتقليل الأخطاء في هذه المجموعة المحددة من الأمثلة.
- بيانات التحقق: تُستخدم هذه المجموعة الفرعية بشكل متكرر أثناء عملية التدريب لضبط المعايير الفائقة وتوجيه قرارات البنية الهندسية. وهي تعمل كفحص مؤقت لمنع الفرط في التخصيص، حيث يؤدي النموذج أداءً جيداً على بيانات التدريب ولكنه يفشل في التعامل مع بيانات جديدة.
- بيانات الاختبار: هذا هو "الاختبار" النهائي للنموذج. لا تُستخدم أبداً لتحديث الأوزان أو ضبط الإعدادات. يُنتج التقييم على بيانات الاختبار مقاييس أداء نهائية، مثل الدقة، والاسترجاع، ومتوسط دقة التنبؤ (mAP)، والتي يستخدمها أصحاب المصلحة لاتخاذ قرار بشأن ما إذا كان النموذج جاهزاً لـ نشر النموذج.
غالباً ما يتم تسهيل الإدارة الصحيحة لهذه التقسيمات بواسطة أدوات مثل منصة Ultralytics، التي يمكنها تنظيم مجموعات البيانات المرفوعة تلقائياً في هذه الفئات الأساسية لضمان تقييم صارم للنموذج.
Link to this sectionأهمية التقييم غير المتحيز#
تكمن القيمة الأساسية لبيانات الاختبار في قدرتها على اكتشاف تحيز مجموعة البيانات ومشكلات التباين. إذا حقق النموذج دقة 99% في بيانات التدريب ولكن 60% فقط في بيانات الاختبار، فهذا يشير إلى تباين عالٍ (فرط في التخصيص). على العكس من ذلك، يشير ضعف الأداء في كليهما إلى ضعف في التخصيص (تحت التخصيص).
Using a designated test set adheres to scientific principles of reproducibility and objectivity. Without a pristine test set, developers risk "teaching to the test," effectively leaking information from the evaluation phase back into the training phase—a phenomenon known as data leakage. This results in overly optimistic performance estimates that crumble when the model faces real-world data.
Link to this sectionتطبيقات العالم الحقيقي#
تعد بيانات الاختبار ضرورية عبر جميع الصناعات التي تستخدم الذكاء الاصطناعي لضمان السلامة والموثوقية قبل تشغيل الأنظمة فعلياً.
- القيادة الذاتية: في تطوير المركبات ذاتية القيادة، قد تتكون بيانات التدريب من ملايين الأميال التي قُطعت على الطرق السريعة في طقس صافٍ. ومع ذلك، يجب أن تتضمن بيانات الاختبار سيناريوهات نادرة وصعبة—مثل الثلوج الكثيفة، أو العوائق المفاجئة، أو إشارات المرور المربكة—التي لم "ترها" السيارة صراحةً أثناء التدريب. هذا يضمن أن نظام اكتشاف الكائنات يمكنه التفاعل بأمان في بيئات غير متوقعة.
- التشخيص الطبي: عند بناء نموذج لـ اكتشاف الأورام في التصوير الطبي، قد تأتي مجموعة التدريب من قاعدة بيانات مستشفى معين. وللتحقق من أن النموذج قوي وآمن للاستخدام العام، يجب أن تتكون بيانات الاختبار من فحوصات من مستشفيات مختلفة، التُقطت بأجهزة مختلفة، وتمثل ديموغرافية متنوعة للمرضى. هذا التحقق الخارجي يؤكد أن الذكاء الاصطناعي ليس متحيزاً لنوع معين من المعدات أو فئة سكانية محددة.
Link to this sectionتقييم الأداء باستخدام الكود#
باستخدام حزمة ultralytics، يمكنك بسهولة تقييم أداء النموذج على مجموعة بيانات مستبعدة. بينما يُستخدم وضع val غالباً للتحقق أثناء التدريب، يمكن أيضاً تهيئته للتشغيل على تقسيم اختبار محدد مُعرّف في ملف تهيئة YAML الخاص بمجموعة البيانات.
Here is how to evaluate a pre-trained YOLO26 model to obtain metrics like mAP50-95:
from ultralytics import YOLO
# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")
# Evaluate the model's performance on the validation set
# (Note: In a strict testing workflow, you would point 'data'
# to a YAML that defines a specific 'test' split and use split='test')
metrics = model.val(data="coco8.yaml")
# Print a specific metric, e.g., mAP at 50-95% IoU
print(f"Mean Average Precision (mAP50-95): {metrics.box.map}")This process generates comprehensive metrics, allowing developers to objectively compare different architectures, such as YOLO26 vs YOLO11, and ensure the chosen solution meets the project's defined goals. Rigorous testing is the final gatekeeping step in ensuring high-quality AI safety standards are met.






