Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Batch Normalization

Yığın normalizasyonu, her kanalı mini yığın boyunca standartlaştırır ve ardından öğrenilmiş parametrelerle yeniden ölçeklendirir. Matematiği, çıkarım sırasındaki davranışı ve sınırları.

Yığın normalizasyonu veya BatchNorm, girdisinin her kanalını geçerli mini yığının ortalaması ve varyansıyla normalleştiren, ardından sonucu öğrenilen iki parametreyle yeniden ölçeklendiren bir sinir ağı katmanıdır. Sergey Ioffe ve Christian Szegedy bu yöntemi 2015'te tanıttı ve yöntem, Inception görüntü sınıflandırıcısının aynı doğruluğa 14 kat daha az eğitim adımında ulaşmasını sağladı. BatchNorm daha yüksek öğrenme oranlarına olanak tanır, eğitimi ağırlık başlatmaya daha az duyarlı hâle getirir ve ResNet gibi evrişimli sinir ağlarının (CNNs) standart bir bileşeni hâline gelmiştir.

Batch Normalization Nasıl Çalışır#

Bir evrişim katmanı için BatchNorm, her kanal başına bir ortalama μ ve bir varyans σ² hesaplar; bunun için yığındaki her görüntü ve her uzamsal konum üzerinden toplama yapar. Her x aktivasyonu ardından iki adımdan geçer:

  1. Normalleştirme: x̂ = (x − μ) / √(σ² + ε); PyTorch'ta varsayılan olarak 1e-5 olan küçük ε değeri sıfıra bölmeyi önler.
  2. Ölçekleme ve kaydırma: y = γ·x̂ + β; burada γ ve β, kanal başına öğrenilir. Bu parametreler, bir sonraki katmana uygun ortalama ve yayılımı ağın yeniden oluşturmasına, normalleştirmeyi tamamen geri almasına bile olanak tanır.

BatchNorm genellikle bir evrişim katmanı ile aktivasyon işlevi arasına yerleştirilir. β zaten kanal başına bir ofset eklediğinden, önceki evrişim katmanının bias değeri gereksizdir ve normalde devre dışı bırakılır.

Eğitim ve Çıkarım#

Eğitim sırasında her ileri geçiş, yığın istatistiklerinin üstel hareketli ortalamaları olarak bir hareketli ortalama ve hareketli varyansı da günceller. PyTorch'un BatchNorm2d katmanı, varsayılan olarak bunları her yeni yığına doğru %10 ilerletir (momentum=0.1). Çıkarım sırasında katman bunun yerine bu hareketli ortalamalarla normalleştirme yapar; böylece tek bir görüntünün tahmini artık aynı yığındaki diğer görüntülere bağlı olmaz. model.train() ve model.eval() iki davranış arasında geçiş yapar:

import torch

torch.manual_seed(0)
bn = torch.nn.BatchNorm2d(num_features=3)

# A batch of 8 three-channel feature maps with mean 5 and standard deviation 2
x = 5 + 2 * torch.randn(8, 3, 16, 16)

# Training mode normalizes with this batch's per-channel mean and variance
out = bn(x)
print(f"train mode: output mean {out.mean():.3f}, std {out.std():.3f}")

# The same call nudges the running averages 10% of the way toward the batch statistics
print(f"running mean {bn.running_mean[0]:.3f}, running var {bn.running_var[0]:.3f}")

# Eval mode normalizes with the running averages instead of the batch statistics
bn.eval()
out = bn(x)
print(f"eval mode:  output mean {out.mean():.3f}, std {out.std():.3f}")

Eğitim modunda, girdinin ortalaması 5 olmasına rağmen çıktının ortalaması 0.000, standart sapması 1.000 olur. Bir yığından sonra hareketli ortalama yalnızca 0'dan 0.496'ya, hareketli varyans ise 1'den 1.294'e yükselir; bu nedenle değerlendirme modu 3.920 ortalamalı çıktılar üretir. Hareketli ortalamaların yakınsaması için birkaç düzine yığın gerekir. Yanlış modda veya istatistikleri henüz oturmadan değerlendirilen bir model, gerçek doğruluğunun çok altında puan alır.

