
Makine öğreniminde hedef yalnızca eğitim verisinde iyi sonuç almak değildir; asıl amaç, modelin görülmemiş yeni verilerde de tutarlı performans göstermesidir. Bu noktada iki klasik sorun karşımıza çıkar:
Bu iki kavram, pratikte doğru teşhis ve doğru müdahale olmadan deneme-yanılmayı uzatabilir. Aşağıdaki bölümlerde, gerçek projelerde işinize yarayacak şekilde tespit ve önleme adımlarını bir araya getiriyoruz.
Overfitting, modelin eğitim verisinde hatayı çok düşürmesine rağmen validasyon/test gibi eğitimde görülmeyen veride hatanın daha yüksek kalması veya zamanla artması durumudur. Pratikte bu, eğitim metriği iyileşirken validasyon metriğinin iyileşmemesi veya eğrilerin ayrışması olarak gözlenir. (Kaynak: Google Machine Learning Crash Course)
Underfitting ise modelin eğitim setinde bile tatmin edici performans verememesidir. Bu; modelin aşırı basit olması, özelliklerin (feature’ların) yetersizliği veya eğitimin/optimizasyonun doğru yapılandırılmaması gibi nedenlerden kaynaklanabilir. (Kaynaklar: Google ML Crash Course, scikit-learn örneği)
Aşağıdaki tablo, günlük pratikte en sık karşılaşılan sinyalleri ve olası yorumları özetler:
| Gözlem | Olası durum | Ne kontrol edilir? |
|---|---|---|
| Eğitim performansı çok iyi, validasyon/test belirgin düşük | Overfitting | Model karmaşıklığı, regularization, veri bölme kurgusu |
| Eğitim performansı da düşük, validasyon/test de düşük | Underfitting | Model kapasitesi, özellikler, eğitim/optimizasyon ayarları |
| Eğitim kaybı düşerken validasyon kaybı bir noktadan sonra yükseliyor | Overfitting (özellikle eğitim uzadıkça) | Erken durdurma, düzenlileştirme, veri/özellik stratejisi |
| Hem eğitim hem validasyon kaybı yüksek ve plato yapıyor | Underfitting veya öğrenememe | Özellik mühendisliği, model türü seçimi, hedef/etiket kalitesi |
Overfitting/underfitting konuşmadan önce kritik bir ön koşul, değerlendirme verisinin (validation/test) eğitimden ayrı tutulması ve modelin görülmemiş veride ölçülmesidir. (Kaynak: Google ML Crash Course)
Pratikte, aşağıdaki gibi durumlar sonuçlarınızı olduğundan iyi/kötü gösterebilir; bu yüzden bölme ve veri hazırlama adımlarını gözden geçirmek faydalıdır:
En pratik teşhis yöntemlerinden biri, eğitim süreci boyunca eğitim/validasyon kaybı (loss) ve ilgili metriklerin birlikte izlenmesidir:
Bu yaklaşım, özellikle “aşırı öğrenme” belirtilerini erken yakalamak için yaygın olarak önerilir. (Kaynak: Google ML Crash Course)
Tek bir validasyon bölmesi bazen “şans eseri” iyi/kötü sonuç verebilir. k-katlı cross-validation, modeli farklı bölmelerde tekrar tekrar değerlendirerek hata tahminini daha kararlı hale getirir ve model seçimine yardımcı olur. (Kaynak: scikit-learn örneği)
Pratik kullanım önerisi:
Overfitting/underfitting çoğu zaman bias–variance dengesi ile açıklanır: Basit modeller genellikle daha yüksek bias ile underfitting’e yatkındır; çok esnek/karmaşık modeller ise variance’ı yükselterek overfitting riskini artırabilir. Bu çerçeve, model karmaşıklığı ile genelleme arasındaki gerilimi anlamak için kullanılır. (Kaynak: Stanford CS229 materyalleri)
Bu nedenle “modeli büyütmek” bazen çözüm, bazen de sorunun kendisi olabilir. Kritik olan, ölçüme dayalı ilerlemektir.
Overfitting’i azaltmanın en doğrudan yolu, model kapasitesini ihtiyaçla uyumlu hale getirmektir. Örnekler:
scikit-learn’ün underfitting/overfitting örneği, model karmaşıklığı arttıkça eğitim başarısının artabileceğini; ancak validasyon performansının bir noktadan sonra bozulabileceğini görselleştirmeyi amaçlar. (Kaynak: scikit-learn örneği)
Regularization, modelin aşırı karmaşık çözümlere gitmesini sınırlayarak genellemeyi iyileştirmeye çalışır. Uygulamada sık kullanılan yaklaşımlar:
Regularization, overfitting’i azaltmada en yaygın yöntemler arasında sayılır. (Kaynaklar: Google ML Crash Course, scikit-learn örneği)
İpucu: Düzenlileştirme gücü (hiperparametre), probleme göre değişebileceğinden küçük bir tarama ile validasyon performansına bakmak genellikle daha sağlıklı bir yaklaşımdır.
Eğitim uzadıkça validasyon hatası yükselmeye başlıyorsa, erken durdurma modelin overfitting’e gitmeden önce durdurulmasına yardımcı olabilir. Bu yaklaşım, özellikle iteratif öğrenme yapan yöntemlerde pratik bir “emniyet kemeri” gibi çalışır. (Kaynak: Google ML Crash Course)
Uygulama mantığı basittir: validasyon metriği belirli bir süre iyileşmiyorsa eğitim durdurulur ve en iyi noktadaki ağırlıklar korunur.
Daha fazla ve daha çeşitli eğitim verisi, modelin daha genel örüntüler öğrenmesine yardımcı olabilir. Görüntü, ses ve metin gibi alanlarda veri artırma (data augmentation) teknikleri de bu amaca hizmet eder. (Kaynak: Google ML Crash Course)
Dikkat: Veri artırma stratejilerini, probleme uygunluk ve validasyon metriği üzerinden doğrulamak önemlidir.
Bazı problemler (özellikle sınıf dağılımı dengesiz olanlar) için tek bir metrik, performansın hangi yönde “iyi” ya da “kötü” olduğunu tam yansıtmayabilir. Bu yüzden, iş hedefinize uygun metrik(ler)i seçip validasyon/test üzerinde tutarlı şekilde izlemek faydalıdır.
Underfitting çoğu zaman modelin veri içindeki örüntüyü temsil edecek kadar güçlü olmamasından kaynaklanır. Çözüm seçenekleri:
Bu yaklaşımın overfitting riskini de yükseltebileceği unutulmamalıdır. (Kaynak: scikit-learn örneği)
Model iyi bir sinyal görmüyorsa, daha karmaşık bir modele geçmek tek başına işe yaramayabilir. Şunları deneyin:
Bazen “underfitting” gibi görünen durum, yanlış eğitim ayarlarından kaynaklanır:
Aşağıdaki adımlar, hızlı bir şekilde “sorun nerede?” sorusuna yaklaşmanıza yardımcı olur:
Son dönemde bazı çalışmalar, overfitting’i ayrı bir validasyon seti olmadan daha erken sezmeye yönelik göstergeler önermektedir. Örneğin arXiv’de yayımlanan bir ön baskı, weight decay (L2 benzeri düzenlileştirme) perspektifinden “Overfitting–Underfitting Indicator (OUI)” gibi bir yaklaşımı tartışır. (Kaynak: arXiv ön baskı)
Önemli not: Bu tür yöntemler araştırma düzeyinde olabilir; farklı veri kümeleri ve gerçek dünya senaryolarında tutarlılık göstereceği garanti değildir. Üretim ortamında kullanmadan önce, klasik validasyon/cross-validation yaklaşımlarıyla karşılaştırmalı denemeler yapmak daha güvenli bir yoldur.
Test seti “son değerlendirme” içindir. Model seçimi ve hiperparametre ayarı test setine göre yapılırsa, test metriği artık gerçek genellemeyi temsil etmeyebilir. Alternatif: model seçimini validation veya cross-validation ile yapın; test setini en sona saklayın. (Kaynak: Google ML Crash Course)
Özellikle veri azsa, tek bir validasyon bölmesi yanıltıcı olabilir. Alternatif: k-katlı cross-validation gibi yöntemlerle sonuçların kararlılığını ölçün. (Kaynak: scikit-learn örneği)
Regularization gücü, model karmaşıklığı veya eğitim süresi için evrensel bir reçete yoktur. Alternatif: küçük bir deneme planı oluşturun, değişkenleri tek tek oynatın ve her adımda validasyon metriğini izleyin.
Bu kılavuz, overfitting ve underfitting’i yalnızca tanımlamakla kalmaz; aynı zamanda ölçüme dayalı şekilde yönetmenize yardımcı olacak pratik bir çerçeve sunar.
Yorumlar