İçeriğe geç

Ultralytics YOLO Hiperparametre Ayarlama Kılavuzu

Giriş

Hiperparametre ayarı sadece tek seferlik bir kurulum değil, makine öğrenimi modelinin doğruluk, kesinlik ve geri çağırma gibi performans ölçümlerini optimize etmeyi amaçlayan yinelemeli bir süreçtir. Ultralytics YOLO bağlamında, bu hiperparametreler öğrenme hızından, kullanılan katman sayısı veya aktivasyon fonksiyonu türleri gibi mimari ayrıntılara kadar değişebilir.



İzle: How to Tune Hyperparameters for Better Model Performance 🚀

Hiperparametreler nedir?

Hiperparametreler algoritma için yüksek seviyeli, yapısal ayarlardır. Eğitim aşamasından önce ayarlanırlar ve eğitim sırasında sabit kalırlar. İşte Ultralytics YOLO adresinde yaygın olarak ayarlanan bazı hiperparametreler:

  • Öğrenme Oranı lr0: Minimuma doğru hareket ederken her iterasyonda adım boyutunu belirler. kayıp fonksiyonu.
  • Parti Büyüklüğü batch: Bir ileri geçişte aynı anda işlenen görüntü sayısı.
  • Çağ Sayısı epochs: Bir epok, tüm eğitim örneklerinin bir tam ileri ve geri geçişidir.
  • Mimari Özellikleri: Kanal sayıları, katman sayısı, aktivasyon fonksiyonlarının türleri vb.

Hiperparametre Ayarlama Görseli

YOLO11 adresinde kullanılan büyütme hiperparametrelerinin tam listesi için lütfen yapılandırmalar sayfasına bakın.

Genetik Evrim ve Mutasyon

Ultralytics YOLO hiperparametreleri optimize etmek için genetik algoritmalar kullanır. Genetik algoritmalar doğal seleksiyon ve genetik mekanizmasından esinlenmiştir.

  • Mutasyon: Ultralytics YOLO bağlamında mutasyon, mevcut hiperparametrelerde küçük, rastgele değişiklikler uygulayarak ve değerlendirme için yeni adaylar üreterek hiperparametre uzayının yerel olarak aranmasına yardımcı olur.
  • Çaprazlama: Çaprazlama popüler bir genetik algoritma tekniği olmasına rağmen, şu anda hiperparametre ayarlaması için Ultralytics YOLO adresinde kullanılmamaktadır. Yeni hiperparametre setleri oluşturmak için esas olarak mutasyona odaklanılmaktadır.

Hiperparametre Ayarlama için Hazırlık

Ayarlama işlemine başlamadan önce şunları yapmanız önemlidir:

  1. Metrikleri Belirleyin: Modelin performansını değerlendirmek için kullanacağınız metrikleri belirleyin. Bu AP50, F1-skoru veya diğerleri olabilir.
  2. Ayarlama Bütçesini Ayarlayın: Ne kadar hesaplama kaynağı ayırmak istediğinizi tanımlayın. Hiperparametre ayarı hesaplama açısından yoğun olabilir.

İlgili Adımlar

Hiperparametreleri Başlatma

Makul bir başlangıç hiperparametre seti ile başlayın. Bu, Ultralytics YOLO tarafından ayarlanan varsayılan hiperparametreler veya alan bilginize ya da önceki deneylerinize dayalı bir şey olabilir.

Hiperparametreleri Mutasyona Uğrat

Kullanın _mutate yöntemini kullanarak mevcut kümeye dayalı yeni bir hiperparametre kümesi üretir.

Tren Modeli

Eğitim, değiştirilmiş hiperparametre seti kullanılarak gerçekleştirilir. Eğitim performansı daha sonra değerlendirilir.

Modeli Değerlendirin

Modelin performansını değerlendirmek için AP50, F1-skoru gibi metrikleri veya özel metrikleri kullanın.

