Batch Normalization'ın derin öğrenme modellerini nasıl stabilize ettiğini keşfedin. Ultralytics BatchNorm'u kullanarak eğitimi hızlandırmayı ve AI doğruluğunu artırmayı nasıl başardığını öğrenin.
Sık sık BatchNorm olarak anılan Toplu Normalleştirme, derin öğrenmede (DL) yapay sinir ağlarının eğitimini stabilize etmek ve hızlandırmak için kullanılan bir tekniktir. Önceki katmanların parametreleri güncellendikçe bir katmana gelen girdilerin dağılımının sürekli olarak değiştiği iç kovaryans kayması sorununu çözmek için geliştirilen BatchNorm, her mini toplu iş için bir katmana gelen girdileri standart hale getirir . Katman girişlerini ortalama sıfır ve standart sapma bir olacak şekilde normalleştirip, ardından öğrenilebilir parametrelerle ölçeklendirip kaydırarak, bu yöntem ağların daha yüksek öğrenme oranları kullanmasını sağlar ve başlatmaya karşı duyarlılığı azaltır.
Standart bir Convolutional Neural Network (CNN) ağında, veriler her bir katmanda bir dönüşüm gerçekleştiren katmanlardan geçer. Normalleştirme yapılmazsa, çı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. Toplu Normalleştirme genellikle aktivasyon fonksiyonundan (ReLU veya SiLU gibi) hemen önce uygulanır.
Bu süreç, eğitim sırasında iki ana adımı içerir:
Bu mekanizma, bir tür düzenleme işlevi görür ve eğitim sırasında aktivasyonlara az miktarda gürültü ekleyerek dropout katmanları gibi diğer tekniklere olan ihtiyacı biraz azaltır .
Batch Normalization'ı ResNet veya modern nesne algılayıcıları gibi mimarilere entegre etmek birkaç belirgin avantaj sağlar: - Daha yüksek doğruluk: Batch Normalization, - Daha yüksek verimlilik: Batch Normalization,
Toplu Normalleştirme, neredeyse tüm modern bilgisayar görme (CV) sistemlerinde temel bir unsurdur.
Toplu Normalleştirmeyi standart veri normalleştirmeden ayırmak yararlıdır.
PyTorch gibi derin öğrenme çerçeveleri PyTorch Batch Normalization'ın optimize edilmiş uygulamalarını içerir. Ultralytics YOLO , bu katmanlar otomatik olarak konvolüsyon bloklarına entegre edilir.
Aşağıdakiler Python kod parçacığı, bir modeli inceleyerek
nerede BatchNorm2d katmanlar mimari içinde yer almaktadır.
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ştiğini anlamak, geliştiricilerin Ultralytics kullanarak özel veri kümeleri üzerinde modelleri ince ayar yaparken, sınırlı verilerle bile eğitimin istikrarlı kalmasını sağlamasına yardımcı olur. .