Batch Normalization
Toplu Normalleştirmenin (Batch Normalization) derin öğrenme modellerini nasıl stabilize ettiğini keşfet. Ultralytics YOLO26'nın eğitimi hızlandırmak ve yapay zeka doğruluğunu artırmak için BatchNorm'u nasıl kullandığını öğren.
Batch Normalization, sıklıkla BatchNorm olarak adlandırılır, derin öğrenme (DL) alanında yapay sinir ağlarının eğitimini stabilize etmek ve hızlandırmak için kullanılan bir tekniktir. İçsel kovaryans kayması sorununu—yani önceki katmanların parametreleri güncellendikçe bir katmana gelen girdi dağılımının sürekli değişmesi sorununu—çözmek için tanıtılan BatchNorm, bir katmana gelen girdileri her mini-batch için standartlaştırır. Katman girdilerini sıfır ortalama ve bir standart sapmaya sahip olacak şekilde normalize ederek, ardından öğrenilebilir parametrelerle ölçekleyip kaydırarak, bu yöntem ağların daha yüksek öğrenme hızları kullanmasını sağlar ve başlatma hassasiyetini azaltır.
Link to this sectionBatch Normalization 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, bu da optimizasyon algoritmasının en iyi ağırlıkları bulmasını zorlaştırır. Batch Normalization genellikle aktivasyon fonksiyonundan (ReLU veya SiLU gibi) hemen önce uygulanır.
Süreç, eğitim sırasında iki ana adımdan oluşur:
-
Normalizasyon: Katman, mevcut batch size içindeki aktivasyonların ortalamasını ve varyansını hesaplar. Ardından batch ortalamasını çıkarır ve batch standart sapmasına böler.
-
Ölçekleme ve Kaydırma: Ağın karmaşık fonksiyonları hala temsil edebildiğinden emin olmak için iki öğrenilebilir parametre (gamma ve beta) tanıtılır. Bunlar, optimal veri dağılımının standart bir normal dağılım olmaması durumunda ağın normalizasyonu geri almasını sağlar.
Bu mekanizma bir tür düzenlileştirme (regularization) görevi görür ve eğitim sırasında aktivasyonlara az miktarda gürültü ekleyerek Dropout katmanları gibi diğer tekniklere olan ihtiyacı hafifçe azaltır.
Link to this sectionYapay Zeka Eğitimindeki Temel Faydalar#
Batch Normalization'ı ResNet veya modern nesne dedektörleri gibi mimarilere entegre etmek birkaç belirgin avantaj sağlar:
- Daha Hızlı Yakınsama: Gradyanların çok küçük veya çok büyük hale gelmesini önlediği ve gradyan kaybolması sorununu etkili bir şekilde engellediği için modeller çok daha hızlı eğitilir.
- Kararlılık: Ağı, başlangıç ağırlıklarının özel seçimine ve hiperparametre ayarlamaya karşı daha az hassas hale getirerek model eğitimi sürecini daha sağlam kılar.
- İyileştirilmiş Genelleme: Optimizasyon ortamını pürüzsüzleştirerek, BatchNorm modelin görünmeyen test verilerine daha iyi genelleme yapmasına yardımcı olur.
Link to this sectionGerçek Dünya Uygulamaları#
Batch Normalization, hemen hemen tüm modern bilgisayarlı görü (CV) sistemlerinde temel bir unsurdur.
-
Otonom Sürüş: Kendi kendine giden araç sistemlerinde, Ultralytics YOLO26 gibi modeller yayaları, araçları ve tabelaları tespit etmek için video karelerini işler. BatchNorm, aydınlatma yoğunluğu veya hava koşullarındaki değişikliklere bakılmaksızın nesne tespiti katmanlarının kararlı kalmasını sağlayarak yüksek ortalama hassasiyeti (mAP) korur.
-
Tıbbi Görüntüleme: Tıbbi görüntülemede tümör tespiti yaparken, 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, böylece yapay zekanın piksel yoğunluğu farklılıkları yerine yapısal anormalliklere odaklanmasını sağlar ve sağlık sektörü yapay zeka çözümlerinde teşhis doğruluğunu artırır.
Link to this sectionBatch Normalization ve Veri Normalizasyonu Karşılaştırması#
Batch Normalization'ı standart veri normalizasyonundan ayırmak faydalıdır.
- Veri Normalizasyonu, eğitim başlamadan önce ham girdi veri setine (örneğin, görüntüleri yeniden boyutlandırma ve piksel değerlerini 0-1 arasına ölçekleme) uygulanan bir ön işleme adımıdır. Albumentations gibi araçlar genellikle bu aşama için kullanılır.
- Batch Normalization, eğitim sürecinin kendisi sırasında sinir ağı katmanlarının içinde gerçekleşir. Veriler ağdan geçerken ağın dahili değerlerini dinamik olarak ayarlar.
Link to this sectionUygulama Örneği#
PyTorch gibi derin öğrenme çerçeveleri, Batch Normalization'ın optimize edilmiş uygulamalarını içerir. Ultralytics YOLO mimarilerinde, bu katmanlar evrişim bloklarına otomatik olarak entegre edilmiştir.
Aşağıdaki Python kod parçacığı, BatchNorm2d katmanlarının mimari içinde 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 modelleri özel veri setlerinde ince ayarlamak için Ultralytics Platform kullandıklarında, sınırlı verilerle bile eğitimin kararlı kalmasını sağlamalarına yardımcı olur.