Günlük Sonuçları

Gelecekte başvurmak üzere hem performans ölçümlerini hem de ilgili hiperparametreleri kaydetmek çok önemlidir.

Tekrarla

Belirlenen iterasyon sayısına ulaşılana ya da performans ölçütü tatmin edici olana kadar süreç tekrarlanır.

Varsayılan Arama Alanı Açıklama

The following table lists the default search space parameters for hyperparameter tuning in YOLO11. Each parameter has a specific value range defined by a tuple (min, max).

Parametre Tip Değer Aralığı Açıklama
lr0 float (1e-5, 1e-1) Initial learning rate at the start of training. Lower values provide more stable training but slower convergence
lrf float (0.01, 1.0) Final learning rate factor as a fraction of lr0. Controls how much the learning rate decreases during training
momentum float (0.6, 0.98) SGD momentum factor. Higher values help maintain consistent gradient direction and can speed up convergence
weight_decay float (0.0, 0.001) L2 regularization factor to prevent overfitting. Larger values enforce stronger regularization
warmup_epochs float (0.0, 5.0) Number of epochs for linear learning rate warmup. Helps prevent early training instability
warmup_momentum float (0.0, 0.95) Initial momentum during warmup phase. Gradually increases to the final momentum value
box float (0.02, 0.2) Bounding box loss weight in the total loss function. Balances box regression vs classification
cls float (0.2, 4.0) Classification loss weight in the total loss function. Higher values emphasize correct class prediction
hsv_h float (0.0, 0.1) Random hue augmentation range in HSV color space. Helps model generalize across color variations
hsv_s float (0.0, 0.9) Random saturation augmentation range in HSV space. Simulates different lighting conditions
hsv_v float (0.0, 0.9) Random value (brightness) augmentation range. Helps model handle different exposure levels
degrees float (0.0, 45.0) Maximum rotation augmentation in degrees. Helps model become invariant to object orientation
translate float (0.0, 0.9) Maximum translation augmentation as fraction of image size. Improves robustness to object position
scale float (0.0, 0.9) Random scaling augmentation range. Helps model detect objects at different sizes
shear float (0.0, 10.0) Maximum shear augmentation in degrees. Adds perspective-like distortions to training images
perspective float (0.0, 0.001) Random perspective augmentation range. Simulates different viewing angles
flipud float (0.0, 1.0) Probability of vertical image flip during training. Useful for overhead/aerial imagery
fliplr float (0.0, 1.0) Probability of horizontal image flip. Helps model become invariant to object direction
mosaic float (0.0, 1.0) Probability of using mosaic augmentation, which combines 4 images. Especially useful for small object detection
mixup float (0.0, 1.0) Probability of using mixup augmentation, which blends two images. Can improve model robustness
copy_paste float (0.0, 1.0) Probability of using copy-paste augmentation. Helps improve instance segmentation performance

Özel Arama Alanı Örneği

Here's how to define a search space and use the model.tune() yöntemini kullanmak için Tuner YOLO11n'in COCO8 üzerinde AdamW optimize edici ile 30 epok için hiperparametre ayarlaması için sınıf ve daha hızlı ayarlama için son epok dışında çizim, kontrol noktası ve doğrulamayı atlama.

Örnek

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,
)

Sonuçlar

Hiperparametre ayarlama işlemini başarıyla tamamladıktan sonra, ayarlama sonuçlarını içeren birkaç dosya ve dizin elde edeceksiniz. Aşağıda her biri açıklanmaktadır:

Dosya Yapısı

Sonuçların dizin yapısı şu şekilde görünecektir. Aşağıdaki gibi eğitim dizinleri train1/ bireysel ayarlama iterasyonları, yani bir hiperparametre seti ile eğitilmiş bir model içerir. Bu tune/ dizini tüm bireysel model eğitimlerinin ayarlama sonuçlarını içerir:

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

