Ana içeriğe geç

Aşırı Öğrenme

İngilizcesi
Overfitting
Türkçe karşılığı
aşırı uyum
Okunuşu
ovırfiting

Günlük kullanımda iki ad da yaygın.

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/overfitting

Kısaca

Aşırı öğrenme, bir modelin eğitim verisini gürültüsüyle birlikte fazla yakından öğrenip yeni, görülmemiş verilerde kötü performans göstermesidir.

Aşırı öğrenme (overfitting) nedir?

Bir makine öğrenmesi modelinin, hiç görmediği verilerde de geçerli olan genel örüntüleri öğrenmesi beklenir. Aşırı öğrenme, modelin bunun yerine rastgele gürültü ve tuhaflıklar dahil eğitildiği belirli örnekleri ezberlemesi durumudur. Belirgin işareti büyük bir farktır: eğitim verisinde çok yüksek doğruluk, ayrı bir doğrulama ya da test kümesinde ise belirgin biçimde daha kötü sonuçlar.

Aşırı öğrenme, model veri miktarına kıyasla çok esnek olduğunda (örneğin birkaç yüz örnekle eğitilen büyük bir sinir ağı) ya da eğitim çok uzun sürdüğünde daha olasıdır. Yaygın çözümler; daha fazla ve daha çeşitli veri toplamak, daha basit bir model kullanmak, veri artırma (data augmentation), aşırı karmaşık çözümleri caydıran ağırlık azaltma (weight decay) ve dropout gibi düzenlileştirme (regularization) teknikleri ve doğrulama performansı iyileşmeyi bıraktığında eğitimi durduran erken durdurmadır (early stopping).

Konuyu anlamak yerine geçen yılki sınavın cevaplarını ezberleyen bir öğrenci düşünün. Deneme sınavını başarıyla geçer, ama sorular değişir değişmez zorlanır. Aşırı öğrenme, spam filtrelerinden fiyat tahmincilerine ve küçük bir veri kümesinde büyük dil modellerine ince ayar yapmaya kadar her tür makine öğrenmesinde bir endişe konusudur.

Bunun tersi, modelin gerçek örüntüyü yakalayamayacak kadar basit olduğu ve eğitim verisinde bile kötü performans gösterdiği yetersiz öğrenmedir (underfitting). İyi modeller ikisi arasında durur; bu denge çoğu zaman yanlılık-varyans ödünleşimi (bias-variance trade-off) olarak anlatılır. Aşırı öğrenme, test bilgisinin yanlışlıkla eğitime karışıp modeli gerçekte olduğundan daha iyi gösterdiği veri sızıntısından (data leakage) da farklıdır.

Önemli noktalar

  • Aşırı öğrenmiş bir model eğitim verisinde iyi, yeni verilerde kötü sonuç verir.
  • Performansı her zaman modelin hiç eğitilmediği ayrılmış veri üzerinde ölçün.
  • Daha fazla veri, daha basit modeller, düzenlileştirme ve erken durdurma aşırı öğrenmeyi azaltır.
  • Yetersiz öğrenme tersidir: model örüntüyü öğrenemeyecek kadar basittir.
  • Çapraz doğrulama (cross-validation), bir modelin ne kadar iyi genelleştiğine dair daha güvenilir bir tahmin sunar.

Örnek

Eğitim/test ayrımıyla aşırı öğrenmeyi fark etmek (scikit-learn)python
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier

X, y = make_classification(n_samples=500, n_features=20, flip_y=0.1, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

# An unlimited-depth tree can memorize the training set, noise included
deep = DecisionTreeClassifier(random_state=0).fit(X_train, y_train)
print(deep.score(X_train, y_train), deep.score(X_test, y_test))  # 1.0 vs noticeably lower

# Limiting depth forces simpler rules and usually narrows the gap
shallow = DecisionTreeClassifier(max_depth=4, random_state=0).fit(X_train, y_train)
print(shallow.score(X_train, y_train), shallow.score(X_test, y_test))

Sık sorulan sorular

Bir modelin aşırı öğrendiğini nasıl anlarsınız?

Modelin eğitim verisindeki performansını, eğitim sırasında hiç görmediği bir doğrulama ya da test kümesindeki performansıyla karşılaştırın. Eğitim doğruluğu artmaya devam ederken doğrulama doğruluğu duruyor veya kötüleşiyorsa model aşırı öğreniyordur.

Aşırı öğrenme ile yetersiz öğrenme arasındaki fark nedir?

Aşırı öğrenmiş model fazla karmaşıktır ve gürültüyü öğrenir; bu yüzden eğitim verisinde iyi, yeni verilerde kötü sonuç verir. Yetersiz öğrenmiş model ise fazla basittir ve her ikisinde de kötü sonuç verir.

Büyük dil modelleri aşırı öğrenebilir mi?

Evet. Büyük bir modele küçük bir veri kümesiyle çok fazla adım boyunca ince ayar yapmak, modelin eğitim örneklerini kelimesi kelimesine tekrarlamasına ve genel yeteneklerini kaybetmesine yol açabilir; bu yüzden uygulayıcılar doğrulama kaybını izler ve ince ayar çalıştırmalarını kısa tutar.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar