تخطي إلى المحتوى

Ultralytics YOLO دليلضبط البارامتر الفائق

مقدمة

إن ضبط المعلمات الفائقة ليس مجرد إعداد لمرة واحدة، بل هو عملية تكرارية تهدف إلى تحسين مقاييس أداء نموذج التعلم الآلي، مثل الدقة والدقة والاسترجاع. في سياق Ultralytics YOLO ، يمكن أن تتراوح هذه المعلمات الفائقة من معدل التعلم إلى التفاصيل المعمارية، مثل عدد الطبقات أو أنواع دوال التنشيط المستخدمة.



شاهد: كيفية ضبط المعلمات الفائقة للحصول على أداء أفضل للنموذج 🚀

ما هي المعلمات الفائقة؟

المعلمات الفائقة هي إعدادات هيكلية عالية المستوى للخوارزمية. يتم تعيينها قبل مرحلة التدريب وتبقى ثابتة أثناءها. فيما يلي بعض المعلمات الفائقة التي يتم ضبطها بشكل شائع في Ultralytics YOLO :

  • معدل التعلم lr0: يحدد حجم الخطوة عند كل تكرار مع التحرك نحو الحد الأدنى في دالة الخسارة.
  • حجم الدفعة batch: عدد الصور التي تتم معالجتها في وقت واحد في تمرير أمامي.
  • عدد الحقب الزمنية epochs: الحقبة الزمنية هي تمريرة واحدة كاملة للأمام والخلف لجميع أمثلة التدريب.
  • تفاصيل البنية: مثل عدد القنوات، وعدد الطبقات، وأنواع دوال التفعيل، وما إلى ذلك.

الضبط المرئي لضبط المعلمة الفائقة

للاطلاع على القائمة الكاملة لمعاملات الزيادة المفرطة المستخدمة في YOLO11 يرجى الرجوع إلى صفحة التكوينات.

التطور الوراثي والطفرة

يستخدمYOLO Ultralytics YOLO خوارزميات جينية لتحسين المعلمات الفائقة. الخوارزميات الجينية مستوحاة من آلية الانتقاء الطبيعي وعلم الوراثة.

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

التحضير لضبط المعامل الفائق

قبل أن تبدأ عملية الضبط، من المهم أن:

  1. تحديد المقاييس: حدد المقاييس التي ستستخدمها لتقييم أداء النموذج. قد تكون هذه المقاييس هي AP50 أو F1-score أو غيرها.
  2. تعيين ميزانية الضبط: حدد مقدار الموارد الحاسوبية التي ترغب في تخصيصها. يمكن أن يكون ضبط المعلمة الفائقة مكثفاً من الناحية الحسابية.

الخطوات المتضمنة

تهيئة المعلمات الفائقة

ابدأ بمجموعة معقولة من المعلمات الفائقة الأولية. يمكن أن يكون هذا إما المعلمات التشعبية الافتراضية التي حددها Ultralytics YOLO أو شيء ما استنادًا إلى معرفتك بالمجال أو التجارب السابقة.

تحوير المعلمات الفائقة

استخدم _mutate لإنتاج مجموعة جديدة من المعلمات الفائقة بناءً على المجموعة الحالية. إن فئة الموالف يتعامل مع هذه العملية تلقائياً.

نموذج القطار

يتم إجراء التدريب باستخدام مجموعة متغيرة من المعلمات الفائقة. ثم يتم تقييم أداء التدريب باستخدام المقاييس التي اخترتها.

تقييم النموذج

استخدم مقاييس مثل AP50، أو درجة F1، أو مقاييس مخصصة لتقييم أداء النموذج. تساعد عملية التقييم في تحديد ما إذا كانت المعلمات الفائقة الحالية أفضل من المعلمات السابقة.

نتائج السجل

من الأهمية بمكان تسجيل كل من مقاييس الأداء والمعلمات الفائقة المقابلة للرجوع إليها في المستقبل. يحفظ Ultralytics YOLO هذه النتائج تلقائيًا بتنسيق CSV.