Dosya Açıklamaları

best_hyperparameters.yaml

Bu YAML dosyası, ayarlama işlemi sırasında bulunan en iyi performans gösteren hiperparametreleri içerir. Bu dosyayı, gelecekteki eğitimleri bu optimize edilmiş ayarlarla başlatmak için kullanabilirsiniz.

  • Biçim: YAML
  • Kullanım: Hiperparametre sonuçları
  • Örnek:

    # 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

Bu, uygunluğu (tipik olarak AP50 gibi bir performans ölçütü) iterasyon sayısına karşı gösteren bir çizimdir. Genetik algoritmanın zaman içinde ne kadar iyi performans gösterdiğini görselleştirmenize yardımcı olur.

  • Format: PNG
  • Kullanım şekli: Performans görselleştirme

Hiperparametre Ayarlama Uygunluğu vs Yineleme

tune_results.csv

Ayarlama sırasında her bir iterasyonun ayrıntılı sonuçlarını içeren bir CSV dosyası. Dosyadaki her satır bir yinelemeyi temsil eder ve uygunluk puanı, kesinlik, geri çağırma gibi metriklerin yanı sıra kullanılan hiperparametreleri de içerir.

  • Format: CSV
  • Kullanım: Yineleme başına sonuç izleme.
  • Örnek:
      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_plots.png

Bu dosya, aşağıdakilerden oluşturulan dağılım grafiklerini içerir tune_results.csvfarklı hiperparametreler ve performans metrikleri arasındaki ilişkileri görselleştirmenize yardımcı olur. 0'a başlatılan hiperparametrelerin ayarlanmayacağını unutmayın, örneğin degrees ve shear aşağıda.

  • Format: PNG
  • Kullanım: Keşifsel veri analizi

Hiperparametre Ayarlama Dağılım Grafikleri

ağırlıklar/

Bu dizin, kaydedilmiş PyTorch hiperparametre ayarlama işlemi sırasında son ve en iyi iterasyonlar için modeller.

  • last.pt: Last.pt, eğitimin son epoğundaki ağırlıklardır.
  • best.pt: En iyi uygunluk puanını elde eden iterasyon için en iyi.pt ağırlıkları.

Bu sonuçları kullanarak gelecekteki model eğitimleriniz ve analizleriniz için daha bilinçli kararlar verebilirsiniz. Modelinizin ne kadar iyi performans gösterdiğini ve onu nasıl daha da geliştirebileceğinizi anlamak için bu eserlere başvurmaktan çekinmeyin.

Sonuç

Ultralytics YOLO adresindeki hiperparametre ayarlama süreci, mutasyona odaklanan genetik algoritma tabanlı yaklaşımı sayesinde basitleştirilmiş ancak güçlüdür. Bu kılavuzda özetlenen adımları izlemek, daha iyi performans elde etmek için modelinizi sistematik olarak ayarlamanıza yardımcı olacaktır.

Daha Fazla Okuma

  1. Wikipedia'da Hiperparametre Optimizasyonu
  2. YOLOv5 Hiperparametre Evrim Kılavuzu
  3. Ray Tune ile Verimli Hiperparametre Ayarlama ve YOLO11

Daha derin içgörüler için Tuner sınıfı kaynak kodu ve beraberindeki belgeler. Herhangi bir sorunuz, özellik talebiniz veya daha fazla yardıma ihtiyacınız olursa, bize şu adresten ulaşmaktan çekinmeyin GitHub veya Discord.

SSS

Hiperparametre ayarlama sırasında Ultralytics YOLO için öğrenme oranını nasıl optimize edebilirim?

Ultralytics YOLO için öğrenme oranını optimize etmek üzere, aşağıdaki yöntemi kullanarak bir başlangıç öğrenme oranı belirleyerek başlayın lr0 parametre. Yaygın değerler şu aralıktadır 0.001 için 0.01. Hiperparametre ayarlama işlemi sırasında, bu değer en uygun ayarı bulmak için değiştirilecektir. Kullanabilirsiniz model.tune() yöntemini kullanarak bu süreci otomatikleştirebilirsiniz. Örneğin:

