Batch Normalization (Toplu Normalleştirme)
Derin sinir aglarinin egitimini hizlandirmak ve kararlilastirmak icin her katmanin aktivasyonlarini mini-batch uzerinden normalize eden teknik.
Batch Normalization (Toplu Normallesme), derin sinir aglarinin egitimi sirasinda her katmanin aktivasyonlarini mini-batch istatistiklerini kullanarak normalize eden ve bu sayede egitimi hizlandirip kararlilastiran bir tekniktir. 2015 yilinda Ioffe ve Szegedy tarafindan yayimlanan makale, BN'yi derin ogrenme camiasinin standart yontemlerinden biri haline getirdi. BN algoritmasini adim adim inceleyelim. Her mini-batch icin, hedef katmanda gelen aktivasyonlarin batch ortalamasisi ve varyansi hesaplanir. Bu istatistiklerle aktivasyonlar normalize edilir, yani ortalama 0, varyans 1 olur. Ardindan iki ogrenilir parametreyle (gama, beta) yeniden olcelkendirme yapilir: gama aktivasyonlarin olcegini, beta ise kaydirmasini belirler. Bu yeniden olceklendirme adimi, normalizasyonun modelin ifade gucunu kisitlamamasini saglar; model gerekirse orijinal dagilima benzer bir ciktiya geri donebilir. BN'nin en onemli pratik faydasi egitimin hizlanmasidir. Normallesme, gradyanlarin katmanlar arasinda daha tutarli bir buyuklukle akmasini saglar; bu cok daha yuksek learning rate kullanimi ve daha az epoch ile yakinsama anlamina gelir. Bazi deneyler BN'nin egitimi 5-10 kat hizlandirabildigini gostermistir. Mekanizma tartismali olsa da BN, "internal covariate shift" sorununu azalttigini iddia eden yaklasimla tanitilmistir. Derin ag egitiminde alt katmanlardaki agirlik guncellemeler, ust katmanlarin girdi dagilimini surdurur degistirir; bu degisim ogrenmeyi yavaslattir. BN her katmanin girdi dagilimini dengeleyerek bu sorunu azaltir. Transformer mimarisinin yayginlasmisiyla Layer Normalization (LayerNorm) on plana cikmiştir. LayerNorm batch boyutu yerine ozellik boyutu uzerinden normalizasyon yapar; tek ornekle de calistigindan RNN ve Transformer'larda tercih edilir. **Sik Sorulan Sorular** **Batch Normalization hangi konuma yerlestirilir?** Geleneksel olarak lineer katman veya evrisme katmani ile aktivasyon fonksiyonu arasina yerlestirilir. Ancak "pre-activation" yaklasiminda aktivasyondan once konumlandirma da kullanilir; performans farkli mimarilerde degisebilir. **Kucuk batch size'larda BN calisir mi?** Kucuk batch'lerde BN'nin istatistiksel tahminleri guvenilmez hale gelebilir. Bu durumda Group Normalization veya Layer Normalization daha kararlı alternatiflerdir. **BN neden inference'ta farkli davranir?** Egitimde mini-batch istatistikleri kullanilirken inference'ta egitim boyunca biriktirilen hareketli ortalama (running mean/variance) kullanilir. Bu model eval() ve train() modlari arasindaki farkliliktan kaynaklanir. **Transformer'lar neden LayerNorm kullanir?** Transformer'larin sekanslar ve self-attention yapilariyla calismasi, batch boyutuna bagli bir normalizasyonu pratik kilmaz. LayerNorm her ornegi bagimsiz normalize ettiginden bu mimariyle dogal bir uyum icindedir.