Explore cross-validation to prevent overfitting and boost model reliability. Learn how to implement K-Fold splits with YOLO26 to ensure your AI generalizes well.
Çapraz doğrulama, sınırlı bir veri örneğinde makine öğrenimi (ML) modellerinin performansını değerlendirmek için kullanılan sağlam bir istatistiksel yeniden örnekleme prosedürüdür. Verileri tek bir eğitim ve test setine ayıran standart hold-out yönteminden farklı olarak, çapraz doğrulama, her veri noktasının hem eğitim hem de doğrulama için kullanılmasını sağlamak amacıyla veri setini birden fazla alt kümeye bölmeyi içerir. Bu teknik, istatistiksel analiz sonuçlarının bağımsız bir veri kümesine nasıl genelleştirileceğini değerlendirmek için çok önemlidir ve modelin genelleştirilebilir kalıpları öğrenmek yerine eğitim örneklerini ezberleyebileceği durumlarda aşırı uyumu detect yardımcı olur.
Bu tekniğin en yaygın kullanılan varyasyonu K-Katlı Çapraz Doğrulamadır. Bu süreçte, tüm veri kümesi rastgele k eşit büyüklükte gruba veya "kat"a bölünür. Eğitim süreci daha sonra k kez tekrarlanır. Her yinelemede, tek bir kat modeli test etmek için doğrulama verisi olarak işlev görürken, kalan k-1 kat eğitim verisi olarak işlev görür.
Nihai performans metriği genellikle her döngüden elde edilen doğruluk, kesinlik veya Ortalama Kesinlik (mAP)gibi puanların ortalaması alınarak hesaplanır. Bu yaklaşım, eğitim-test bölünmesinin tek bir denemesiyle ilişkili varyansı önemli ölçüde azaltır ve genelleme hatasının daha güvenilir bir tahminini sağlar. Değerlendirmenin, test verilerinin keyfi seçimi tarafından önyargılı hale gelmemesini sağlar.
Çapraz doğrulama, daha küçük veri kümeleriyle çalışırken veya titiz hiperparametre ayarlaması yaparken özellikle yararlıdır. PyTorch gibi modern derin öğrenme çerçeveleri PyTorch eğitim döngüsünü kolaylaştırsa da, katların yönetimi dikkatli veri hazırlığı gerektirir.
Aşağıdaki örnek, YOLO26 modelini kullanarak 5 katlı çapraz doğrulama deneyi için önceden oluşturulmuş YAML yapılandırma dosyalarını nasıl yineleyeceğinizi gösterir. Bu örnek, veri kümenizi zaten beş ayrı yapılandırma dosyasına böldüğünüzü varsayar. YOLO26 modelini kullanarak 5 katlı çapraz doğrulama deneyi için önceden oluşturulmuş YAML yapılandırma dosyalarını nasıl yineleyeceğinizi gösterir. Bu örnek, veri kümenizi zaten beş ayrı yapılandırma dosyasına böldüğünüzü varsayar.
from ultralytics import YOLO
# List of dataset configuration files representing 5 folds
fold_yamls = [f"dataset_fold_{i}.yaml" for i in range(5)]
for i, yaml_file in enumerate(fold_yamls):
# Load a fresh YOLO26 Nano model for each fold
model = YOLO("yolo26n.pt")
# Train the model, saving results to a unique project directory
results = model.train(data=yaml_file, epochs=20, project="cv_experiment", name=f"fold_{i}")
Bölünme oluşturmanın otomatikleştirilmesi hakkında daha ayrıntılı bilgi için, K-Fold Çapraz Doğrulama kılavuzuna bakın.
Çapraz doğrulama, verilerin kıt olduğu, toplanmasının pahalı olduğu veya güvenlik açısından kritik güvenilirliğin gerekli olduğu sektörlerde vazgeçilmezdir.
Çapraz doğrulamayı AI geliştirme yaşam dö ngüsüne entegre etmek, önyargı-varyans dengesi hakkında önemli içgörüler sağlar.
Çapraz doğrulamayı diğer değerlendirme terimlerinden ayırmak önemlidir:
Birden fazla katmandan gelen artefaktları, metrikleri ve modelleri yönetmek karmaşık olabilir. Ultralytics , merkezi deney izleme özelliği sunarak bunu basitleştirir ve ekiplerin farklı katmanlar arasında performansı karşılaştırmasına ve model değerlendirme içgörülerini zahmetsizce görselleştirmesine olanak tanır.