Örnek

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)

Daha fazla ayrıntı için Ultralytics YOLO yapılandırma sayfasına bakın.

YOLO11 adresinde hiperparametre ayarlaması için genetik algoritma kullanmanın faydaları nelerdir?

Ultralytics YOLO11 adresindeki genetik algoritmalar, hiperparametre uzayını keşfetmek için sağlam bir yöntem sağlayarak yüksek düzeyde optimize edilmiş model performansına yol açar. Temel faydaları şunlardır:

  • Verimli Arama: Mutasyon gibi genetik algoritmalar, geniş bir hiperparametre setini hızlı bir şekilde keşfedebilir.
  • Yerel Minimumlardan Kaçınma: Rastgelelik sunarak, yerel minimumlardan kaçınmaya yardımcı olurlar ve daha iyi küresel optimizasyon sağlarlar.
  • Performans Metrikleri: AP50 ve F1-skor gibi performans ölçütlerine göre uyarlanırlar.

Genetik algoritmaların hiperparametreleri nasıl optimize edebileceğini görmek için hiperparametre evrimi kılavuzuna göz atın.

Hiperparametre ayarlama süreci Ultralytics YOLO için ne kadar sürer?

Ultralytics YOLO ile hiperparametre ayarlaması için gereken süre büyük ölçüde veri kümesinin boyutu, model mimarisinin karmaşıklığı, iterasyon sayısı ve mevcut hesaplama kaynakları gibi çeşitli faktörlere bağlıdır. Örneğin, COCO8 gibi bir veri kümesinde YOLO11n'i 30 epok için ayarlamak, donanıma bağlı olarak birkaç saat ila gün sürebilir.

Ayarlama süresini etkili bir şekilde yönetmek için önceden net bir ayarlama bütçesi tanımlayın(dahili bölüm bağlantısı). Bu, kaynak tahsisi ve optimizasyon hedeflerinin dengelenmesine yardımcı olur.

YOLO adresinde hiperparametre ayarlama sırasında model performansını değerlendirmek için hangi ölçütleri kullanmalıyım?

YOLO adresinde hiperparametre ayarlama sırasında model performansını değerlendirirken birkaç temel ölçüt kullanabilirsiniz:

  • AP50: 0,50 IoU eşiğindeki ortalama hassasiyet.
  • F1-Skoru: Kesinlik ve geri çağırmanın harmonik ortalaması.
  • Kesinlik ve Geri Çağırma: Modelin doğru pozitiflere karşı yanlış pozitifleri ve yanlış negatifleri tanımlamadaki doğruluğunu gösteren bireysel ölçümler.

Bu metrikler, modelinizin performansının farklı yönlerini anlamanıza yardımcı olur. Kapsamlı bir genel bakış için Ultralytics YOLO performans ölçümleri kılavuzuna bakın.

YOLO modellerinin hiperparametre ayarlaması için Ultralytics HUB'ı kullanabilir miyim?

Evet, YOLO modellerinin hiperparametre ayarlaması için Ultralytics HUB'ı kullanabilirsiniz. HUB, veri kümelerini kolayca yüklemek, modelleri eğitmek ve hiperparametre ayarını verimli bir şekilde gerçekleştirmek için kod içermeyen bir platform sunar. Ayarlama ilerlemesinin ve sonuçlarının gerçek zamanlı olarak izlenmesini ve görselleştirilmesini sağlar.

Ultralytics HUB Cloud Eğitim belgelerinde hiperparametre ayarlama için Ultralytics HUB kullanımı hakkında daha fazla bilgi edinin.

📅1 yıl önce oluşturuldu ✏️ 27 gün önce güncellendi

Yorumlar