shuffle Dropout Nasıl Çalışır?
Her eğitim adımında p olasılığıyla rastgele seçilen nöronlar sıfırlanır ve o adım boyunca hesaplamaya dahil edilmez. Geriye kalan nöronlar, kayıp hesaplanır, gradyanlar geri yayılır ve ağırlıklar güncellenir. Bir sonraki adımda farklı bir nöron kümesi seçilir. Bu sayede ağ, herhangi bir nöronun yokluğunda bile doğru tahmini üretmeyi öğrenir; nöronlar arasındaki ko-adaptasyon (co-adaptation) kırılır.
Test aşamasında hiç dropout uygulanmaz; tüm nöronlar aktiftir. Ağırlıklar eğitimde seyrelmeden kaynaklanacak büyüklük farkını telafi etmek için (1−p) çarpanıyla ölçeklenir. Modern derin öğrenme çerçevelerinin büyük çoğunluğu "inverted dropout" uygular: eğitim sırasında hayatta kalan nöronların çıkışları 1/(1−p) ile çarpılır; test aşamasında ekstra işleme gerek kalmaz.
Dropout Varyantları
shuffle Standart Dropout
Tam bağlı katmanlarda nöronları bağımsız olarak rastgele sıfırlar. En yaygın kullanılan formdur.
grid_on Spatial Dropout
CNN'lerde özellik haritalarının tüm kanalını sıfırlar. Uzamsal bağıntıyı bozarak evrişimsel katmanlarda daha etkilidir.
assessment MC Dropout
Test aşamasında da dropout açık tutularak birden fazla tahmin alınır; Bayesian belirsizlik tahmini için kullanılır.
auto_fix_high AlphaDropout
SELU aktivasyon fonksiyonuyla uyumlu; sıfırlama yerine negatif doygunluk değeri atar, self-normalizing özelliğini korur.
balance Avantajlar ve Kısıtlamalar
- check_circle Overfitting azaltımı: Modelin eğitim verisini ezberlemesini engeller; test ve gerçek dünya performansı arasındaki uçurumu kapatır.
- check_circle Ensemble etkisi: Binlerce farklı alt ağı dolaylı olarak eğitip birleştirmek yerine tek bir model eğitmek, hesaplama verimliliğini korur.
- check_circle Kolay uygulama: PyTorch'ta torch.nn.Dropout(p=0.5), TensorFlow/Keras'ta layers.Dropout(0.5) ile tek satırda eklenir.
- check_circle Daha yavaş yakınsama: Her adımda rastgele farklı bir ağ eğitildiğinden gradient güncellemeleri daha gürültülüdür; daha fazla epoch gerekebilir.
- check_circle CNN'lerde sınırlı etki: Evrişimsel katmanlardaki uzamsal bağıntılar nedeniyle standart dropout yetersiz kalabilir; Spatial Dropout tercih edilmelidir.
Dropout ve Modern Transformer Mimarileri
- check_circle Attention Dropout: Softmax çıktısındaki dikkat ağırlıklarına dropout uygulanır; Transformer'da hem dikkat hem ileri besleme katmanlarında ayrı dropout oranları kullanılabilir.
- check_circle Residual Dropout: Artık bağlantı (residual connection) eklenmeden önce alt katman çıktısına dropout uygulanır; GPT-2 ve BERT bu yaklaşımı kullanır.
- check_circle LLM'lerde Azalan Kullanım: Çok büyük dil modelleri (GPT-3, LLaMA, Gemma) eğitimde ya çok düşük dropout oranı (0.0-0.1) ya da hiç dropout kullanmaz; geniş veri ve model boyutu düzenleme etkisini üstlenir.
- check_circle Dropout ile Layer Normalization Etkileşimi: Pre-LN mimarilerinde (çoğu modern Transformer) Layer Norm katmandan önce uygulanır; bu konumda dropout daha kararlı eğitim sağlar. Post-LN'de dikkatli hiperparametre ayarı gerekir.
Dropout'a Alternatif Düzenleme Yöntemleri
- check_circle L1/L2 Düzenleme: Kayıp fonksiyonuna ağırlıkların norm cezası eklenir; L1 seyrek ağırlıklar üretirken L2 küçük ağırlıklara yönlendirir. Daha yorumlanabilir ancak dropout kadar esnek değil.
- check_circle Batch/Layer Normalization: Aktivasyonları normalize ederek iç kovaryat kaymasını azaltır; modern ağlarda dropout'un yerini büyük ölçüde almıştır.
- check_circle Erken Durdurma (Early Stopping): Doğrulama kaybı iyileşmeyi durdurduğunda eğitim kesilir; aşırı öğrenmenin basit ve etkili çözümüdür.
- check_circle Veri Artırma (Data Augmentation): Görüntü döndürme/kırpma, metin parafrazı gibi dönüşümlerle eğitim veri çeşitliliği artırılır; modelin gerçek dünya değişkenliğine maruz kalmasını sağlar ve overfittingi sınırlar.
quiz Sıkça Sorulan Sorular
- check_circle Dropout oranını nasıl seçmeli? Tam bağlı katmanlar için 0.3–0.5 iyi bir başlangıç noktasıdır. Küçük veri setlerinde 0.5'e yakın, büyük veri setlerinde 0.2'ye yakın değerler daha işlevseldir. Doğrulama seti kaybı izlenerek hiperparametre araması yapılması önerilir.
- check_circle Batch Normalization varken Dropout kullanmalı mıyım? Batch Normalization ve Dropout birlikte kullanıldığında bazen birbirini olumsuz etkileyebilir. Araştırmalar, BN sonrasında Dropout uygulamanın dikkat gerektirdiğini gösterir. Transformerlar gibi modern mimarilerde genellikle yalnızca BN veya Layer Normalization tercih edilir.
- check_circle Dropout neden sadece eğitimde aktif? Test aşamasında deterministik ve tutarlı tahminler gerekir. Dropout'u test sırasında da açık bırakmak (MC Dropout) yalnızca Bayesian belirsizlik kestirimi gibi özel amaçlarla yapılır.
- check_circle Recurrent ağlarda (LSTM/RNN) Dropout nasıl uygulanır? Standart dropout recurrent bağlantılara uygulandığında bilgi kaybı yaşanır. Variational Dropout (Gal & Ghahramani, 2016), her zaman adımında aynı maske kullanarak bu sorunu çözer ve LSTM'lerde yaygın olarak tercih edilir.
- check_circle Transformer modellerinde dropout hâlâ kullanılıyor mu? Küçük ve orta boyutlu Transformerlarda evet. Ancak GPT-3, LLaMA ve Gemma gibi büyük modellerde çok düşük oran (0.0) veya hiç dropout kullanılmaz; veri büyüklüğü ve model kapasitesi düzenleme rolünü üstlenir.