Yolo Vision Shenzhen
Shenzhen
Şimdi katılın
Sözlük

Toplu Normalleştirme

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.

Batch Normalizasyon Nasıl Çalışı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:

  1. Normalleştirme: Katman, mevcut toplu iş boyutundaki etkinleştirmelerin ortalamasını ve varyansını hesaplar. Ardından toplu iş ortalamasını çıkarır ve toplu iş standart sapmasına böler.
  2. Ölçeklendirme ve Kaydırma: Ağın karmaşık fonksiyonları temsil edebilmesini sağlamak için, iki öğrenilebilir parametre (gama ve beta) eklenmiştir. Bunlar, optimal veri dağılımı standart normal dağılım değilse, ağın normalleştirmeyi geri almasını sağlar .

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 .

AI Eğitiminde Temel Avantajlar

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,

  • Daha Hızlı Yakınsama: Normalleştirme, gradyanların çok küçük veya çok büyük olmasını önleyerek, kaybolan gradyan sorununu etkili bir şekilde ortadan kaldırdığı için modeller çok daha hızlı eğitilir.
  • Kararlılık: Ağı, başlangıç ağırlıklarının belirli seçimine ve hiperparametre ayarlamasına karşı daha az duyarlı hale getirir ve model eğitim sürecini daha sağlam hale getirir.
  • Geliştirilmiş Genelleştirme: Optimizasyon ortamını düzgünleştirerek, BatchNorm modelin görülmemiş test verilerine daha iyi genelleştirilmesine yardımcı olur.

Gerçek Dünya Uygulamaları

Toplu Normalleştirme, neredeyse tüm modern bilgisayar görme (CV) sistemlerinde temel bir unsurdur.

  1. Otonom Sürüş: Otonom araç sistemlerinde, Ultralytics gibi modeller video karelerini işleyerek yayaları, araçları ve işaretleri detect . BatchNorm, aydınlatma yoğunluğundaki veya hava koşullarındaki değişikliklerden bağımsız olarak nesne algılama katmanlarının kararlı kalmasını sağlayarak yüksek ortalama hassasiyet (mAP) değerini korur.
  2. Tıbbi Görüntüleme: Tıbbi görüntülemede tümör tespiti yapılırken, farklı MRI veya CT makineleri arasında tarama verileri önemli ölçüde farklılık gösterebilir. BatchNorm, bu özellikleri dahili olarak normalleştirmeye yardımcı olur ve AI'nın piksel yoğunluğu farklılıklarından ziyade yapısal anomalilere odaklanmasını sağlayarak sağlık hizmetleri AI çözümlerinde tanı doğruluğunu artırır.

Toplu Normalleştirme ve Veri Normalleştirme

Toplu Normalleştirmeyi standart veri normalleştirmeden ayırmak yararlıdır.

  • Veri Normalleştirme, eğitim başlamadan önce ham girdi veri kümesine uygulanan bir ön işleme adımıdır (örneğin, görüntülerin boyutlandırılması ve piksel değerlerinin 0-1 aralığına ölçeklendirilmesi). Bu aşamada genellikle Albumentations gibi araçlar kullanılır .
  • Toplu Normalleştirme, eğitim süreci sırasında sinir ağı katmanlarının içinde gerçekleşir. Veri ağdan geçerken, ağın iç değerlerini dinamik olarak ayarlar.

Uygulama Örneği

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. .

Ultralytics topluluğuna katılın

Yapay zekanın geleceğine katılın. Küresel yenilikçilerle bağlantı kurun, işbirliği yapın ve birlikte büyüyün

Şimdi katılın