Çıkarım sırasında BatchNorm, sabit ve kanal başına doğrusal bir dönüşümdür; bu nedenle önceki evrişim katmanına katlanabilir: evrişim ağırlıkları γ/√(σ² + ε) ile çarpılır ve bias değeri β − γμ/√(σ² + ε) olur. YOLO26 içindeki standart evrişim bloğu, bias içermeyen bir evrişim katmanının ardından BatchNorm ve SiLU aktivasyonundan oluşur. Ultralytics, aynı çıktıları üretirken katmanı ortadan kaldırmak için tahmin ve dışa aktarma öncesinde bu BatchNorm katmanlarının her birini evrişim katmanıyla birleştirir.

Yığın Normalizasyonu Neden Yararlıdır#

İlk makale, BatchNorm'un faydasını, önceki katmanlar güncellendikçe her katmanın girdi dağılımının değişmesi olan iç kovaryat kaymasının azalmasına bağladı. Daha sonraki BatchNorm katmanlarından sonra rastgele dağılım kaymaları ekleyen deneyler, eğitimin neredeyse hiç etkilenmediğini gösterdi ve faydayı daha öngörülebilir gradyanlara sahip, daha düzgün bir kayıp yüzeyine bağladı; bu da optimizasyon algoritmasının daha büyük ve kararlı adımlar atmasını sağlar. Ön aktivasyonların ortalamasını sıfıra, varyansını bire yakın tutmak, doygun aktivasyonların düz bölgelerine girmesini de önleyerek kaybolan gradyanlara karşı yardımcı olur.

Her örnek, rastgele seçilmiş bir yığının istatistikleriyle normalleştirildiğinden BatchNorm, hafif bir düzenlileştirici görevi gören gürültü de ekler. İlk makale, bunun bazı durumlarda dropout ihtiyacını ortadan kaldırabileceğini bildirmiştir.

Sınırlamalar#

  • Küçük yığınlar: Her cihazda az sayıda görüntü bulunduğunda yığın istatistikleri gürültülü olur. GPU başına 2 görüntü kullanıldığında, her görüntü içindeki kanal gruplarının istatistiklerini hesaplayan Grup Normalizasyonu, ResNet-50 üzerinde BatchNorm'a kıyasla ImageNet hatasını %10,6 azaltmıştır.
  • Çoklu GPU eğitimi: Katmanlar, istatistikleri cihazlar arasında toplayan SyncBatchNorm biçimine dönüştürülmedikçe her GPU yığının kendi payıyla normalleştirme yapar; bu dönüşüm ek iletişim maliyeti getirir.
  • Dizi modelleri: Değişken uzunluktaki diziler ve yığına bağlı istatistikler birbiriyle pek uyuşmadığından transformer'lar bunun yerine katman normalizasyonu kullanır.
  • Veri normalizasyonu: Ön işleme sırasında ham girdileri, örneğin piksel değerlerini 255'e bölerek bir kez yeniden ölçeklendirir. BatchNorm ise her katmanda ve her eğitim adımında ara aktivasyonları normalleştirir.
  • Katman normalizasyonu: Her örneği kendi özellikleri üzerinden normalleştirir; bu nedenle eğitim ve çıkarım sırasında aynı şekilde çalışır ve yığın boyutuna bağlı değildir. Ortalamayı çıkarmayan daha basit bir tür olan RMSNorm, büyük dil modellerinde yaygındır.
  • Grup normalizasyonu: Her görüntünün kanallarını gruplara ayırır ve her grup içinde normalleştirme yapar; küçük yığınlarla eğitilen tespit ve segmentasyon modelleri için uygundur.
  • Örnek normalizasyonu: Her görüntünün her kanalını ayrı ayrı normalleştirerek görüntü başına kontrastı ortadan kaldırır. Hem eğitimde hem de test sırasında BatchNorm'un örnek normalizasyonuyla değiştirilmesi, hızlı sinirsel stil aktarımının kalitesini belirgin biçimde artırmıştır.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla