Derin sinir ağlarında her mini-grup aktivasyonlarını standartlaştırarak eğitimi hızlandıran ve kararlı hâle getiren bir teknik.

Batch Normalization (Toplu Normalleştirme), derin sinir ağlarının eğitimini hızlandırmak ve kararlı hâle getirmek için 2015 yılında Ioffe ve Szegedy tarafından önerilen bir tekniktir. Temel fikir, her katmanın girdilerini mini-grup (mini-batch) bazında normalleştirmek ve böylece dahili kovaryat kaymasını (internal covariate shift) azaltmaktır. Bu teknik, daha yüksek öğrenme hızlarına olanak tanır, parametre başlatmaya duyarlılığı azaltır ve belirli durumlarda Dropout'a olan ihtiyacı ortadan kaldırabilir. Günümüzde derin öğrenme modellerinin neredeyse tamamında kullanılan standart bir bileşen hâline gelmiştir.

settings_suggest Nasıl Çalışır?

Batch Normalization, eğitim sırasında her mini-grup için şu adımları uygular: (1) Mini-gruptaki aktivasyonların ortalaması (μ) ve varyansı (σ²) hesaplanır. (2) Aktivasyonlar bu istatistiklere göre normalize edilir: x̂ = (x − μ) / √(σ² + ε). (3) Normalize edilmiş değerler, öğrenilebilir iki parametre olan gamma (γ) ve beta (β) ile yeniden ölçeklendirilip kaydırılır: y = γ·x̂ + β. Çıkarım (inference) aşamasında ise eğitim boyunca biriktirilen çalışan ortalama ve varyans değerleri kullanılır; bu sayede tek örnekli tahminler de tutarlı sonuçlar verir.

Temel Avantajları

speed Daha Hızlı Eğitim

Daha yüksek öğrenme hızları kullanılabilir; ağ yakınsama süresini önemli ölçüde kısaltır.

tune Başlatmaya Bağımsızlık

Ağırlık başlatma stratejisine duyarlılığı azaltarak modeli daha sağlam hâle getirir.

security Düzenlileştirme Etkisi

Hafif bir düzenlileştirici görevi görerek aşırı öğrenmeyi azaltabilir ve Dropout gereksinimini düşürür.

show_chart Gradyan Sorunlarını Hafifletir

Gradyan kaybı (vanishing gradient) ve patlaması (exploding gradient) sorunlarına karşı ağı daha dirençli kılar.

Toplu Normalleştirmenin Çalışma Mekanizması

  • check_circle Mini-Batch İstatistikleri: Her eğitim adımında mini-batch ortalaması (μ) ve varyansı (σ²) hesaplanır. Aktivasyonlar bu istatistiklerle normalize edilir.
  • check_circle Ölçek ve Kaydırma (γ, β): Normalize aktivasyonlar öğrenilebilir γ (scale) ve β (shift) parametreleriyle dönüştürülür. Model gerektiğinde orijinal dağılımı geri alabilir.
  • check_circle Çıkarım Zamanı Davranışı: Eğitimde batch istatistikleri; çıkarımda ise eğitim sırasında toplanan hareketli ortalama (running mean/var) kullanılır. Bu tek örnek çıkarımını mümkün kılar.
  • check_circle Gradyan Akışını İyileştirme: Aktivasyonları standart aralıkta tutarak gradyanların derin ağlarda sorunsuz akışını sağlar. Gradyan patlaması ve kayboluşunu azaltır.
  • check_circle Öğrenme Hızı Hassasiyetini Azaltma: BN sayesinde daha yüksek öğrenme hızları kullanılabilir; bu eğitimi hem hızlandırır hem kararlı kılar.
  • check_circle Dropout ile İlişki: BN kendi başına düzenleyici (regularizer) etki gösterir; BN kullanan ağlarda dropout genellikle daha az kullanılır.

Batch Normalization Varyantları ve Modern Kullanım

