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.
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
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
- Makine ÖğrenmesiYapay Zekâ ve Makine Öğrenmesi, s. 30Makine öğrenmesi, bilgisayarların elle yazılmış kurallar yerine verilerdeki örüntüleri öğrenerek tahmin yaptığı bir yapay zekâ dalıdır.
- Denetimli ÖğrenmeYapay Zekâ ve Makine Öğrenmesi, s. 12Denetimli öğrenme, modelin etiketli örneklerden, yani doğru cevaplarla eşleştirilmiş girdilerden öğrenip yeni veride çıktı tahmin ettiği makine öğrenmesidir.
- Yapay Sinir AğıYapay Zekâ ve Makine Öğrenmesi, s. 49Yapay sinir ağı, bağlantılı yapay nöron katmanlarından oluşan ve sayısal ağırlıkları ayarlayarak verilerden örüntü öğrenen bir makine öğrenmesi modelidir.
- Derin ÖğrenmeYapay Zekâ ve Makine Öğrenmesi, s. 14Derin öğrenme, görüntü ve metin gibi ham verilerden karmaşık örüntüleri öğrenmek için çok katmanlı sinir ağları kullanan bir makine öğrenmesi alt kümesidir.
- Fine-tuningYapay Zekâ ve Makine Öğrenmesi, s. 21Fine-tuning, önceden eğitilmiş bir makine öğrenmesi modelini tek bir göreve uyarlamak için daha küçük ve özel bir veri kümesiyle ek olarak eğitme sürecidir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin