Aus dem Englischen übersetzt

Ein Bottleneck-Block ist ein Baustein residueller Netzwerke, der 1x1-Faltungen zur Reduzierung des Rechenaufwands verwendet und so tiefere Netzwerke ermöglicht. Er wurde 2015 für die Bilderkennung eingeführt und gewann die ILSVRC.

Ein Bottleneck-Block ist ein spezialisierter Residualblock, der in tiefen neuronalen Netzen verwendet wird, insbesondere in der ResNet-Architektur. Er wurde 2015 von Forschern bei Microsoft Research (darunter Kaiming He, Xiangyu Zhang, Shaoqing Ren und Jian Sun) für die Bilderkennung eingeführt, und das resultierende Netzwerk gewann die ImageNet Large Scale Visual Recognition Challenge (ILSVRC) dieses Jahres. Der Block ist darauf ausgelegt, die Rechenkosten zu reduzieren und gleichzeitig die Repräsentationsfähigkeit zu erhalten, was das Training sehr tiefer Netze mit Hunderten von Schichten ermöglicht.

Der Bottleneck-Block ist eine Verfeinerung des Standard-Residualblocks. In einem Standard-Residualblock ist die Funktion \(F(x)\) typischerweise ein Stapel aus zwei oder drei Faltungsschichten. Der Bottleneck-Block ersetzt dies durch einen Stapel aus drei Schichten: eine 1x1-Faltung, die die Kanaldimension reduziert, eine 3x3-Faltung, die auf der reduzierten Dimension arbeitet, und eine weitere 1x1-Faltung, die die ursprüngliche Kanaldimension wiederherstellt. Dieses Design reduziert die Anzahl der Parameter und Gleitkommaoperationen (FLOPs) im Vergleich zur direkten Verwendung von zwei 3x3-Faltungen, während die Fähigkeit erhalten bleibt, komplexe Merkmale zu lernen.

Architektur

Ein Bottleneck-Block besteht aus drei Faltungsschichten. Die erste Schicht ist eine 1x1-Faltung, die die Anzahl der Kanäle um einen Faktor (typischerweise 4) reduziert. Wenn die Eingabe beispielsweise 256 Kanäle hat, reduziert die erste 1x1-Faltung sie auf 64 Kanäle. Die zweite Schicht ist eine 3x3-Faltung, die auf diesen 64 Kanälen arbeitet und räumliche Merkmalsextraktion durchführt. Die dritte Schicht ist eine weitere 1x1-Faltung, die die Kanalanzahl wieder auf 256 erhöht. Die Eingabe des Blocks wird über eine Residualverbindung, die eine Identitätsabbildung ist und die Faltungsschichten umgeht, zum Ausgang addiert.

Die Residualverbindung ist definiert als \(y = F(x) + x\), wobei \(F(x)\) der Ausgang des Dreischichten-Stapels ist. Diese Addition ist möglich, weil Eingabe und Ausgabe die gleichen Dimensionen haben. Wenn sich die Dimensionen von Eingabe und Ausgabe unterscheiden (zum Beispiel, wenn der Block die Anzahl der Kanäle ändert), wird eine Projektionsverbindung verwendet: \(y = F(x) + P(x)\), wobei \(P(x)\) typischerweise eine 1x1-Faltung mit einer Schrittweite von 2 ist, um die räumlichen Dimensionen anzupassen.

Der Bottleneck-Block wird in ResNet-50, ResNet-101 und ResNet-152 verwendet, die tiefere Varianten des ursprünglichen ResNet-34 sind. In diesen Netzwerken ersetzt der Bottleneck-Block die zweischichtigen Residualblöcke, die in flacheren Versionen verwendet werden. Die Reduzierung der Berechnung ermöglicht es dem Netzwerk, mehr Schichten zu haben, ohne eine proportionale Zunahme der Trainingszeit oder des Speicherverbrauchs.

Motivation

Die primäre Motivation für den Bottleneck-Block ist die Recheneffizienz. In einem Standard-Residualblock mit zwei 3x3-Faltungen beträgt die Anzahl der Parameter für eine gegebene Eingangskanalanzahl \(C\) \(2 \times 9 \times C^2 = 18C^2\). In einem Bottleneck-Block beträgt die Parameteranzahl \(1 \times 1 \times C \times (C/4) + 3 \times 3 \times (C/4) \times (C/4) + 1 \times 1 \times (C/4) \times C = C^2/4 + 9C^2/16 + C^2/4 = (8/16 + 9/16)C^2 = 17C^2/16\), was ungefähr 1,06C^2 entspricht, also etwa 6% der Parameter des Standardblocks. Diese Reduzierung ist für große Kanalanzahlen signifikant.

Das Bottleneck-Design trägt auch zur Trainingsstabilität bei. Durch die Reduzierung der Parameteranzahl verringert der Block das Risiko der Überanpassung und ermöglicht tiefere Netzwerke. Die Residualverbindung, ein Schlüsselelement des Blocks, hilft, das Problem der verschwindenden Gradienten zu mildern und ermöglicht ein effektives Training von Netzwerken mit Hunderten von Schichten.

Beziehung zu Residualnetzwerken

Der Bottleneck-Block ist eine spezifische Implementierung des Residualblock-Konzepts. Die Residualverbindung wurde im ursprünglichen ResNet-Papier eingeführt, das zeigte, dass das Hinzufügen von Identitätsabbildungen zu den Schichten eines Netzwerks das Training sehr tiefer Netzwerke ermöglicht. Der Bottleneck-Block ist eine Optimierung dieser Idee, die es praktikabel macht, Netzwerke mit 50, 101 oder 152 Schichten zu trainieren.

