tag Overfitting
Bu sayfada Overfitting etiketi ile işaretlenmiş 4 yapay zeka kavramını bulabilirsiniz.
Dropout, derin sinir ağı eğitimi sırasında her güncelleme adımında belirli bir olasılıkla (dropout oranı, p) gizli katman nöronlarının çıkışlarını sıfırlayan ve bu sayede modelin belirli nöronlara aşırı bağımlı kalmasını engelleyen bir düzenlileştirme (regularization) yöntemidir. Srivastava, Hinton, Krizhevsky ve arkadaşları tarafından 2014 yılında yayımlanan "Dropout: A Simple Way to Prevent Neural Networks from Overfitting" başlıklı çalışmayla tanıtılan bu teknik, derin öğrenmenin standart araç kutusuna girmiştir. Tekniğin temel mantığı şöyledir: Eğitim sırasında her mini-batch için rastgele seçilen nöronlar ve onlara bağlı ağırlık bağlantıları geçici olarak kaldırılır. Geriye kalan ağ, seyrek bir alt ağ (sub-network) olarak eğitilir. Böylece her iterasyonda farklı bir mimari öğrenmeye zorlanır. Bu süreç, binlerce farklı ağı aynı anda eğitip tahminlerin ortalamasını almak gibi bir topluluk (ensemble) etkisi yaratır. Test ve çıkarım (inference) aşamasında dropout devre dışı bırakılır; tüm nöronlar aktif kalır. Ancak beklenti tutarlılığını korumak için her nöronun çıkışı (1 − p) faktörüyle çarpılır ya da eğitimde nöron çıkışları 1/(1−p) ile ölçeklenerek test aşamasında herhangi bir ölçeklendirme yapılmaz (inverted dropout). Dropout oranı, uygulamaya göre değişmekle birlikte gizli tam bağlı (fully-connected) katmanlar için 0,2–0,5 aralığı yaygın olarak kullanılır. Evrişimsel katmanlarda oranın daha düşük tutulması ya da Spatial Dropout gibi özel varyantların tercih edilmesi önerilir; tam bağlı olmayan katmanlarda standart dropout dikkat gerektiren yanlı gradyan davranışlarına yol açabilir. Dropout'un derin öğrenme pratiğindeki yeri son derece önemlidir: AlexNet, VGG, ResNet ve transformer temelli modellerin pek çok varyantında kullanılmaktadır. Bununla birlikte Batch Normalization gibi modern düzenlileştirme yöntemlerinin yaygınlaşmasıyla bazı mimarilerde rolü azalmış; hibrit kullanım ön plana çıkmıştır.
Dropout (Düzenlileştirme Tekniği)
Dropout, derin sinir ağı eğitimi sırasında her güncelleme adımında belirli bir olasılıkla (dropout oranı, p) gizli katman nöronlarının çıkışlarını sıfırlayan ve bu sayede modelin belirli nöronlara aşırı bağımlı kalmasını engelleyen bir düzenlileştirme (regularization) yöntemidir. Srivastava, Hinton, Krizhevsky ve arkadaşları tarafından 2014 yılında yayımlanan "Dropout: A Simple Way to Prevent Neural Networks from Overfitting" başlıklı çalışmayla tanıtılan bu teknik, derin öğrenmenin standart araç kutusuna girmiştir. Tekniğin temel mantığı şöyledir: Eğitim sırasında her mini-batch için rastgele seçilen nöronlar ve onlara bağlı ağırlık bağlantıları geçici olarak kaldırılır. Geriye kalan ağ, seyrek bir alt ağ (sub-network) olarak eğitilir. Böylece her iterasyonda farklı bir mimari öğrenmeye zorlanır. Bu süreç, binlerce farklı ağı aynı anda eğitip tahminlerin ortalamasını almak gibi bir topluluk (ensemble) etkisi yaratır. Test ve çıkarım (inference) aşamasında dropout devre dışı bırakılır; tüm nöronlar aktif kalır. Ancak beklenti tutarlılığını korumak için her nöronun çıkışı (1 − p) faktörüyle çarpılır ya da eğitimde nöron çıkışları 1/(1−p) ile ölçeklenerek test aşamasında herhangi bir ölçeklendirme yapılmaz (inverted dropout). Dropout oranı, uygulamaya göre değişmekle birlikte gizli tam bağlı (fully-connected) katmanlar için 0,2–0,5 aralığı yaygın olarak kullanılır. Evrişimsel katmanlarda oranın daha düşük tutulması ya da Spatial Dropout gibi özel varyantların tercih edilmesi önerilir; tam bağlı olmayan katmanlarda standart dropout dikkat gerektiren yanlı gradyan davranışlarına yol açabilir. Dropout'un derin öğrenme pratiğindeki yeri son derece önemlidir: AlexNet, VGG, ResNet ve transformer temelli modellerin pek çok varyantında kullanılmaktadır. Bununla birlikte Batch Normalization gibi modern düzenlileştirme yöntemlerinin yaygınlaşmasıyla bazı mimarilerde rolü azalmış; hibrit kullanım ön plana çıkmıştır.
Cross-Validation (Çapraz Doğrulama) (Çapraz Doğrulama)
Cross-validation (çapraz doğrulama), makine öğrenimi ve istatistikte bir modelin görülmemiş veriye ne kadar iyi genelleyeceğini tahmin etmek için kullanılan sistematik bir değerlendirme yöntemidir. Temel fikir basittir: mevcut veriyi tek seferlik eğitim/test bölümüne ayırmak yerine, veriyi birden fazla kez farklı biçimlerde bölüp her seferinde ayrı bir test seti oluşturmak ve sonuçların ortalamasını almaktır. En yaygın yöntem k-kat çapraz doğrulama (k-fold cross-validation) dır. Bu yöntemde veri seti k eşit parçaya bölünür; model k kez eğitilir ve her seferinde farklı bir parça test seti olarak ayrılırken kalan k-1 parça eğitim için kullanılır. Genellikle k=5 veya k=10 değeri tercih edilir. Ortaya çıkan k performans puanı ortalaması, modelin genel başarısını temsil eden tarafsız bir tahmin sunar. Çapraz doğrulamanın en kritik faydası aşırı uyum (overfitting) riskini düşürmesidir. Tek bir sabit test seti kullanıldığında model o teste göre dolaylı olarak optimize edilebilir; çapraz doğrulama ise her iterasyonda farklı veriler gördüğünden bu riski minimize eder. Özellikle sınırlı veri miktarı söz konusu olduğunda her örnek hem eğitim hem test için değerlendirileceğinden veriden maksimum bilgi çıkarılmış olur. Yöntemin varyantları arasında sınıf dağılımını koruyan tabakalı k-kat (stratified k-fold), her seferinde yalnızca bir örneği test seti bırakan bırak-bir-dışarıda (leave-one-out, LOOCV) ve zaman serisi analizine uygun kayan pencere yaklaşımı sayılabilir. Tabakalı k-kat, dengesiz sınıf dağılımı olan sınıflandırma problemlerinde standart tercih haline gelmiştir. Hesaplama maliyeti açısından bakıldığında çapraz doğrulama modeli k kez eğitmeyi gerektirir; büyük veri setlerinde ve derin öğrenme modellerinde bu ciddi bir kaynak artışı anlamına gelebilir. Bu durumlarda daha küçük k değerleri veya tek seferlik validasyon seti yaklaşımları tercih edilebilir. Bununla birlikte çoğu geleneksel makine öğrenimi senaryosunda çapraz doğrulama, model seçimi ve hiperparametre ayarı için vazgeçilmez bir araç olmayı sürdürmektedir.
Feature Selection (Özellik Seçimi)
Ozellik secimi (feature selection), bir makine ogrenimi modelinin egitiminde kullanilacak en bilgilendirici ve gercek anlam tasiyan ozellik alt kumesini belirlemek amaciyla gereksiz, tekrarli veya alakasiz ozelliklerin elenme surecidir. Cok sayida ozellik her zaman daha iyi model anlamina gelmez; aksine fazla ozellik overfitting riskini arttirir, egitim suresini uzatir ve modelin yorumlanmasini guclestirir. Ozellik secimi uc ana kategoride incelenir. Filter yontemleri, model egitiminden bagimsiz olarak ozellikleri istatistiksel kriterlerle puanlar ve siralar. Chi-squared test, mutual information ve Pearson korelasyon katsayisi bu kategorinin temsil ornekleridir. Uygulamasi hizlidir ve overfitting riski tasimaz; ancak ozellikler arasindaki etkilesimi dikkate almaz. Wrapper yontemleri, secilen ozellik alt kumesini dogrudan bir model uzerinde dener ve performansa gore degerlendirme yapar. Recursive Feature Elimination (RFE), ozellik sayisini katlanarak azaltip her adimda modeli yeniden egiterek en kotu ozelligi eler; bu surec hedef ozellik sayisina ulasana kadar devam eder. Wrapper yontemleri genellikle filter yontemlerine kiyasla daha iyi ozellik alt kumesi bulur ancak hesaplama maliyeti cok yuksektir. Embedded yontemler ozellik secimini model egitim surecininin icine gommus sistemlerdir. LASSO (L1 duzenlemesi) bazi ozellik agirliklarini sifira indirerek otomatik secim saglar. Random Forest ve XGBoost gibi agac tabanli modeller egitim sirasinda her ozelligin onemi hesaplar; bu skorlar dusuk onemli ozellikleri elemede kullanilir. Boyutsallak laneti (curse of dimensionality), yuksek ozellikli uzaylarda orneklerin birbirinden uzaklasip mesafe bazli algoritmalarin anlamsizlasmasi olgusunu ifade eder. Ozellik secimi bu problemi dogrudan adreste. Ek olarak secimlerin yorumlanabilirligi saglar: hangi ozelliklerin modeli surdurup surdurmediginin anlasilmasi, hem ayiklama hem de alan uzmanlarindan geri bildirim alma acisindan kritik oneme sahiptir. **Sik Sorulan Sorular** **Ozellik secimi ile boyut indirgeme (PCA gibi) arasindaki fark nedir?** Ozellik secimi mevcut ozelliklerin bir alt kumesini tutar; orijinal ozellikler yorumlanabilirligini korur. PCA gibi boyut indirgeme yontemleri yeni, yapay ozellikler olusturur; yorumlanabilirlik kaybolur ama bazen daha iyi genelleme saglar. **Kac ozellik yeterlidir?** Genel kural yoktur; veri boyutuna, ornek sayisina ve modele bagimlidir. Cross-validation ile farkli ozellik sayilari denenerek elbow noktasi belirlenir. **Ozellik secimi her zaman gerekli midir?** Sinirli ornek sayisi veya yuksek boyutlu veri durumunda buyuk fayda saglar. Derin ogrenme modelleri ozellik muhendisligini buyuk olcude otomatiklestirebilir; bu durumda acik ozellik secimi daha az kritik olabilir. **Kategorik ozellikler icin hangi yontem kullanilir?** Chi-squared test veya mutual information filter yontemleri kategorik ozellikler icin uygundur. Tree-based modellerin onem skorlari ise kategorik ve sayisal ozelliklerin karisik oldugu veri kumelerinde pratik bir embedded yontemdir.
Regularization (Düzenlileştirme)
Düzenlileştirme (Regularization), makine öğrenimi modellerinin eğitim verisine aşırı uyum sağlaması (overfitting) problemini önlemek için kayıp fonksiyonuna ek bir ceza terimi ekleyen teknikler ailesidir. Temel amaç, modelin eğitim setini ezberlemek yerine görülmemiş verilere genelleştirme kapasitesini artırmaktır. Aşırı öğrenme (overfitting), bir modelin eğitim verilerindeki gürültüyü ve ayrıntıları kapasitesi sayesinde öğrenmesi ama yeni veriye uygulandığında başarısız olması durumudur. Düzenlileştirme bu sorunu ağırlık değerlerini küçük tutmaya zorlayarak çözer: büyük ağırlıklar modelin tek veri noktalarına aşırı duyarlı olduğuna işaret eder; ceza terimi bu değerleri sıfıra yakın tutarak daha düz ve genelleşebilir bir karar sınırı öğretir. **L2 Düzenlileştirme (Ridge / Ağırlık Sönümlemesi)** en yaygın yöntemdir. Kayıp fonksiyonuna tüm ağırlıkların karelerinin toplamı λΣw² eklenir. Bu formülasyon büyük ağırlıkları cezalandırır ama hiçbirini tam sıfıra indirgemez; sonuç olarak tüm özellikler modelde küçük de olsa katkıda bulunur. Deep learning'de "weight decay" olarak da anılır ve PyTorch optimizer'larında `weight_decay` parametresiyle doğrudan kullanılır. **L1 Düzenlileştirme (Lasso)**, λΣ|w| ceza terimiyle bazı ağırlıkları tam sıfıra iter; bu sayede otomatik özellik seçimi gerçekleşir. Yüzlerce özellik içinden yalnızca birkaç kritik birinin önemli olduğu durumlar için idealdir. L1 ile L2'yi birleştiren Elastic Net, her iki avantajdan yararlanır. **Dropout**, derin sinir ağlarına özgü güçlü bir düzenlileştirme yöntemidir: eğitim sırasında her adımda nöronların rastgele bir oranı (ör. %20-50) devre dışı bırakılır. Model, belirli nöronlara güvenemeyeceği için farklı yollarla aynı sonuca ulaşmayı öğrenir; bu da ansambl etkisi yaratır. Çıkarım sırasında tüm nöronlar etkin olur ve ağırlıklar bırakma oranıyla ölçeklenir. **Erken Durdurma (Early Stopping)**, doğrulama kaybı artmaya başladığı noktada eğitimi kesen örtük bir düzenlileştirme yöntemidir. Model henüz eğitim setini ezberlemeye geçmeden öğrenme durdurulur. Uygulamada λ hiperparametresi kademeli grid search veya Bayesian optimizasyonla ayarlanır; çok büyük λ modeli yetersiz öğrenmeye (underfitting) iter.