التكرار

يتم تكرار العملية حتى يتم الوصول إلى العدد المحدد من التكرارات أو يكون مقياس الأداء مُرضيًا. يعتمد كل تكرار على المعرفة المكتسبة من عمليات التشغيل السابقة.

وصف مساحة البحث الافتراضية

يسرد الجدول التالي قائمة بمعلمات مساحة البحث الافتراضية لضبط المعلمة الفائقة في YOLO11. تحتوي كل معلمة على نطاق قيمة محددة محددة محددة بواسطة تابل (min, max).

المعلمة النوع نطاق القيمة الوصف
lr0 float (1e-5, 1e-1) معدل التعلم الأولي في بداية التدريب. توفر القيم المنخفضة تدريبًا أكثر استقرارًا ولكن تقاربًا أبطأ
lrf float (0.01, 1.0) عامل معدل التعلم النهائي كجزء من lr0. يتحكم في مقدار انخفاض معدل التعلم أثناء التدريب
momentum float (0.6, 0.98) عامل زخم SGD. تساعد القيم الأعلى في الحفاظ على اتجاه تدرج ثابت ويمكنها تسريع التقارب
weight_decay float (0.0, 0.001) عامل التنظيم L2 لمنع الإفراط في الملاءمة. تفرض القيم الأكبر تنظيمًا أقوى
warmup_epochs float (0.0, 5.0) عدد الحلقات لإحماء معدل التعلم الخطي. يساعد على منع عدم استقرار التدريب المبكر
warmup_momentum float (0.0, 0.95) الزخم المبدئي أثناء مرحلة الإحماء. تزداد تدريجيًا إلى قيمة كمية الحركة النهائية
box float (0.02, 0.2) وزن خسارة الصندوق المحدد في دالة الخسارة الكلية. موازنات انحدار مربع الموازنات مقابل التصنيف
cls float (0.2, 4.0) وزن خسارة التصنيف في دالة الخسارة الكلية. تؤكد القيم الأعلى على التنبؤ الصحيح للفئة
hsv_h float (0.0, 0.1) نطاق زيادة التدرج اللوني العشوائي في مساحة ألوان HSV. يساعد النموذج على التعميم عبر اختلافات الألوان
hsv_s float (0.0, 0.9) نطاق زيادة التشبع العشوائي في مساحة HSV. يحاكي ظروف الإضاءة المختلفة
hsv_v float (0.0, 0.9) نطاق زيادة القيمة العشوائية (السطوع). يساعد النموذج على التعامل مع مستويات التعريض المختلفة
degrees float (0.0, 45.0) زيادة الدوران القصوى بالدرجات. يساعد النموذج على أن يصبح ثابتًا في اتجاه الجسم
translate float (0.0, 0.9) أقصى زيادة في الترجمة كجزء من حجم الصورة. تحسين المتانة لموضع الجسم
scale float (0.0, 0.9) نطاق زيادة التحجيم العشوائي. يساعد النموذج على اكتشاف الأجسام بأحجام مختلفة
shear float (0.0, 10.0) أقصى زيادة قص بالدرجات. يضيف تشوهات شبيهة بالمنظور إلى صور التدريب
perspective float (0.0, 0.001) نطاق تكبير المنظور العشوائي. يحاكي زوايا الرؤية المختلفة
flipud float (0.0, 1.0) احتمال انقلاب الصورة الرأسية أثناء التدريب. مفيد للصور العلوية/الجوية
fliplr float (0.0, 1.0) احتمال انقلاب الصورة أفقيًا. يساعد النموذج على أن يصبح ثابتًا لاتجاه الجسم
mosaic float (0.0, 1.0) احتمال استخدام التكبير الفسيفسائي، الذي يجمع بين 4 صور. مفيد بشكل خاص لاكتشاف الأجسام الصغيرة
mixup float (0.0, 1.0) احتمالية استخدام زيادة الخلط، الذي يمزج بين صورتين. يمكن تحسين متانة النموذج
copy_paste float (0.0, 1.0) احتمالية استخدام زيادة النسخ واللصق. يساعد على تحسين أداء تجزئة المثيل