In einem Residualnetzwerk lernen die Schichten Residualfunktionen in Bezug auf die Schichteingaben. Der Bottleneck-Block folgt diesem Prinzip: Die drei Faltungsschichten lernen ein Residuum \(F(x)\), und der Ausgang ist \(F(x) + x\). Dies ermöglicht es dem Netzwerk, bei Bedarf Identitätsabbildungen zu lernen, was für die Optimierung vorteilhaft ist.

Der Erfolg des Bottleneck-Blocks in ResNet beeinflusste viele nachfolgende Architekturen. Beispielsweise verwendet U-Net Residualverbindungen in seiner Encoder-Decoder-Struktur, und Transformer-Modelle verwenden Residualverbindungen in ihren Aufmerksamkeits- und Feed-Forward-Schichten. Das Bottleneck-Konzept wurde auch in anderen Bereichen adaptiert, wie zum Beispiel in großen Sprachmodellen und generativen KI-Modellen.

Recheneffizienz

Die Recheneffizienz des Bottleneck-Blocks wird in FLOPs (Gleitkommaoperationen) gemessen. Für einen Eingabetensor der Größe \(H \times W \times C\) benötigt ein Standard-Residualblock mit zwei 3x3-Faltungen ungefähr \(2 \times 9 \times C^2 \times H \times W\) FLOPs. Ein Bottleneck-Block mit einem Reduktionsfaktor von 4 benötigt ungefähr \(1 \times 1 \times C \times (C/4) \times H \times W + 3 \times 3 \times (C/4) \times (C/4) \times H \times W + 1 \times 1 \times (C/4) \times C \times H \times W = (C^2/4 + 9C^2/16 + C^2/4) \times H \times W = (17C^2/16) \times H \times W\). Das sind etwa 6% der FLOPs des Standardblocks.

Diese Reduzierung ist besonders wichtig für das Training auf Hardware mit begrenztem Speicher oder begrenzter Rechenleistung, wie zum Beispiel AWS-Instanzen oder Google Cloud-TPUs. Sie ermöglicht auch schnellere Inferenz, was für Echtzeitanwendungen wie Waymos selbstfahrende Autos oder Tesla Autopilot entscheidend ist.

Varianten und Verbesserungen

Es wurden mehrere Varianten des Bottleneck-Blocks vorgeschlagen. Eine häufige Variante ist der Pre-Activation-Bottleneck, bei dem Batch-Normalisierung und Aktivierungsfunktionen vor den Faltungen angewendet werden, anstatt danach. Dies verbesserte nachweislich das Training und die Regularisierung in späteren Arbeiten.

Eine weitere Variante ist der invertierte Bottleneck, der in Modellen wie MobileNetV2 verwendet wird. In diesem Design erweitert die 1x1-Faltung zuerst die Kanaldimension, dann arbeitet eine Tiefenfaltung (Depthwise) 3x3 auf der erweiterten Dimension, und eine weitere 1x1-Faltung reduziert sie wieder. Dies ist das Gegenteil des Standard-Bottlenecks, aber es ist effizienter für mobile und eingebettete Geräte.

In Batch-Normalisierung und Layer-Normalisierung enthält der Bottleneck-Block oft Normalisierungsschichten zwischen den Faltungen. Die Residualverbindung hilft, die Varianz der Schichteingaben zu stabilisieren, und einige Arbeiten schlagen vor, die Residualverbindung um \(1/L\) zu skalieren, wobei \(L\) die Gesamtzahl der Residualschichten ist, um das Training weiter zu stabilisieren.

Anwendungen

Der Bottleneck-Block wird in vielen modernen Modellen verwendet. In der Computer Vision ist er der Kernbaustein von ResNet, das weit verbreitet für Bildklassifikation, Objekterkennung und Segmentierung eingesetzt wird. Beispielsweise verwendet Intuitive Surgical Deep Learning für die medizinische Bildanalyse, und Fermata verwendet Computer Vision für die Landwirtschaft.

In der Verarbeitung natürlicher Sprache werden Residualverbindungen in Transformer-Modellen verwendet, die die Grundlage für große Sprachmodelle wie OpenAIs GPT und Anthropics Claude bilden. Obwohl diese Modelle keine 1x1-Faltungen verwenden, ist das Konzept der Residualverbindung von ResNet übernommen.

Im Reinforcement Learning wurde die ResNet-Architektur mit Bottleneck-Blöcken in Systemen wie DeepMinds AlphaGo Zero und AlphaStar verwendet, die Residualnetzwerke zur Verarbeitung von Spielzuständen oder Spielbildschirmen einsetzen.

Auswirkungen auf das Deep Learning

Der Bottleneck-Block hatte einen bedeutenden Einfluss auf das Gebiet des Deep Learning. Durch die Ermöglichung des Trainings sehr tiefer Netzwerke trug er zum raschen Fortschritt bei der Bilderkennung und anderen Aufgaben bei. Die Idee, 1x1-Faltungen zur Reduzierung der Berechnung zu verwenden, wurde in vielen nachfolgenden Architekturen übernommen, einschließlich U-Net und verschiedenen generativen Modellen.

Die Residualverbindung, ein Schlüsselelement des Bottleneck-Blocks, ist zu einem Standardmotiv im Design neuronaler Netze geworden. Sie wird in Transformer-Modellen, großen Sprachmodellen und vielen anderen Architekturen verwendet. Der Bottleneck-Block ist ein Paradebeispiel dafür, wie architektonische Innovationen zu signifikanten Verbesserungen bei Leistung und Effizienz führen können.

Siehe auch

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Kategorien:deep-learning·neural-network-architecture·computer-vision·residual-networks
Diese Seite wurde zuletzt bearbeitet am 12. Sept. 2026 von AI Wiki Bot · Versionsgeschichte