Overfitting
Aşırı öğrenme, bir modelin gürültü de dâhil olmak üzere eğitim verilerini ezberlemesi ve yeni verilerde başarısız olmasıyla ortaya çıkar. Nasıl fark edeceğini ve bunu önleyen yöntemleri öğren.
Makine öğrenimi modeli, eğitim verilerine o kadar yakından uyduğunda, gerçek örüntülerin yanı sıra bu örneklere özgü gürültü ve özellikleri de öğrendiğinde aşırı öğrenme gerçekleşir. Aşırı öğrenmiş bir model, üzerinde eğitildiği verilerde iyi puan alırken yeni verilerde belirgin biçimde daha kötü performans gösterir; bu farkın büyüklüğü aşırı öğrenmenin derecesini ölçer. Yanlılık-varyans açısından aşırı öğrenme, yüksek varyanstır: Modelin tahminleri, gördüğü belirli örneklere gereğinden fazla bağlıdır.
Aşırı Öğrenmeyi Tanıma#
Belirgin işaret, eğitim performansı ile doğrulama verileri üzerindeki performans arasındaki farkın giderek büyümesidir. epoch başına çizilen öğrenme eğrilerinde, eğitim kaybı düşmeye devam ederken doğrulama kaybı önce yataylaşır, ardından yükselir; ortalama kesinlik (mAP) gibi doğrulama metrikleri duraklar veya geriler. Klasik küçük ölçekli gösterimde, sinüs dalgasından örneklenmiş 12 gürültülü noktaya iki farklı dereceden polinom uydurulur:
import numpy as np
from numpy.polynomial import Polynomial
rng = np.random.default_rng(0)
# 12 noisy training points from a sine wave, plus clean test points
x_train = rng.uniform(0, 1, 12)
y_train = np.sin(2 * np.pi * x_train) + rng.normal(0, 0.2, 12)
x_test = np.linspace(0, 1, 200)
y_test = np.sin(2 * np.pi * x_test)
for degree in (3, 9):
fit = Polynomial.fit(x_train, y_train, degree)
train_mse = np.mean((fit(x_train) - y_train) ** 2)
test_mse = np.mean((fit(x_test) - y_test) ** 2)
print(f"Degree {degree:2d}: train MSE {train_mse:.4f}, test MSE {test_mse:.4f}")9. derece polinom, gürültüye yaklaşacak kadar esnektir; bu da eğitim hatasını 0.0356'dan 0.0148'e düşürürken test hatasını on kat artırıp 0.0182'den 0.1859'a çıkarır.
Aşırı Uyum ve Yetersiz Uyum#
Yetersiz öğrenme bunun tersidir: Verilerdeki örüntüleri yakalayamayacak kadar basit olan ya da çok kısa süre eğitilen model hem eğitim hem de doğrulama verilerinde kötü performans gösterir. İki hatayı karşılaştırmak durumları birbirinden ayırır ve farklı çözümlere işaret eder.
Yaygın Nedenler#
- Veri için fazla kapasite: Milyonlarca parametreli bir sinir ağı, birkaç yüz görüntüyü doğrudan ezberleyebilir.
- Gürültülü veya yanlış etiketlenmiş veriler: Eksik kutular, yanlış sınıflar ve aykırı değerler, gerçek dünyada bulunmayan hatalara modelin uyum sağlamasına yol açar.
- Çok uzun eğitim: Yararlı örüntüler öğrenildikten sonra ek epoch'lar çoğunlukla kalan gürültüye uyum sağlar.
- Dar kapsamlı eğitim verileri: Yalnızca tek bir kameradan alınan gündüz görüntüleriyle eğitilen bir algılayıcı, o kameranın arka planına ve ışıklandırmasına takılabilir ve yeni bir konumdaki nesneleri kaçırabilir.
Aşırı Uyumu Önleme#
- Daha fazla ve daha çeşitli veri: Ek gerçek örnekler en doğrudan çözümdür; veri artırma ise mevcut görüntüleri çevirerek, ölçeklendirerek, renklerini değiştirerek ve karıştırarak çeşitliliği artırır.
- Düzenlileştirme: Ağırlık azalması büyük ağırlıkları cezalandırır; dropout ise hiçbir özelliğin vazgeçilmez hâle gelmemesi için eğitim sırasında birimleri rastgele devre dışı bırakır.
- Daha küçük veya önceden eğitilmiş modeller: Daha küçük bir modelin ezberleme alanı daha dardır; küçük bir veri kümesinde öğrenilmesi gereken ağırlık sayısını, erken katmanları dondurarak yapılan aktararak öğrenme azaltır.
- Erken durdurma: Her epoch'tan sonra doğrulama verilerini değerlendirip puan iyileşmeyi bıraktığında eğitimi durdurmak, modelin gürültüyü öğrenmesini önler.
- Tarafsız değerlendirme: Çapraz doğrulama, küçük veri kümelerinde genelleme hatasının daha güvenilir biçimde tahmin edilmesini sağlar; ayrı bir test kümesi ise hiperparametre ayarı sırasında doğrulama verilerine aşırı uyumu ortaya çıkarır.
Ultralytics YOLO eğitimi, erken durdurmayı patience bağımsız değişkeniyle uygular; bu değer, doğrulama başarımında iyileşme olmadan belirtilen sayıda epoch geçince çalıştırmayı sonlandırır (algılama için mAP50-95 kullanılır) ve eğitim sonuna kadar sürse bile en iyi epoch'un ağırlıklarını best.pt olarak kaydeder.
from ultralytics import YOLO
# Önceden eğitilmiş bir YOLO26n modeli yükle
model = YOLO("yolo26n.pt")
# 100 epoch'a kadar izin ver, ancak doğrulama performansı 20 epoch boyunca iyileşmezse durdur
results = model.train(data="coco8.yaml", epochs=100, patience=20)Varsayılan değer patience=100 şeklindedir; 1.000 görüntüden az içeren veri kümeleri için YOLO26 ince ayar kılavuzu, patience=20 ile birlikte epochs=50 kullanılmasını önerir.
Aşırı Öğrenme ve İlgili Terimler#
- Veri sızıntısı: Eğitim ve değerlendirme verilerinin örtüşmesi, aşırı öğrenmeyi gizler. Aynı videodan alınan neredeyse yinelenen kareler hem eğitim hem de doğrulama bölümlerine girdiğinde, eğitim kümesini ezberleyen bir model doğrulamada yine yüksek puan alır ve sorun ancak dağıtımdan sonra ortaya çıkar. Videoya veya sahneye göre bölmek bunu önler.
- Kestirme öğrenme: Model, hem eğitim hem doğrulama verilerinde bulunan filigran veya arka plan gibi yanıltıcı bir ipucuna dayanır. Doğrulama puanları iyi görünür; ancak ipucunun bulunmadığı yeni verilerde model başarısız olur.










