Ultralytics YOLO Hyperparameter Tuning Guide
Giriş
Hyperparameter tuning is not just a one-time set-up but an iterative process aimed at optimizing the machine learning model's performance metrics, such as accuracy, precision, and recall. In the context of Ultralytics YOLO, these hyperparameters could range from learning rate to architectural details, such as the number of layers or types of activation functions used.
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
: Determines the step size at each iteration while moving towards a minimum in the loss function. - Parti Büyüklüğü
batch
: Bir ileri geçişte aynı anda işlenen görüntü sayısı. - Number of Epochs
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.
For a full list of augmentation hyperparameters used in YOLO11 please refer to the configurations page.
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:
- Metrikleri Belirleyin: Modelin performansını değerlendirmek için kullanacağınız metrikleri belirleyin. Bu AP50, F1-skoru veya diğerleri olabilir.
- 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.
Kullanım Örneği
İşte nasıl kullanılacağı model.tune()
yöntemini kullanmak için Tuner
class for hyperparameter tuning of YOLO11n on COCO8 for 30 epochs with an AdamW optimizer and skipping plotting, checkpointing and validation other than on final epoch for faster Tuning.
Örnek
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
tune_results.csv
A CSV file containing detailed results of each iteration during the tuning. Each row in the file represents one iteration, and it includes metrics like fitness score, precision, recall, as well as the hyperparameters used.
- 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.csv
farklı 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
ağırlıklar/
This directory contains the saved PyTorch models for the last and the best iterations during the hyperparameter tuning process.
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
- Wikipedia'da Hiperparametre Optimizasyonu
- YOLOv5 Hiperparametre Evrim Kılavuzu
- Efficient Hyperparameter Tuning with Ray Tune and 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
How do I optimize the learning rate for Ultralytics YOLO during hyperparameter tuning?
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
Daha fazla ayrıntı için Ultralytics YOLO yapılandırma sayfasına bakın.
What are the benefits of using genetic algorithms for hyperparameter tuning in YOLO11?
Genetic algorithms in Ultralytics YOLO11 provide a robust method for exploring the hyperparameter space, leading to highly optimized model performance. Key benefits include:
- 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.
Ultralytics YOLO için hiperparametre ayarlama süreci ne kadar sürer?
The time required for hyperparameter tuning with Ultralytics YOLO largely depends on several factors such as the size of the dataset, the complexity of the model architecture, the number of iterations, and the computational resources available. For instance, tuning YOLO11n on a dataset like COCO8 for 30 epochs might take several hours to days, depending on the hardware.
Ayarlama süresini etkin 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ı.
- Precision and Recall: Individual metrics indicating the model's accuracy in identifying true positives versus false positives and false negatives.
Bu metrikler, modelinizin performansının farklı yönlerini anlamanıza yardımcı olur. Kapsamlı bir genel bakış için Ultralytics YOLO performans ölçüm leri 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.