Tüm yazılar
Matematik20 Haziran 2025

Batch Normalization: Derin Ağların Sessiz Katalizörü

2015'te Google'dan gelen üç sayfalık fikir, 1000 katmanlı sinir ağlarının eğitilebilmesinin yolunu açtı.

Matematik Karavanı 6 dk okuma 5 soru
Terazi ağırlıkları — normalizasyon ve dengeleme

Derin ağı eğitmek niye zordu?

2014'e kadar 10 katmandan derin sinir ağı eğitmek mümkün değildi. 20 katman? Hiç çalışmazdı. Yakınsama yok, kayıp infinity, NaN her yerde.

Sorun "internal covariate shift" olarak adlandırılmıştı: her katman bir önceki katmanın çıkışına bakıyor, ama o çıkış eğitim sırasında sürekli değişiyor. Yani her katman hareketli hedefi öğrenmeye çalışıyor.

Sergey Ioffe ve Christian Szegedy 2015'te Google'da bir makale yayımladı. Adı: "Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift". Üç sayfalık ana fikir tüm derin öğrenmeyi değiştirdi.

Algoritma

Her katmanın çıkışını mini-batch içinde normalize et: ortalama 0, varyans 1.

Mini-batch boyutu mm, katman çıkışları x1,x2,,xmx_1, x_2, \ldots, x_m. Her boyut için ayrı ayrı:

μ=1mixi,σ2=1mi(xiμ)2\mu = \frac{1}{m} \sum_i x_i, \quad \sigma^2 = \frac{1}{m} \sum_i (x_i - \mu)^2 x^i=xiμσ2+ϵ\hat{x}_i = \frac{x_i - \mu}{\sqrt{\sigma^2 + \epsilon}}

Sonra öğrenilen ölçek ve kaydırma uygula:

yi=γx^i+βy_i = \gamma \hat{x}_i + \beta

γ,β\gamma, \beta her boyut için öğrenilen parametreler — model normalizasyonu tersine çevirmeyi öğrenebilir, yani gerekirse.

Etki — anında kuşak değişimi

Batch normalization makalesinden sonra bir ay içinde:

  • Inception-v3: %4 daha doğru, %14 daha hızlı eğitim.
  • VGG: Eğitim zamanı yarıya düşer.
  • ResNet (2015): Batch norm olmadan 152 katmanlı ResNet mümkün değildi. Modern derin mimari onunla doğdu.

Bir yıl içinde her büyük CV modeli batch norm kullanır oldu.

Neden işe yarar — gerçek sebep

Ioffe ve Szegedy'nin "internal covariate shift" açıklaması yanlış çıktı. 2018'de MIT'den Santurkar ve ark. gösterdi: batch norm bu shift'i azaltmıyor, hatta bazen artırıyor. Asıl etki başka:

Kayıp yüzeyini yumuşatıyor. Gradyanlar daha az gürültülü, daha tahmin edilebilir. Bu, daha büyük öğrenme oranı ile eğitime izin verir.

Bu yeni açıklama akademik tartışmaya konu oldu. Pratikte: işe yarıyor, sebep ikinci derecede.

Sorunlar

Batch normalization güçlü ama mükemmel değil:

  1. Küçük batch sorunu. Batch 4-8 ise istatistikler güvenilmez, eğitim bozulur.
  2. Test farkı. Eğitimde batch istatistikleri kullanılır, testte koşan ortalama. İki dağılım uyuşmazsa kalite düşer.
  3. RNN/Transformer için kötü. Sıra modellerinde batch boyutu farklı zaman adımlarında farklıdır.
  4. Eğitim/inference karmaşıklığı. İki ayrı mod gerek.

Alternatifler — uzun bir liste

Batch norm sorunlarını çözen birçok varyant:

  • Layer Normalization (2016): Batch yerine her örneğin tüm özelliklerinde normalize et. Sıra modelleri için ideal. Transformer'ın standardı.
  • Group Normalization (2018): Kanalları gruplara böl, grup içinde normalize et. Küçük batch için iyi.
  • Instance Normalization (2016): Her örnek her kanal ayrı. Stil transferi için.
  • RMSNorm (2019): Sadece varyans, ortalama yok. LLaMA, Mistral, Gemma kullanır — %30 daha hızlı.

Modern LLM'ler:

  • BERT, GPT-2: LayerNorm
  • LLaMA, Mistral: RMSNorm
  • Eski CV modelleri: BatchNorm

Klasik benzetme

Bir orkestra düşün. Her enstrüman farklı ses seviyesinde çalıyorsa şef yönetemiyor. Batch normalization, her enstrümana "yapay ses seviyesi kalibratörü" takmak gibidir. Önce hepsini 0-1 aralığına getir; sonra şef (modelin öğrenen parametreleri) gerekirse hangisini öne çıkaracağını söyler.

Daha derin: 0 katmanın gücü

Batch norm öncesi, derin ağ + sigmoid kombinasyonunda gradyan kaybolması (vanishing gradient) standart problemdi. ReLU bunu kısmen çözdü; batch normalization tamamen çözdü.

Bugün 1000 katmanlı modellere eğitim mümkün. Normalizasyon olmadan bu hiç mümkün değildi.

Sade ders

Batch normalization hikâyesinden iki şey:

  1. Açıklama yanlış olabilir, sonuç gerçek. Ioffe-Szegedy'nin teorisi yanlıştı, ama makale geçerli sonuç verdi. Bu, mühendislik bilimle teoriden önce gelebileceğinin örneğidir.
  2. Üç sayfa bir alanı değiştirebilir. Şişirilmiş 30 sayfalık makaleler değil, küçük temiz fikirler tarih değiştirir.

Bağlam

Optimizer hikâyesi için: [[adamw-modern-llm-egitimlerinin-tek-optimizatoru]]. Vanishing gradient için: [[geri-yayilim-backpropagation]]. Modern mimari için: [[resnet-derin-aglar-icin-residual-connections]] (varsa), [[transformer-attention-is-all-you-need]]. RMSNorm için: [[llama-mimarisi-modern-llm-tasarimi]] (varsa).

Etiketler

batch normalizationderin öğrenmenormalizasyoneğitimResNet

Kendinizi Test Edin

Cevaplarınız profilinizde istatistik olarak saklanır.

1. Batch Normalization ne yapar?

2. Batch norm'un asıl etkisi nedir? (modern anlayış)

3. Layer Normalization'ın Batch Norm'dan farkı nedir?

4. RMSNorm hangi modellerde kullanılır?

5. Batch norm'un en büyük zayıflığı nedir?