Model Soups'un, Ultralytics YOLO ağırlıklarını ortalamalayarak doğruluğu ve sağlamlığı nasıl artırdığını keşfedin. Gecikmeyi artırmadan performansı nasıl yükseltebileceğinizi öğrenin.
Model Soups, farklı hiperparametreler kullanılarak aynı önceden eğitilmiş temel modelden ince ayarlanmış birden fazla sinir ağının ağırlıklarının ortalamasının alınarak tek ve daha sağlam bir model oluşturulduğu bir makine öğrenimi tekniğidir. Bu yaklaşım, geliştiricilerin çıkarım sırasında hesaplama maliyetini artırmadan genel doğruluğu ve genelleştirme yeteneğini iyileştirmelerine olanak tanır.
Bir modeli ince ayarlarken, uzmanlar genellikle en iyi performansı gösteren yapılandırmayı bulmak için geniş kapsamlı bir hiperparametre ayarlama taraması gerçekleştirir. Geleneksel olarak, en iyi tek model seçilir ve geri kalanlar atılır. Ancak, bir model karışımı oluşturmak, taramadaki tüm modellerin öğrendiği çeşitli özelliklerden yararlanır. Model ağırlıklarının doğrudan ortalaması alınarak elde edilen ağ, genellikle en iyi tek modeli geride bırakır; bu, modellerin güçlü yönlerini etkili bir şekilde birleştirirken aşırı uyumu en aza indirir. Bu süreç son derece verimlidir ve Ultralytics gibi işbirliğine dayalı ortamlarda kolayca yönetilebilir.
Model Çorbaları, hesaplama kaynaklarının sınırlı olduğu ancak yüksek doğruluk ve sağlamlık gerektiren durumlarda son derece etkilidir.
Derin öğrenme optimizasyonu alanını anlamak için, Model Soups'u benzer tekniklerden ayırt etmek önemlidir:
Tek tip bir model kümesi oluşturmak, eğitimli birden fazla modelin PyTorch sözlüğüne erişmeyi ve bu modellerin tensörlerinin matematiksel ortalamasını almayı gerektirir. Aşağıda, PyTorch doğrudan desteklediği bir Ultralytics iş akışı kullanılarak bunun nasıl gerçekleştirilebileceğine dair kısa bir örnek yer almaktadır.
import torch
# Load the PyTorch state dictionaries from two fine-tuned YOLO26 models
model1 = torch.load("yolo26_run1.pt")["model"].state_dict()
model2 = torch.load("yolo26_run2.pt")["model"].state_dict()
# Create a uniform model soup by averaging the model weights
soup_dict = {key: (model1[key] + model2[key]) / 2.0 for key in model1.keys()}
# The resulting soup_dict can now be loaded into a new YOLO26 instance
Bu tekniği kullanarak, bilgisayar görme uzmanları, modern, uç öncelikli yapay zeka mimarileri için gerekli olan dağıtım hızından ödün vermeden, sıfır denemeli öğrenme yetenekleri ve genel dayanıklılık gibi performans göstergelerini kolayca artırabilirler.
Makine öğreniminin geleceği ile yolculuğunuza başlayın