Ana içeriğe geç

Yan yana

Aşırı ÖğrenmevsYetersiz Öğrenme

Aşırı öğrenme (overfitting) ile yetersiz öğrenme (underfitting) arasındaki fark nedir?

Güncellendi 3 dk okuma8 fark

Kısaca

Aşırı öğrenen model eğitim verisini gürültüsüyle ezberler, yeni veride başarısız olur; yetersiz öğrenen, örüntüyü kaçıracak kadar basittir, her yerde zayıftır.

Aşırı Öğrenme

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 sayfasını oku

Yetersiz Öğrenme

Yetersiz öğrenme, bir modelin gerçek örüntüyü öğrenemeyecek kadar basit olması ya da kısa eğitilmesi yüzünden eğitim verisinde bile kötü sonuç vermesidir.

Yetersiz Öğrenme sayfasını oku

Aşırı Öğrenme ve Yetersiz Öğrenme karşılaştırması

ÖzellikAşırı ÖğrenmeYetersiz Öğrenme
Ne ters giderModel eğitim örneklerini gürültüsüyle birlikte ezberlerModel gerçek örüntüyü kaçırır
Eğitim puanıÇok yüksekDüşük
Yeni verideki puanEğitim verisindekinden çok daha kötüEğitim verisindeki kadar düşük
Model karmaşıklığıVeri miktarına göre fazla esnekProbleme göre fazla basit
Yanlılık ve varyansDüşük yanlılık, yüksek varyansYüksek yanlılık, düşük varyans
Tipik nedenlerAz örnek, çok büyük bir model, fazla uzun eğitimZayıf öznitelikler, ağır düzenlileştirme, çok erken durdurulan eğitim
ÇözümlerDaha fazla veri, daha basit bir model, düzenlileştirme, erken durdurmaDaha fazla kapasite, daha iyi öznitelikler, daha az düzenlileştirme, daha uzun eğitim
Daha fazla veri işe yarar mı?Evet, klasik çözümdürAynı türden veriyse nadiren

Fark, açıklamalı

Bir makine öğrenmesi modelinin, hiç görmediği verilerde de geçerli olan genel örüntüleri öğrenmesi beklenir. Aşırı öğrenme fazla öğrenmektir: model eğitim örneklerini gürültüleri ve tuhaflıklarıyla birlikte ezberler; bu yüzden eğitim verisinde çok iyi, yeni veride ise belirgin biçimde daha kötü sonuç verir. Yetersiz öğrenme ise az öğrenmektir: model girdiler ile çıktılar arasındaki gerçek ilişkiyi kaçırır; bu yüzden eğitim verisinde kötü, yeni veride de aynı ölçüde kötü sonuç verir.

İkisi, yanlılık-varyans ödünleşiminin (bias-variance trade-off) zıt uçlarıdır. Yetersiz öğrenmiş bir modelin yanlılığı yüksektir: yerleşik varsayımları fazla katıdır, tıpkı eğri bir örüntüye uydurulan düz bir çizgi gibi. Aşırı öğrenmiş bir modelin varyansı yüksektir: o kadar esnektir ki gördüğü belirli örneklere göre değişir; birkaç yüz örnekle ya da fazla uzun süre eğitilen büyük bir sinir ağı gibi. Hedef, ayrılmış verideki puanın en iyi olduğu aradaki noktadır.

Eğitim ve doğrulama puanlarını karşılaştırmak hangi sorunun olduğunu gösterir. İkisi de düşük ve birbirine yakınsa model yetersiz öğreniyordur; eğitim puanı mükemmel ama doğrulama puanı çok daha kötüyse aşırı öğreniyordur. Çözümler de zıt yönlere gider: yetersiz öğrenme daha esnek bir model, daha iyi öznitelikler (features), daha zayıf düzenlileştirme ve daha uzun eğitim ister; aşırı öğrenme ise daha fazla ve daha çeşitli veri, daha basit bir model, dropout ya da ağırlık azaltma (weight decay) gibi daha güçlü düzenlileştirme ve erken durdurma (early stopping) ister.