مثال على مساحة البحث المخصصة

فيما يلي كيفية تحديد مساحة بحث واستخدام الأداة model.tune() للاستفادة من طريقة Tuner فئة لضبط المعلمة الفائقة لـ YOLO11n على COCO8 لـ 30 حقبة باستخدام مُحسِّن AdamW وتخطي التخطيط ونقاط التحقق والتحقق من الصحة بخلاف الحقبة النهائية لضبط أسرع.

مثال على ذلك

from ultralytics import YOLO

# Initialize the YOLO model
model = YOLO("yolo11n.pt")

# Define search space
search_space = {
    "lr0": (1e-5, 1e-1),
    "degrees": (0.0, 45.0),
}

# Tune hyperparameters on COCO8 for 30 epochs
model.tune(
    data="coco8.yaml",
    epochs=30,
    iterations=300,
    optimizer="AdamW",
    space=search_space,
    plots=False,
    save=False,
    val=False,
)

النتائج

بعد الانتهاء بنجاح من عملية ضبط البارامتر الفائق، ستحصل على العديد من الملفات والدلائل التي تغلف نتائج الضبط. وفيما يلي وصف لكل منها:

بنية الملف

إليك الشكل الذي ستبدو عليه بنية دليل النتائج. دلائل التدريب مثل train1/ تحتوي على تكرارات ضبط فردية، أي نموذج واحد مُدرَّب بمجموعة واحدة من المعلمات الفائقة. إن tune/ يحتوي الدليل على نتائج الضبط من جميع تدريبات النماذج الفردية:

runs/
└── detect/
    ├── train1/
    ├── train2/
    ├── ...
    └── tune/
        ├── best_hyperparameters.yaml
        ├── best_fitness.png
        ├── tune_results.csv
        ├── tune_scatter_plots.png
        └── weights/
            ├── last.pt
            └── best.pt

أوصاف الملف

best_hyperparameters.yaml

يحتوي ملف YAML هذا على أفضل المعلمات التشعبية الأفضل أداءً التي تم العثور عليها أثناء عملية الضبط. يمكنك استخدام هذا الملف لتهيئة التدريبات المستقبلية باستخدام هذه الإعدادات المحسّنة.

  • التنسيق: YAML
  • الاستخدام: نتائج البارامتر الفائق
  • مثال على ذلك:

    # 558/900 iterations complete ✅ (45536.81s)
    # Results saved to /usr/src/ultralytics/runs/detect/tune
    # Best fitness=0.64297 observed at iteration 498
    # Best fitness metrics are {'metrics/precision(B)': 0.87247, 'metrics/recall(B)': 0.71387, 'metrics/mAP50(B)': 0.79106, 'metrics/mAP50-95(B)': 0.62651, 'val/box_loss': 2.79884, 'val/cls_loss': 2.72386, 'val/dfl_loss': 0.68503, 'fitness': 0.64297}
    # Best fitness model is /usr/src/ultralytics/runs/detect/train498
    # Best fitness hyperparameters are printed below.
    
    lr0: 0.00269
    lrf: 0.00288
    momentum: 0.73375
    weight_decay: 0.00015
    warmup_epochs: 1.22935
    warmup_momentum: 0.1525
    box: 18.27875
    cls: 1.32899
    dfl: 0.56016
    hsv_h: 0.01148
    hsv_s: 0.53554
    hsv_v: 0.13636
    degrees: 0.0
    translate: 0.12431
    scale: 0.07643
    shear: 0.0
    perspective: 0.0
    flipud: 0.0
    fliplr: 0.08631
    mosaic: 0.42551
    mixup: 0.0
    copy_paste: 0.0
    

