In diesem Inhalt wird zuerst BatchNorm und die PyTorch-Implementierung sowie eine kurze Übersicht zum Vision Transformer eingeführt. Leser, die mit diesen Themen vertraut sind, können zum nächsten Abschnitt übergehen, in dem die Implementierung der ViTBNFFN- und ViTBN-Modelle mithilfe von PyTorch beschrieben wird. Anschließend werden einfache numerische Experimente durchgeführt, um diese Modelle auf dem MNIST-Datensatz zu trainieren und zu testen (ohne Bildvergrößerung) und die Ergebnisse mit denen des Standard-ViT zu vergleichen. Die bayesianische Optimierung wird mithilfe des BoTorch-Optimierungsmotors auf der Ax-Plattform durchgeführt. Der Abschluss erfolgt mit einer kurzen Zusammenfassung der Ergebnisse und einigen abschließenden Bemerkungen.
Batch Normalization, bekannt als BatchNorm, ist ein Verfahren zur Beschleunigung des Trainings in Convolutional Neural Networks. Es beinhaltet Schritte wie das Berechnen von Durchschnitt und Varianz über eine Batchgröße von Nₛ sowie das Normalisieren und Verschieben von Eingabeelementen für jedes Merkmal i. PyTorch bietet eine eingebaute BatchNorm1d-Klasse zur Batch-Normalisierung von 2D- oder 3D-Eingaben.
Die Standard Vision Transformer (ViT) teilt ein Bild in Patches auf und wandelt jedes Patch in einen Vektor um. Dieser Transformer besteht aus Embedding-Schichten, einem Transformer-Encoder und einem MLP-Head. Der Transformer-Encoder enthält mehrere Transformer-Blöcke mit MHSA- und MLP-Modulen sowie Residualverbindungen. BatchNorm kann in den Modellen ViTBNFFN und ViTBN implementiert werden, indem LayerNorm durch das BatchNorm-Verfahren ersetzt wird.
Ein numerisches Experiment vergleicht die Modelle ViT, ViTBNFFN und ViTBN auf dem MNIST-Datensatz ohne Bildvergrößerung. Die Modelle werden für 30 Epochen trainiert und getestet, und verschiedene Metriken wie Trainingszeit, Testgenauigkeit und Verlust werden verglichen. Die BatchNorm-Modelle zeigen eine signifikante Beschleunigung im Training im Vergleich zum Standard ViT. Das Experiment verwendet CrossEntropyLoss und den Adam-Optimierer bei festen Hyperparametern und führte in MLFlow auf einer NVIDIA-GPU durch.
Die Ergebnisse zeigen, dass die BatchNorm-Modelle ViTBNFFN und ViTBN beim Training und in den Tests gegenüber dem Standard ViT eine deutliche Zeitersparnis erzielen. Die genauen Prozentsätze dieser Gewinne wurden in den Grafiken und Tabellen des Experiments detailliert beschrieben.
Hinterlasse eine Antwort