Cross-Validation
تعلّم كيف يحسّن التحقق المتقاطع تعميم النموذج ويمنع فرط الملاءمة. اكتشف كيفية تنفيذ تقييم K-Fold باستخدام Ultralytics YOLO26 لتعلّم آلة قوي.
التحقق المتقاطع هو إجراء قوي لإعادة أخذ العينات الإحصائية يُستخدم لتقييم أداء نماذج التعلم الآلي (ML) على عينة محدودة من البيانات. وعلى خلاف طريقة الحجز القياسية، التي تقسّم البيانات إلى مجموعة واحدة للتدريب وأخرى للاختبار، يتضمن التحقق المتقاطع تقسيم مجموعة البيانات إلى مجموعات فرعية متعددة لضمان استخدام كل نقطة بيانات في التدريب والتحقق على حد سواء. وتُعد هذه التقنية ضرورية لتقييم مدى قابلية تعميم نتائج التحليل الإحصائي على مجموعة بيانات مستقلة، مما يساعد على اكتشاف فرط التكيّف، حيث قد يحفظ النموذج أمثلة التدريب بدلًا من تعلّم أنماط قابلة للتعميم.
آلية التحقق المتقاطع K-Fold#
النسخة الأكثر استخدامًا من هذه التقنية هي التحقق المتقاطع K-Fold. في هذه العملية، تُقسَّم مجموعة البيانات بأكملها عشوائيًا إلى k مجموعات متساوية الحجم، أو «طيات». ثم تتكرر عملية التدريب k مرات. في كل تكرار، تعمل طية واحدة بوصفها بيانات التحقق لاختبار النموذج، بينما تعمل الطيات k-1 المتبقية بوصفها بيانات التدريب.
يُحسب مقياس الأداء النهائي عادةً بأخذ متوسط الدرجات—مثل الدقة أو الإحكام أو متوسط الدقة (mAP)—التي تم الحصول عليها من كل دورة. ويقلل هذا النهج بدرجة كبيرة التباين المرتبط بتجربة واحدة لتقسيم التدريب والاختبار، مما يوفر تقديرًا أكثر موثوقية لـخطأ التعميم. كما يضمن ألا يتأثر التقييم بانحياز ناتج عن اختيار عشوائي لـبيانات الاختبار.
التنفيذ باستخدام Ultralytics#
يكون التحقق المتقاطع مفيدًا بصفة خاصة عند التعامل مع مجموعات بيانات صغيرة أو عند إجراء ضبط صارم للمعلمات الفائقة. وبينما تيسّر أطر التعلم العميق الحديثة مثل PyTorch حلقة التدريب، فإن إدارة الطيات تتطلب إعدادًا دقيقًا للبيانات.
يوضح المثال التالي كيفية التكرار عبر ملفات إعداد YAML المُنشأة مسبقًا لتجربة تحقق متقاطع من 5 طيات باستخدام نموذج YOLO26. ويفترض ذلك أنك قسمت مجموعة البيانات مسبقًا إلى خمسة ملفات إعداد منفصلة.
from ultralytics import YOLO
# List of dataset configuration files representing 5 folds
fold_yamls = [f"dataset_fold_{i}.yaml" for i in range(5)]
for i, yaml_file in enumerate(fold_yamls):
# Load a fresh YOLO26 Nano model for each fold
model = YOLO("yolo26n.pt")
# Train the model, saving results to a unique project directory
results = model.train(data=yaml_file, epochs=20, project="cv_experiment", name=f"fold_{i}")للاطلاع بعمق أكبر على أتمتة إنشاء عمليات التقسيم، راجع الدليل الخاص بـالتحقق المتقاطع K-Fold.
التطبيقات الواقعية#
لا غنى عن التحقق المتقاطع في الصناعات التي تكون فيها البيانات نادرة أو مكلفة الجمع، أو التي تتطلب موثوقية بالغة الأهمية للسلامة.
- التشخيص الطبي: في تحليل الصور الطبية، غالبًا ما تكون مجموعات البيانات الخاصة بالحالات النادرة صغيرة. وقد يستبعد تقسيم واحد للتحقق، من غير قصد، الحالات الصعبة أو الأمراض النادرة. ومن خلال استخدام التحقق المتقاطع، يضمن الباحثون الذين يطورون الذكاء الاصطناعي في الرعاية الصحية اختبار نماذجهم التشخيصية على كل صورة متاحة لفحوصات المرضى، مما يؤكد عمل النظام عبر فئات سكانية متنوعة وأنواع مختلفة من المعدات.
- الزراعة الدقيقة: تختلف الظروف البيئية اختلافًا كبيرًا في البيئات الخارجية. فقد يحقق نموذج مُدرَّب على اكتشاف أمراض المحاصيل أداءً جيدًا في الأيام المشمسة، لكنه يفشل في الأجواء الغائمة إذا كانت تلك الصور موجودة في مجموعة التدريب فقط. ويضمن التحقق المتقاطع متانة النموذج أمام هذه الاختلافات، مما يساعد المزارعين على الاعتماد على أدوات التعلم الآلي المؤتمت (AutoML) للمراقبة المتسقة بصرف النظر عن الظروف الجوية.
المزايا الاستراتيجية في تطوير النماذج#
يوفر دمج التحقق المتقاطع في دورة حياة تطوير الذكاء الاصطناعي رؤى بالغة الأهمية حول المفاضلة بين الانحياز والتباين.
-
تقييم الاستقرار: إذا تفاوتت مقاييس الأداء تفاوتًا كبيرًا بين الطيات، فهذا يشير إلى أن النموذج شديد الحساسية لنقاط البيانات المحددة المستخدمة في التدريب، مما يدل على ارتفاع التباين.
-
كفاءة البيانات: يزيد هذا النهج من الاستفادة من البيانات المحدودة إلى أقصى حد، إذ تُستخدم كل مشاهدة في النهاية للتدريب والتحقق على حد سواء.
-
تحسين المعلمات الفائقة: يوفر هذا النهج معيارًا موثوقًا لاختيار أفضل استراتيجيات معدل التعلم أو حجم الدفعة أو زيادة البيانات من دون «التطلع» إلى مجموعة الاختبار النهائية.
تمييز المفاهيم ذات الصلة#
من المهم التمييز بين التحقق المتقاطع ومصطلحات التقييم الأخرى:
- مقابل التحقق بطريقة الحجز: يتضمن الحجز تقسيمًا واحدًا (مثل 80/20). وعلى الرغم من كونه أسرع ومناسبًا لمجموعات البيانات الضخمة مثل ImageNet، فإنه أقل متانة إحصائيًا من التحقق المتقاطع بالنسبة إلى مجموعات البيانات الأصغر.
- مقابل إعادة أخذ العينات بطريقة Bootstrap: تتضمن إعادة أخذ العينات بطريقة Bootstrap أخذ عينات عشوائية مع الإحلال، بينما يقسّم التحقق المتقاطع K-Fold البيانات من دون إحلال (توجد كل عينة في طية واحدة بالضبط).
قد تكون إدارة العناصر الناتجة والمقاييس والنماذج من طيات متعددة معقدة. وتبسّط منصة Ultralytics هذه العملية من خلال توفير تتبع مركزي للتجارب، مما يتيح للفرق مقارنة الأداء عبر الطيات المختلفة وتصور رؤى تقييم النماذج بسهولة.