Best_fitness.png

هذا مخطط يعرض اللياقة (عادةً ما يكون مقياس أداء مثل AP50) مقابل عدد التكرارات. يساعدك على تصور مدى جودة أداء الخوارزمية الجينية بمرور الوقت.

  • التنسيق: PNG
  • الاستخدام: تصور الأداء

لياقة الضبط الفائق للمقياس الفائق مقابل التكرار

tune_results.csv

ملف CSV يحتوي على نتائج مفصلة لكل تكرار أثناء الضبط. يمثل كل صف في الملف تكرارًا واحدًا، ويتضمن مقاييس مثل درجة اللياقة والدقة والاسترجاع، بالإضافة إلى المعلمات الفائقة المستخدمة.

  • التنسيق: CSV
  • الاستخدام: تتبع النتائج لكل تكرار.
  • مثال على ذلك:
      fitness,lr0,lrf,momentum,weight_decay,warmup_epochs,warmup_momentum,box,cls,dfl,hsv_h,hsv_s,hsv_v,degrees,translate,scale,shear,perspective,flipud,fliplr,mosaic,mixup,copy_paste
      0.05021,0.01,0.01,0.937,0.0005,3.0,0.8,7.5,0.5,1.5,0.015,0.7,0.4,0.0,0.1,0.5,0.0,0.0,0.0,0.5,1.0,0.0,0.0
      0.07217,0.01003,0.00967,0.93897,0.00049,2.79757,0.81075,7.5,0.50746,1.44826,0.01503,0.72948,0.40658,0.0,0.0987,0.4922,0.0,0.0,0.0,0.49729,1.0,0.0,0.0
      0.06584,0.01003,0.00855,0.91009,0.00073,3.42176,0.95,8.64301,0.54594,1.72261,0.01503,0.59179,0.40658,0.0,0.0987,0.46955,0.0,0.0,0.0,0.49729,0.80187,0.0,0.0
    

tune_scatter_scatter_plots.png

يحتوي هذا الملف على مخططات مبعثرة تم إنشاؤها من tune_results.csvمما يساعدك على تصور العلاقات بين المعلمات التشعبية المختلفة ومقاييس الأداء. لاحظ أنه لن يتم ضبط المعاملات التشعبية التي تمت تهيئتها إلى 0، مثل degrees و shear أدناه.

  • التنسيق: PNG
  • الاستخدام: تحليل البيانات الاستكشافية

مخططات مبعثرات ضبط المعامل الفائق التشتت

الأوزان/

يحتوي هذا الدليل على النماذج المحفوظة PyTorch المحفوظة لآخر وأفضل التكرارات أثناء عملية ضبط البارامتر الفائق.

  • last.pt: آخر.pt هي الأوزان من آخر حقبة من التدريب.
  • best.pt: أفضل أوزان التكرار الذي حقق أفضل درجة لياقة بدنية.

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

الخاتمة

تتسم عملية ضبط المعلمات الفائقة في Ultralytics YOLO بالبساطة والقوة في آن واحد، وذلك بفضل نهجها القائم على الخوارزمية الجينية الذي يركز على الطفرات. سيساعدك اتباع الخطوات الموضحة في هذا الدليل في ضبط نموذجك بشكل منهجي لتحقيق أداء أفضل.

مزيد من القراءة

  1. تحسين المعامل الفائق في ويكيبيديا
  2. YOLOv5 دليل تطور البارامتر الفائق
  3. الضبط الفعال للمقياس الفائق الفعال مع راي تيون و YOLO11

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

الأسئلة الشائعة

كيف يمكنني تحسين معدل التعلّم Ultralytics YOLO أثناء ضبط المعلمة الفائقة؟

لتحسين معدل التعلم Ultralytics YOLO ، ابدأ بتعيين معدل تعلم أولي باستخدام lr0 البارامتر. تتراوح القيم الشائعة من 0.001 إلى 0.01. أثناء عملية ضبط البارامتر الفائق، سيتم تغيير هذه القيمة للعثور على الإعداد الأمثل. يمكنك الاستفادة من model.tune() لأتمتة هذه العملية. على سبيل المثال:

