Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Batch-Normalisierung

Explore how [batch normalization](https://www.ultralytics.com/glossary/batch-normalization) stabilizes training, prevents vanishing gradients, and boosts accuracy for models like [YOLO26](https://docs.ultralytics.com/models/yolo26/).

Die Batch-Normalisierung, häufig als BatchNorm bezeichnet, ist eine Technik, die im Deep Learning (DL) eingesetzt wird, um das Training künstlicher neuronaler Netze zu stabilisieren und zu beschleunigen. Eingeführt, um das Problem der internen Kovariatenverschiebung zu lösen – bei dem sich die Verteilung der Eingaben in eine Schicht kontinuierlich ändert, wenn die Parameter der vorherigen Schichten aktualisiert werden – standardisiert BatchNorm die Eingaben in eine Schicht für jede Mini-Batch. Durch die Normalisierung der Schichteingaben auf einen Mittelwert von Null und eine Standardabweichung von Eins sowie die anschließende Skalierung und Verschiebung mit lernbaren Parametern ermöglicht diese Methode den Netzwerken die Verwendung höherer Lernraten und reduziert die Empfindlichkeit gegenüber der Initialisierung.

Wie Batch-Normalisierung funktioniert

In einem standardmäßigen Convolutional Neural Network (CNN) fließen Daten durch Schichten, wobei jede Schicht eine Transformation durchführt. Ohne Normalisierung kann die Skala der Ausgabewerte stark variieren, was es für den Optimierungsalgorithmus schwierig macht, die besten Gewichte zu finden. Die Batch-Normalisierung wird in der Regel unmittelbar vor der Aktivierungsfunktion (wie ReLU oder SiLU) angewendet.

Der Prozess umfasst zwei Hauptschritte während des Trainings:

  1. Normalisierung: Die Schicht berechnet den Mittelwert und die Varianz der Aktivierungen innerhalb der aktuellen Batchgröße. Anschließend subtrahiert sie den Batch-Mittelwert und teilt durch die Batch-Standardabweichung.
  2. Skalierung und Verschiebung: Um sicherzustellen, dass das Netzwerk weiterhin komplexe Funktionen darstellen kann, werden zwei lernbare Parameter (Gamma und Beta) eingeführt. Diese ermöglichen es dem Netzwerk, die Normalisierung rückgängig zu machen, wenn die optimale Datenverteilung keine Standardnormalverteilung ist.

Dieser Mechanismus wirkt als eine Form der Regularisierung und reduziert den Bedarf an anderen Techniken wie Dropout-Schichten geringfügig, indem er den Aktivierungen während des Trainings eine geringe Menge an Rauschen hinzufügt .

Wichtige Vorteile beim KI-Training

Die Integration der Batch-Normalisierung in Architekturen wie ResNet oder moderne Objektdetektoren bietet mehrere deutliche Vorteile:

  • Faster Convergence: Models train significantly faster because the normalization prevents gradients from becoming too small or too large, effectively combating the vanishing gradient problem.
  • Stabilität: Das Netzwerk reagiert weniger empfindlich auf die spezifische Wahl der Anfangsgewichte und die Hyperparameteroptimierung, wodurch der Modelltrainingsprozess robuster wird.
  • Verbesserte Generalisierung: Durch die Glättung der Optimierungslandschaft trägt BatchNorm dazu bei, dass das Modell besser auf unbekannte Testdaten generalisiert werden kann.

Anwendungsfälle in der Praxis

Die Batch-Normalisierung ist ein fester Bestandteil fast aller modernen Computervisionssysteme (CV).

  1. Autonomes Fahren: In selbstfahrenden Autosystemen verarbeiten Modelle wie Ultralytics Videobilder, um Fußgänger, Fahrzeuge und Schilder detect . BatchNorm sorgt dafür, dass die Objekterkennungsschichten unabhängig von Änderungen der Lichtintensität oder Wetterbedingungen stabil bleiben und eine hohe mittlere durchschnittliche Genauigkeit (mAP) aufrechterhalten.
  2. Medizinische Bildgebung: Bei der Tumorerkennung in der medizinischen Bildgebung können die Scandaten zwischen verschiedenen MRT- oder CT-Geräten erheblich variieren. BatchNorm hilft dabei, diese Merkmale intern zu normalisieren , sodass sich die KI auf die strukturellen Anomalien statt auf die Unterschiede in der Pixelintensität konzentrieren kann, was die Diagnosegenauigkeit in KI-Lösungen für das Gesundheitswesen verbessert.

Batch-Normalisierung vs. Datennormalisierung

Es ist hilfreich, die Batch-Normalisierung von der Standard- Datennormalisierung zu unterscheiden.

  • Die Datennormalisierung ist ein Vorverarbeitungsschritt, der vor Beginn des Trainings auf den rohen Eingabedatensatz angewendet wird (z. B. Größenänderung von Bildern und Skalierung der Pixelwerte auf 0-1). Für diese Phase werden häufig Tools wie Albumentations verwendet.
  • Die Batch-Normalisierung findet während des Trainingsprozesses selbst innerhalb der Schichten des neuronalen Netzwerks statt. Sie passt die internen Werte des Netzwerks dynamisch an, während Daten durch das Netzwerk fließen.

Beispiel für die Umsetzung

Deep-Learning-Frameworks wie PyTorch enthalten optimierte Implementierungen der Batch-Normalisierung. In den Ultralytics YOLO werden diese Schichten automatisch in die Faltungsblöcke integriert.

Die folgenden Python Der Codeausschnitt zeigt, wie man ein Modell überprüft, um zu sehen, wo BatchNorm2d Die Schichten befinden sich innerhalb der Architektur.

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)

Das Verständnis der Wechselwirkungen zwischen diesen Schichten hilft Entwicklern bei der Verwendung der Ultralytics zur Feinabstimmung von Modellen auf benutzerdefinierten Datensätzen, wodurch sichergestellt wird, dass das Training auch bei begrenzten Datenmengen stabil bleibt.

Werden Sie Mitglied der Ultralytics

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten