تعرف على كيفية تحسين التقييم المتبادل لتعميم النموذج ومنع الإفراط في التكيف. اكتشف كيفية تنفيذ تقييم K-Fold باستخدام Ultralytics للحصول على تعلم آلي قوي.
التحقق المتبادل هو إجراء إعادة عينات إحصائي قوي يستخدم لتقييم أداء نماذج التعلم الآلي (ML) على عينة بيانات محدودة . على عكس طريقة الحجب القياسية، التي تقسم البيانات إلى مجموعة تدريب واختبار واحدة، يتضمن التحقق المتبادل تقسيم مجموعة البيانات إلى عدة مجموعات فرعية لضمان استخدام كل نقطة بيانات للتدريب والتحقق. هذه التقنية مهمة للغاية لتقييم كيفية تعميم نتائج التحليل الإحصائي على مجموعة بيانات مستقلة، مما يساعد على detect التكيف المفرط حيث قد يحفظ النموذج أمثلة التدريب بدلاً من تعلم الأنماط القابلة للتعميم.
أكثر أشكال هذه التقنية استخدامًا هو التحقق المتقاطع K-Fold. في هذه العملية، يتم تقسيم مجموعة البيانات بالكامل عشوائيًا إلى k مجموعات متساوية الحجم، أو "طيات". ثم يتم تكرار عملية التدريب k مرات. في كل تكرار، تعمل طية واحدة ك بيانات التحقق لاختبار النموذج، بينما تعمل الطيات k-1 المتبقية ك بيانات تدريب.
يتم حساب مقياس الأداء النهائي عادةً عن طريق حساب متوسطالدرجات — مثل الدقة، الدقة، أو متوسط الدقة (mAP)— التي تم الحصول عليها من كل حلقة. يقلل هذا النهج بشكل كبير من التباين المرتبط بتجربة واحدة من تقسيم التدريب والاختبار، مما يوفر تقديرًا أكثر موثوقية لخطأ التعميم. ويضمن أن التقييم ليس متحيزًا بسبب الاختيار التعسفي لبيانات الاختبار.
التحقق المتبادل مفيد بشكل خاص عند العمل مع مجموعات بيانات أصغر أو عند إجراء ضبط دقيق للمعلمات الفائقة. في حين أن أطر العمل الحديثة للتعلم العميق مثل PyTorch تسهل حلقة التدريب ، فإن إدارة الطيات تتطلب إعدادًا دقيقًا للبيانات.
يوضح المثال التالي كيفية التكرار عبر ملفات تكوين YAML المعدة مسبقًا لتجربة التحقق المتقاطع الخماسي باستخدام نموذج 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.
التحقق المتبادل أمر لا غنى عنه في الصناعات التي تكون فيها البيانات نادرة أو مكلفة في جمعها أو التي تتطلب موثوقية حاسمة من حيث السلامة .
يوفر دمج التحقق المتبادل في دورة حياة تطوير الذكاء الاصطناعي رؤى مهمة حول المفاضلة بين التحيز والتباين.
من المهم التمييز بين التحقق المتبادل ومصطلحات التقييم الأخرى:
قد تكون إدارة النتائج والمقاييس والنماذج من طيات متعددة أمرًا معقدًا. تعمل Ultralytics على تبسيط ذلك من خلال توفير تتبع مركزي للتجارب ، مما يتيح للفرق مقارنة الأداء عبر الطيات المختلفة وتصور رؤى تقييم النموذج بسهولة.