مثال على ذلك

from ultralytics import YOLO

# Initialize the YOLO model
model = YOLO("yolo11n.pt")

# Tune hyperparameters on COCO8 for 30 epochs
model.tune(data="coco8.yaml", epochs=30, iterations=300, optimizer="AdamW", plots=False, save=False, val=False)

لمزيد من التفاصيل، راجع صفحة التكوينUltralytics YOLO .

ما هي فوائد استخدام الخوارزميات الوراثية لضبط المعامل الفائق في YOLO11 ؟

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

  • بحث فعال: يمكن للخوارزميات الوراثية مثل الطفرة أن تستكشف بسرعة مجموعة كبيرة من المعلمات الفائقة.
  • تجنب الحد الأدنى المحلي: من خلال إدخال العشوائية، فإنها تساعد في تجنب الحد الأدنى المحلي، مما يضمن تحسينًا عالميًا أفضل.
  • مقاييس الأداء: تتكيف بناءً على مقاييس الأداء مثل AP50 ودرجة F1.

لمعرفة كيف يمكن للخوارزميات الوراثية تحسين المعلمات الفائقة، راجع دليل تطور المعلمات الفائقة.

ما المدة التي تستغرقها عملية ضبط المعامل الفائق Ultralytics YOLO ؟

يعتمد الوقت اللازم لضبط المعلمة الفائقة باستخدام Ultralytics YOLO إلى حد كبير على عدة عوامل مثل حجم مجموعة البيانات، وتعقيد بنية النموذج، وعدد التكرارات، والموارد الحاسوبية المتاحة. على سبيل المثال، قد يستغرق ضبط YOLO11n على مجموعة بيانات مثل COCO8 لمدة 30 حقبة زمنية من عدة ساعات إلى أيام، اعتمادًا على الأجهزة.

لإدارة وقت الضبط بفعالية، حدد ميزانية ضبط واضحة مسبقًا(رابط القسم الداخلي). يساعد ذلك في تحقيق التوازن بين تخصيص الموارد وأهداف التحسين.

ما هي المقاييس التي يجب أن أستخدمها لتقييم أداء النموذج أثناء ضبط المعامل الفائق في YOLO ؟

عند تقييم أداء النموذج أثناء ضبط المعامل الفائق في YOLO ، يمكنك استخدام عدة مقاييس رئيسية:

  • AP50: متوسط الدقة عند عتبة وحدة القياس الدولية 0.50.
  • النتيجة F1: المتوسط التوافقي للدقة والاستدعاء.
  • الدقة والاسترجاع: مقاييس فردية تشير إلى دقة النموذج في تحديد الإيجابيات الحقيقية مقابل الإيجابيات الخاطئة والسلبيات الخاطئة.

تساعدك هذه المقاييس على فهم الجوانب المختلفة لأداء نموذجك. راجع دليل مقاييس الأداءUltralytics YOLO للحصول على نظرة عامة شاملة.

هل يمكنني استخدام Ray Tune لتحسين المعامل التشعبي المتقدم مع YOLO11

نعم، يتكاملYOLO11 Ultralytics YOLO11 مع راي تيون لتحسين المعلمة التشعبية المتقدمة. يوفر Ray Tune خوارزميات بحث متطورة مثل Bayesian Optimization وHyperband، إلى جانب إمكانات التنفيذ المتوازي لتسريع عملية الضبط.

لاستخدام Ray Tune مع YOLO11 ما عليك سوى تعيين use_ray=True في معلمة model.tune() استدعاء الأسلوب. لمزيد من التفاصيل والأمثلة، راجع دليل تكامل راي تون.

📅 تم إنشاؤها منذ 1 سنة مضت ✏️ تم التحديث منذ 8 أيام

التعليقات