Cross-Validation
Çapraz doğrulamanın model genellemesini nasıl iyileştirdiğini ve aşırı uyumu nasıl önlediğini öğren. Sağlam ML için Ultralytics YOLO26 ile K-Fold değerlendirmesini nasıl uygulayacağını keşfet.
Çapraz doğrulama, sınırlı bir veri örneği üzerinde 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 bir hold-out yönteminin aksine, çapraz doğrulama, her veri noktasının hem eğitim hem de doğrulama için kullanılmasını sağlamak üzere veri setini birden fazla alt kümeye bölmeyi içerir. Bu teknik, istatistiksel analiz sonuçlarının bağımsız bir veri setine nasıl genelleneceğini değerlendirmek açısından çok önemlidir ve bir modelin genellenebilir örüntüleri öğrenmek yerine eğitim örneklerini ezberleyebileceği aşırı öğrenmeyi (overfitting) tespit etmeye yardımcı olur.
K-Katlamalı (K-Fold) Çapraz Doğrulamanın Mekanizması#
Bu tekniğin en yaygın kullanılan varyasyonu K-Fold Çapraz Doğrulama'dır. Bu süreçte, tüm veri seti rastgele k adet eşit boyutta gruba veya "fold" (kat) adı verilen parçalara ayrılır. Eğitim süreci daha sonra k kez tekrarlanır. Her yinelemede, tek bir kat modeli test etmek için doğrulama verisi görevi görürken, kalan k-1 kat eğitim verisi olarak hizmet eder.
The final performance metric is typically calculated by averaging the scores—such as accuracy, precision, or Mean Average Precision (mAP)—obtained from each loop. This approach significantly reduces the variance associated with a single trial of a train-test split, providing a more reliable estimate of the generalization error. It ensures that the evaluation is not biased by an arbitrary selection of the test data.
Ultralytics ile Uygulama#
Çapraz doğrulama, özellikle daha küçük veri setleriyle çalışırken veya titiz hiperparametre ayarı gerçekleştirirken faydalıdır. PyTorch gibi modern derin öğrenme çerçeveleri eğitim döngüsünü kolaylaştırırken, katları yönetmek dikkatli bir veri hazırlığı gerektirir.
YOLO26 modelini kullanarak 5 katlı bir çapraz doğrulama deneyi için önceden oluşturulmuş YAML yapılandırma dosyalarında nasıl gezinileceğini aşağıdaki örnek göstermektedir. Bu, veri setinizi 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şturmayı otomatikleştirmek hakkında daha derinlemesine bilgi için K-Fold Çapraz Doğrulama hakkındaki kılavuza başvurun.
Gerçek Dünya Uygulamaları#
Çapraz doğrulama; verinin kıt olduğu, toplanmasının pahalı olduğu veya güvenlik açısından kritik güvenilirliğin gerekli olduğu endüstrilerde vazgeçilmezdir.
- Tıbbi Teşhis: Tıbbi görüntü analizinde, nadir durumlar için veri setleri genellikle küçüktür. Tek bir doğrulama bölünmesi, zor vakaları veya nadir patolojileri yanlışlıkla dışarıda bırakabilir. Çapraz doğrulama kullanarak, sağlık alanında yapay zeka geliştiren araştırmacılar, teşhis modellerinin mevcut her hasta taramasına karşı test edilmesini sağlar ve sistemin çeşitli demografilerde ve ekipman türlerinde çalıştığını doğrular.
- Hassas Tarım: Çevresel koşullar dış mekan ortamlarında büyük ölçüde değişir. Mahsul hastalık tespiti için eğitilmiş bir model güneşli günlerde iyi performans gösterebilir, ancak bu görüntüler yalnızca eğitim setindeyse bulutlu gökyüzü altında başarısız olabilir. Çapraz doğrulama, modelin bu tür varyasyonlara karşı dayanıklı olmasını sağlar ve çiftçilerin hava koşullarından bağımsız olarak tutarlı izleme için otomatik makine öğrenimi (AutoML) araçlarına güvenmesine yardımcı olur.
Model Geliştirmede Stratejik Avantajlar#
Çapraz doğrulamayı yapay zeka geliştirme yaşam döngüsüne entegre etmek, yanlılık-varyans takası hakkında çok önemli bilgiler sağlar.
-
Kararlılık Değerlendirmesi: Performans metrikleri katlamalar arasında önemli ölçüde değişiyorsa, bu modelin eğitim için kullanılan belirli veri noktalarına karşı oldukça hassas olduğunu ve yüksek varyansa işaret ettiğini gösterir.
-
Veri Verimliliği: Her gözlem nihayetinde hem eğitim hem de doğrulama için kullanıldığından, sınırlı verinin faydasını en üst düzeye çıkarır.
-
Hiperparametre Optimizasyonu: Nihai test setine "bakmadan" en iyi öğrenme oranı (learning rate), parti boyutu (batch size) veya veri artırımı (data augmentation) stratejilerini seçmek için güvenilir bir kıyaslama sağlar.
İlgili Kavramları Ayırt Etme#
Çapraz doğrulamayı diğer değerlendirme terimlerinden ayırmak önemlidir:
- Hold-out Doğrulama ile Karşılaştırma: Hold-out, tek bir bölünmeyi (ör. 80/20) içerir. Daha hızlı olması ve ImageNet gibi devasa veri setleri için uygun olmasıyla birlikte, daha küçük veri setleri için çapraz doğrulamaya göre istatistiksel olarak daha az dayanıklıdır.
- Bootstrapping ile Karşılaştırma: Bootstrapping, yerine koyarak rastgele örnekleme içerirken, K-Fold çapraz doğrulama verileri yerine koymadan bölümlere ayırır (her örnek tam olarak bir kattadır).
Birden fazla kattan elde edilen yapay nesneleri, metrikleri ve modelleri yönetmek karmaşık olabilir. Ultralytics Platform, merkezi deneme takibi sunarak bunu basitleştirir; ekiplerin farklı katlar arasındaki performansı karşılaştırmasına ve model değerlendirme içgörülerini zahmetsizce görselleştirmesine olanak tanır.






