─░├ž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.

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: Kay─▒p fonksiyonunda bir minimuma do─čru ilerlerken her iterasyonda ad─▒m boyutunu belirler.
  • 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

YOLOv8 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.

Kullan─▒m ├ľrne─či

─░┼čte nas─▒l kullan─▒laca─č─▒ model.tune() y├Ântemini kullanmak i├žin Tuner AdamW optimize edici ile 30 epok i├žin COCO8 ├╝zerinde YOLOv8n hiperparametre ayarlama 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("yolov8n.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)

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─▒
  • Example:

    # 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, hiperparametre ayarlama i┼člemi s─▒ras─▒nda son ve en iyi iterasyonlar i├žin kaydedilen PyTorch modellerini i├žerir.

  • 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 YOLOv8

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.



Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (10)

Yorumlar