Batch normalization, Ioffe ve Szegedy'nin 2015 makalesinden bu yana derin öğrenmenin standart bileşeni hâline gelmiştir. Temel fikir basittir: her katman girişini normalize ederek 'iç kovaryans kaymasını' (internal covariate shift) azalt. Ancak BN'nin tüm senaryolarda ideal olmadığı durumlar vardır: küçük batch boyutlarında batch istatistikleri güvenilmez hâle gelir. Bu sorunu çözmek için geliştirilen varyantlar: Layer Normalization — her örnekte tüm özellikler üzerinde normalleştirme; Transformer'larda yaygın. Instance Normalization — stil aktarımı ve görüntü üretiminde kullanılır. Group Normalization — kanalları gruplara bölerek normalleştirme; küçük batch'lerle çalışır. RMS Norm — ortalama hesaplamadan kaçınan daha basit versiyon; LLaMA ve Qwen modellerinde tercih edilir. Modern LLM'ler (GPT, LLaMA, Mistral) genellikle Layer Normalization veya RMS Norm kullanır; batch boyutunun eğitim sırasında değişkenlik göstermesi ve çıkarımda tek örnek işleme batch normalization'ı dil modelleri için uygun kılmaz. CNN tabanlı görüntü modellerinde ise batch normalization hâlâ yaygın ve etkili.

quiz Sıkça Sorulan Sorular

  • check_circle Batch Normalization aktivasyon fonksiyonundan önce mi sonra mı uygulanır?: Her iki yaklaşım da kullanılmaktadır. Orijinal makalede aktivasyon öncesi (pre-activation) önerilmiş olsa da pratikte aktivasyon sonrası (post-activation) da yaygındır. Mimariye göre en iyi strateji deneysel olarak belirlenir.
  • check_circle Küçük batch boyutlarında neden sorunlu olabilir?: Batch boyutu çok küçük olduğunda (1-2 örnek), hesaplanan ortalama ve varyans tahminleri güvenilmez olur. Bu durumlarda Layer Normalization veya Group Normalization gibi alternatifler tercih edilir.
  • check_circle Batch Normalization ile Layer Normalization arasındaki fark nedir?: Batch Normalization, bir mini-gruptaki tüm örnekler üzerinden normalize eder; bu nedenle batch boyutuna bağımlıdır. Layer Normalization ise her örneği kendi özellik boyutları üzerinden normalize eder; Transformer ve dil modellerinde daha yaygın kullanılır.
  • check_circle Eğitim ve çıkarım sırasında davranış farklı mıdır?: Evet. Eğitimde her mini-grubun istatistikleri anlık olarak kullanılırken, çıkarım sırasında eğitim boyunca biriktirilen kayan ortalama (running mean) ve kayan varyans (running variance) değerleri kullanılır.
  • check_circle Batch normalization nedir?: Her sinir ağı katmanının girişini mini-batch ortalaması ve varyansıyla normalize ederek eğitimi hızlandıran ve kararlı kılan teknikdir. Gradyan akışını iyileştirir.
  • check_circle Batch normalization neden eğitimi hızlandırır?: Aktivasyonları standart aralıkta tutarak daha yüksek öğrenme hızı kullanımını mümkün kılar. Aynı zamanda gradyan patlaması ve kayboluşunu azaltır; bu da daha derin ağların eğitimini kolaylaştırır.
  • check_circle Layer norm ile batch norm arasındaki fark nedir?: Batch norm her özellik kanalında batch boyutu üzerinde normalleştirir. Layer norm her örnekte tüm özellikler üzerinde normalleştirir. Transformer ve LLM'lerde layer norm tercih edilir.
  • check_circle LLM'lerde neden batch norm kullanılmıyor?: Dil modelleri değişken uzunluklu dizilerle çalışır ve çıkarımda genellikle tek örnek işlenir. Batch norm bu senaryolarda güvenilmez istatistikler üretir. Layer norm ve RMS norm dil modelleri için daha uygundur.