Sık yapılan bir yanlış, daha fazla verinin her zaman işe yaradığını düşünmektir. Daha fazla veri aşırı öğrenmenin klasik çözümüdür; ama yetersiz öğrenmiş bir model elindeki bilgiyi bile kullanamaz, bu yüzden aynı türden daha fazla veri onu nadiren düzeltir. Bir diğeri, yüksek bir eğitim puanının iyi bir model anlamına geldiği düşüncesidir: bu puan tek başına gerçek öğrenmeyi ezberden ayıramaz; performansın her zaman modelin hiç eğitilmediği veride ölçülmesi gerekmesinin nedeni de budur.

Hangisi nerede risk oluşturur?

Aşırı Öğrenme riski şu durumlarda var:

  • Model, eğitim verisinin miktarına göre büyük ya da esnek.
  • Eğitim, doğrulama puanını izleyen kimse olmadan çok sayıda epoch boyunca sürüyor.
  • Büyük bir modele küçük bir veri kümesiyle fazla adım boyunca ince ayar yapılıyor.
  • Öznitelikler gürültü, kimlik numaraları (ID) ya da yeni veride tekrarlanmayacak ayrıntılar taşıyor.

Yetersiz Öğrenme riski şu durumlarda var:

  • Düz bir çizgi gibi basit bir model, eğri ya da karmaşık bir örüntüyle karşı karşıya.
  • Girdiler, hedefi tahmin etmek için gereken bilgiyi taşımıyor.
  • Düzenlileştirme fazla güçlü ya da eğitim çok erken duruyor.
  • Bir ince ayar çalıştırması, modelin yeni biçimi kapması için fazla kısa.

Aynı eğriye fazla sıkı ve fazla gevşek uydurma (scikit-learn)

Aşırı Öğrenmepython
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import PolynomialFeatures

rng = np.random.default_rng(0)
X = rng.uniform(-3, 3, size=(30, 1)); y = X[:, 0] ** 2 + rng.normal(0, 1, 30)
X_new = rng.uniform(-3, 3, size=(30, 1)); y_new = X_new[:, 0] ** 2 + rng.normal(0, 1, 30)

wiggly = make_pipeline(PolynomialFeatures(15), LinearRegression()).fit(X, y)
print(wiggly.score(X, y))          # high: the curve bends through the noisy points
print(wiggly.score(X_new, y_new))  # much lower on new data: overfitting
Yetersiz Öğrenmepython
# The same data as in the overfitting example
line = LinearRegression().fit(X, y)  # a straight line can't follow a curve
print(line.score(X, y))              # near 0, even on its own training data
print(line.score(X_new, y_new))      # just as low on new data: underfitting

# In between: degree 2 matches the real pattern
good = make_pipeline(PolynomialFeatures(2), LinearRegression()).fit(X, y)
print(good.score(X_new, y_new))      # the best of the three on new data

Sık sorulan sorular

Aşırı öğrenme ile yetersiz öğrenme nasıl ayırt edilir?

Eğitim verisindeki puanı bir doğrulama kümesindeki puanla karşılaştırın. Yüksek bir eğitim puanının yanında çok daha düşük bir doğrulama puanı aşırı öğrenme, ikisinde de düşük puanlar ise yetersiz öğrenme demektir.

Yanlılık-varyans ödünleşimi nedir?

Yüksek yanlılığa sahip, fazla katı ve yetersiz öğrenen bir model ile yüksek varyansa sahip, eğitim örneklerine fazla duyarlı ve aşırı öğrenen bir model arasındaki gerilimdir. Bir modeli daha esnek yapmak yanlılığı düşürür ama varyansı artırır; bu yüzden en iyi model ikisinin arasında durur.

Büyük dil modelleri aşırı ya da yetersiz öğrenir mi?

İnce ayar sırasında ikisi de olabilir. Küçük bir veri kümesinde fazla adım, bir modelin eğitim örneklerini kelimesi kelimesine tekrarlamasına ve genel yeteneklerini yitirmesine yol açabilir; fazla az adım ise onu yeni biçimden ya da üsluptan yoksun bırakır. Doğrulama kaybını (validation loss) izlemek doğru süreyi bulmaya yardım eder.

Daha fazla

Ayarlar