Yolo فيجن شنتشن
شنتشن
انضم الآن
مسرد المصطلحات

التحقق المتبادل

تعرف على كيفية تحسين التقييم المتبادل لتعميم النموذج ومنع الإفراط في التكيف. اكتشف كيفية تنفيذ تقييم K-Fold باستخدام Ultralytics للحصول على تعلم آلي قوي.

التحقق المتبادل هو إجراء إعادة عينات إحصائي قوي يستخدم لتقييم أداء نماذج التعلم الآلي (ML) على عينة بيانات محدودة . على عكس طريقة الحجب القياسية، التي تقسم البيانات إلى مجموعة تدريب واختبار واحدة، يتضمن التحقق المتبادل تقسيم مجموعة البيانات إلى عدة مجموعات فرعية لضمان استخدام كل نقطة بيانات للتدريب والتحقق. هذه التقنية مهمة للغاية لتقييم كيفية تعميم نتائج التحليل الإحصائي على مجموعة بيانات مستقلة، مما يساعد على detect التكيف المفرط حيث قد يحفظ النموذج أمثلة التدريب بدلاً من تعلم الأنماط القابلة للتعميم.

آلية التحقق المتبادل K-Fold

أكثر أشكال هذه التقنية استخدامًا هو التحقق المتقاطع K-Fold. في هذه العملية، يتم تقسيم مجموعة البيانات بالكامل عشوائيًا إلى k مجموعات متساوية الحجم، أو "طيات". ثم يتم تكرار عملية التدريب k مرات. في كل تكرار، تعمل طية واحدة ك بيانات التحقق لاختبار النموذج، بينما تعمل الطيات k-1 المتبقية ك بيانات تدريب.

يتم حساب مقياس الأداء النهائي عادةً عن طريق حساب متوسطالدرجات — مثل الدقة، الدقة، أو متوسط الدقة (mAP)— التي تم الحصول عليها من كل حلقة. يقلل هذا النهج بشكل كبير من التباين المرتبط بتجربة واحدة من تقسيم التدريب والاختبار، مما يوفر تقديرًا أكثر موثوقية لخطأ التعميم. ويضمن أن التقييم ليس متحيزًا بسبب الاختيار التعسفي لبيانات الاختبار.

التنفيذ باستخدام Ultralytics

التحقق المتبادل مفيد بشكل خاص عند العمل مع مجموعات بيانات أصغر أو عند إجراء ضبط دقيق للمعلمات الفائقة. في حين أن أطر العمل الحديثة للتعلم العميق مثل 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.

تطبيقات واقعية

التحقق المتبادل أمر لا غنى عنه في الصناعات التي تكون فيها البيانات نادرة أو مكلفة في جمعها أو التي تتطلب موثوقية حاسمة من حيث السلامة .

  • التشخيص الطبي: في تحليل الصور الطبية، غالبًا ما تكون مجموعات البيانات الخاصة بالحالات النادرة صغيرة. قد يؤدي تقسيم التحقق من الصحة مرة واحدة إلى استبعاد الحالات الصعبة أو الأمراض النادرة عن طريق الخطأ. باستخدام التحقق المتبادل، يضمن الباحثون الذين يطورون الذكاء الاصطناعي في مجال الرعاية الصحية أن نماذجهم التشخيصية يتم اختبارها مقابل كل فحص متاح للمريض، مما يؤكد أن النظام يعمل عبر مختلف الفئات السكانية وأنواع المعدات.
  • الزراعة الدقيقة: تختلف الظروف البيئية بشكل كبير في الأماكن المفتوحة. قد يعمل النموذج المدرب على اكتشاف أمراض المحاصيل بشكل جيد في الأيام المشمسة، ولكنه قد يفشل في الأيام الملبدة بالغيوم إذا كانت تلك الصور موجودة فقط في مجموعة التدريب. يضمن التحقق المتبادل أن النموذج قوي في مواجهة مثل هذه التغيرات، مما يساعد المزارعين على الاعتماد على أدوات التعلم الآلي (AutoML) للمراقبة المستمرة بغض النظر عن الظروف الجوية.

المزايا الاستراتيجية في تطوير النماذج

يوفر دمج التحقق المتبادل في دورة حياة تطوير الذكاء الاصطناعي رؤى مهمة حول المفاضلة بين التحيز والتباين.

  1. تقييم الاستقرار: إذا اختلفت مقاييس الأداء بشكل كبير بين الطيات، فهذا يشير إلى أن النموذج حساس للغاية لنقاط البيانات المحددة المستخدمة للتدريب، مما يشير إلى تباين كبير.
  2. كفاءة البيانات: تعمل على تعظيم فائدة البيانات المحدودة، حيث يتم استخدام كل ملاحظة في النهاية للتدريب والتحقق.
  3. تحسين المعلمات الفائقة: يوفر معيارًا موثوقًا لاختيار أفضل معدل التعلم، حجم الدفعة، أو استراتيجيات زيادة البيانات دون "الاطلاع" على مجموعة الاختبار النهائية.

التفريق بين المفاهيم ذات الصلة

من المهم التمييز بين التحقق المتبادل ومصطلحات التقييم الأخرى:

  • مقابل التحقق من الصحة بالاحتفاظ: يتضمن الاحتفاظ تقسيمًا واحدًا (على سبيل المثال، 80/20). على الرغم من أنه أسرع ومناسب لمجموعات البيانات الضخمة مثل ImageNet، إلا أنها أقل قوة من الناحية الإحصائية من التحقق المتبادل لمجموعات البيانات الأصغر.
  • مقابل التمهيد: يتضمن التمهيد أخذ عينات عشوائية مع الاستبدال، في حين أن التحقق المتبادل K-Fold يقسم البيانات دون استبدال (كل عينة موجودة في طية واحدة بالضبط).

قد تكون إدارة النتائج والمقاييس والنماذج من طيات متعددة أمرًا معقدًا. تعمل Ultralytics على تبسيط ذلك من خلال توفير تتبع مركزي للتجارب ، مما يتيح للفرق مقارنة الأداء عبر الطيات المختلفة وتصور رؤى تقييم النموذج بسهولة.

انضم إلى مجتمع Ultralytics

انضم إلى مستقبل الذكاء الاصطناعي. تواصل وتعاون وانمو مع المبتكرين العالميين

انضم الآن