Cross-Validation
تعلم كيف يحسن التحقق المتقاطع (cross-validation) تعميم النموذج ويمنع الإفراط في التجهيز (overfitting). اكتشف كيفية تنفيذ تقييم K-Fold مع Ultralytics YOLO26 لتعلم آلة قوي.
التحقق المتقاطع هو إجراء إحصائي قوي لإعادة أخذ العينات يُستخدم لتقييم أداء نماذج تعلم الآلة (ML) على عينة بيانات محدودة. وعلى عكس طريقة الاستبعاد القياسية، التي تقسم البيانات إلى مجموعة تدريب واختبار واحدة، يتضمن التحقق المتقاطع تقسيم مجموعة البيانات إلى مجموعات فرعية متعددة لضمان استخدام كل نقطة بيانات في كل من التدريب والتحقق. تُعد هذه التقنية بالغة الأهمية لتقييم كيفية تعميم نتائج التحليل الإحصائي على مجموعة بيانات مستقلة، مما يساعد في اكتشاف الإفراط في التخصيص (overfitting) حيث قد يحفظ النموذج أمثلة التدريب بدلاً من تعلم أنماط قابلة للتعميم.
Link to this sectionآلية التحقق المتقاطع K-Fold#
النوع الأكثر استخداماً من هذه التقنية هو التحقق المتقاطع K-Fold. في هذه العملية، يتم تقسيم مجموعة البيانات بالكامل عشوائياً إلى k من المجموعات متساوية الحجم، أو "طيات" (folds). ثم يتم تكرار عملية التدريب k من المرات. في كل تكرار، تعمل طية واحدة كـ بيانات التحقق لاختبار النموذج، بينما تعمل الطيات الـ k-1 المتبقية كـ بيانات تدريب.
يتم حساب مقياس الأداء النهائي عادةً عن طريق أخذ متوسط الدرجات—مثل الدقة (accuracy)، أو الإحكام (precision)، أو متوسط دقة المتوسط (mAP)—التي تم الحصول عليها من كل حلقة. يقلل هذا النهج بشكل كبير من التباين المرتبط بتجربة واحدة لتقسيم التدريب والاختبار، مما يوفر تقديراً أكثر موثوقية لـ خطأ التعميم (generalization error). إنه يضمن أن التقييم غير متحيز بسبب الاختيار التعسفي لـ بيانات الاختبار.
Link to this sectionالتنفيذ باستخدام Ultralytics#
يُعد التحقق المتقاطع مفيداً بشكل خاص عند العمل مع مجموعات بيانات أصغر أو عند إجراء ضبط المعلمات الفائقة (hyperparameter tuning) بشكل صارم. وبينما تسهل أطر التعلم العميق الحديثة مثل PyTorch حلقة التدريب، فإن إدارة الطيات تتطلب إعداداً دقيقاً للبيانات.
The following example demonstrates how to iterate through pre-generated YAML configuration files for a 5-fold cross-validation experiment using the YOLO26 model. This assumes you have already split your dataset into five separate configuration files.
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.
Link to this sectionتطبيقات العالم الحقيقي#
يُعد التحقق المتقاطع لا غنى عنه في الصناعات التي تكون فيها البيانات نادرة، أو مكلفة في جمعها، أو حيث تتطلب الموثوقية الحرجة للسلامة.
- التشخيص الطبي: في تحليل الصور الطبية، غالباً ما تكون مجموعات البيانات للحالات النادرة صغيرة. قد يؤدي تقسيم التحقق الفردي إلى استبعاد الحالات الصعبة أو الأمراض النادرة عن غير قصد. من خلال استخدام التحقق المتقاطع، يضمن الباحثون الذين يطورون الذكاء الاصطناعي في الرعاية الصحية اختبار نماذجهم التشخيصية مقابل كل مسح متاح للمرضى، مما يؤكد أن النظام يعمل عبر مختلف التركيبات السكانية وأنواع المعدات.
- الزراعة الدقيقة: تختلف الظروف البيئية بشكل كبير في البيئات الخارجية. قد يعمل النموذج المدرب على الكشف عن أمراض المحاصيل بشكل جيد في الأيام المشمسة ولكنه يفشل تحت السماء الملبدة بالغيوم إذا كانت تلك الصور موجودة فقط في مجموعة التدريب. يضمن التحقق المتقاطع أن النموذج قوي تجاه هذه الاختلافات، مما يساعد المزارعين على الاعتماد على أدوات تعلم الآلة الآلي (AutoML) للمراقبة المستمرة بغض النظر عن الظروف الجوية.
Link to this sectionالمزايا الاستراتيجية في تطوير النموذج#
يوفر دمج التحقق المتقاطع في دورة حياة تطوير الذكاء الاصطناعي رؤى حاسمة حول مقايضة التحيز والتباين (bias-variance tradeoff).
-
تقييم الاستقرار: إذا كانت مقاييس الأداء تختلف بشكل كبير بين الطيات، فهذا يشير إلى أن النموذج حساس للغاية لنقاط بيانات محددة تُستخدم للتدريب، مما يشير إلى تباين عالٍ.
-
كفاءة البيانات: إنه يزيد من فائدة البيانات المحدودة، حيث يتم استخدام كل ملاحظة في النهاية لكل من التدريب والتحقق.
-
تحسين المعلمات الفائقة: يوفر معياراً جديراً بالثقة لاختيار أفضل معدل تعلم (learning rate)، أو حجم الدفعة (batch size)، أو استراتيجيات تعزيز البيانات (data augmentation) دون "الاطلاع" على مجموعة الاختبار النهائية.
Link to this sectionالتمييز بين المفاهيم ذات الصلة#
من المهم التمييز بين التحقق المتقاطع ومصطلحات التقييم الأخرى:
- vs. Hold-out Validation: Hold-out involves a single split (e.g., 80/20). While faster and suitable for massive datasets like ImageNet, it is less statistically robust than cross-validation for smaller datasets.
- مقابل التمهيد (Bootstrapping): يتضمن التمهيد (Bootstrapping) أخذ عينات عشوائية مع الاستبدال، بينما يقوم التحقق المتقاطع K-Fold بتقسيم البيانات بدون استبدال (كل عينة موجودة في طية واحدة فقط).
قد تكون إدارة القطع الأثرية والمقاييس والنماذج من طيات متعددة معقدة. تبسط منصة Ultralytics ذلك من خلال تقديم تتبع مركزي للتجارب، مما يسمح للفرق بمقارنة الأداء عبر طيات مختلفة وتصور رؤى تقييم النموذج دون عناء.






