Batch Normalization
Batch Normalization'ın derin öğrenme modellerini nasıl kararlı hâle getirdiğini keşfet. Ultralytics YOLO26'nın eğitimi hızlandırmak ve yapay zekâ doğruluğunu artırmak için BatchNorm'u nasıl kullandığını öğren.
Batch Normalizasyonu, sıklıkla BatchNorm olarak adlandırılır ve derin öğrenmede (DL) yapay sinir ağlarının eğitimini kararlı hâle getirmek ve hızlandırmak için kullanılan bir tekniktir. Önceki katmanların parametreleri güncellendikçe bir katmana giren girdilerin dağılımının sürekli değiştiği, iç kovaryat kayması sorununu çözmek için geliştirilen BatchNorm, her mini yığın için bir katmana giren girdileri standartlaştırır. Katman girdilerini ortalaması sıfır ve standart sapması bir olacak şekilde normalize edip ardından öğrenilebilir parametrelerle ölçeklendiren ve kaydıran bu yöntem, ağların daha yüksek öğrenme oranları kullanmasını sağlar ve başlatmaya duyarlılığı azaltır.
Batch Normalizasyonu Nasıl Çalışır?#
Standart bir Evrişimli Sinir Ağında (CNN) veriler, her katmanın bir dönüşüm gerçekleştirdiği katmanlar boyunca akar. Normalizasyon olmadan çıktı değerlerinin ölçeği büyük ölçüde değişebilir ve bu da optimizasyon algoritmasının en iyi ağırlıkları bulmasını zorlaştırır. Batch Normalizasyonu genellikle aktivasyon fonksiyonundan hemen önce uygulanır (ReLU veya SiLU gibi).
Eğitim sırasında süreç iki temel adımdan oluşur:
-
Normalizasyon: Katman, mevcut yığın boyutu içindeki aktivasyonların ortalamasını ve varyansını hesaplar. Ardından yığın ortalamasını çıkarır ve yığın standart sapmasına böler.
-
Ölçeklendirme ve Kaydırma: Ağın karmaşık fonksiyonları temsil etmeye devam edebilmesini sağlamak için iki öğrenilebilir parametre (gamma ve beta) eklenir. Bunlar, en uygun veri dağılımı standart normal dağılım değilse ağın normalizasyonu geri almasına olanak tanır.
Bu mekanizma bir tür düzenlileştirme görevi görür ve eğitim sırasında aktivasyonlara az miktarda gürültü ekleyerek Dropout katmanları gibi diğer tekniklere duyulan ihtiyacı bir miktar azaltır.
Yapay Zekâ Eğitimindeki Temel Faydalar#
Batch Normalizasyonunu ResNet gibi mimarilere veya modern nesne algılayıcılara entegre etmek çeşitli belirgin avantajlar sağlar:
- Daha Hızlı Yakınsama: Normalizasyon gradyanların çok küçük veya çok büyük olmasını önlediği için modeller önemli ölçüde daha hızlı eğitilir ve kaybolan gradyan sorunuyla etkili biçimde mücadele edilir.
- Kararlılık: Ağı, başlangıç ağırlıklarının belirli seçimine ve hiperparametre ayarlamasına daha az duyarlı hâle getirerek model eğitimi sürecini daha dayanıklı kılar.
- Geliştirilmiş Genelleme: BatchNorm, optimizasyon alanını yumuşatarak modelin daha önce görülmemiş test verilerine daha iyi genelleme yapmasına yardımcı olur.
Gerçek Dünya Uygulamaları#
Batch Normalizasyonu, neredeyse tüm modern bilgisayarlı görü (CV) sistemlerinde temel bir bileşendir.
-
Otonom Sürüş: Otonom araç sistemlerinde Ultralytics YOLO26 gibi modeller yayaları, araçları ve işaretleri algılamak için video karelerini işler. BatchNorm, nesne algılama katmanlarının aydınlatma yoğunluğu veya hava koşullarındaki değişikliklerden bağımsız olarak kararlı kalmasını sağlayarak yüksek ortalama kesinliği (mAP) korur.
-
Tıbbi Görüntüleme: Tıbbi görüntülerde tümör tespiti gerçekleştirilirken tarama verileri farklı MRI veya CT cihazları arasında önemli ölçüde değişebilir. BatchNorm, bu özellikleri dahili olarak normalize etmeye yardımcı olur ve yapay zekânın piksel yoğunluğu farklılıkları yerine yapısal anomalilere odaklanmasını sağlayarak sağlık hizmetlerinde yapay zekâ çözümlerinde tanı doğruluğunu artırır.
Batch Normalizasyonu ve Veri Normalizasyonu Karşılaştırması#
Batch Normalizasyonunu standart veri normalizasyonundan ayırt etmek faydalıdır.
- Veri Normalizasyonu, eğitim başlamadan önce ham girdi veri kümesine uygulanan bir ön işleme adımıdır (ör. görüntüleri yeniden boyutlandırmak ve piksel değerlerini 0-1 aralığına ölçeklendirmek). Albumentations gibi araçlar bu aşamada sıklıkla kullanılır.
- Batch Normalizasyonu, eğitim sürecinin kendisi sırasında sinir ağı katmanlarının içinde gerçekleşir. Veriler ağdan akarken ağın dahili değerlerini dinamik olarak ayarlar.
Uygulama Örneği#
PyTorch gibi derin öğrenme çerçeveleri, Batch Normalizasyonunun optimize edilmiş uygulamalarını içerir. Ultralytics YOLO mimarilerinde bu katmanlar evrişim bloklarına otomatik olarak entegre edilir.
Aşağıdaki Python kod parçacığı, mimari içinde BatchNorm2d katmanlarının nerede bulunduğunu görmek için bir modelin nasıl inceleneceğini gösterir.
from ultralytics import YOLO
# Load the YOLO26n model (nano version)
model = YOLO("yolo26n.pt")
# Print the model structure to view layers
# You will see 'BatchNorm2d' listed after 'Conv2d' layers
print(model.model)Bu katmanların nasıl etkileşime girdiğini anlamak, geliştiricilerin Ultralytics Platformunu özel veri kümelerinde modelleri ince ayarlamak için kullanırken eğitim sürecinin sınırlı verilerle bile kararlı kalmasını sağlamasına yardımcı olur.









