ResNet, kurz für Residual Neural Network, ist eine Deep-Learning-Architektur, bei der Schichten Residualfunktionen in Bezug auf ihre Eingaben lernen. Sie wurde 2015 für die Bilderkennung entwickelt und gewann in diesem Jahr die ImageNet Large Scale Visual Recognition Challenge (ILSVRC). Das charakteristische Merkmal der Architektur ist die Residualverbindung, ein Motiv, das die Eingabe eines Subnetzwerks zu dessen Ausgabe addiert und so das Training von Netzwerken mit Hunderten von Schichten ermöglicht. Dieses Design ist zu einem grundlegenden Baustein moderner Deep-Learning-Modelle geworden, einschließlich Transformer-Architekturen und Systemen wie AlphaGo Zero und AlphaFold.
Die Residualverbindung stabilisiert das Training und die Konvergenz in tiefen neuronalen Netzwerken und adressiert das Problem verschwindender Gradienten, das zuvor die Netzwerktiefe begrenzte. Ihr Einfluss reicht weit über die Bilderkennung hinaus und findet sich in neuronalen Netzwerken in verschiedenen Bereichen, von großen Sprachmodellen bis hin zu Systemen des bestärkenden Lernens.
Mathematik
Die Kernidee von ResNet besteht darin, das Lernziel neu zu formulieren. Betrachten wir in einem mehrschichtigen Netzwerk ein Subnetzwerk mit gestapelten Schichten, das eine Funktion \(H(x;\alpha)\) berechnet, wobei \(x\) die Eingabe und \(\alpha\) die Parameter sind. Anstatt \(H\) direkt zu lernen, lässt das Residual-Lernen das Subnetzwerk \(F(x;\alpha) = H(x;\alpha) + x\) lernen. Die optimale Ausgabe \(H^\) wird dann erreicht, indem das Residuum \(H^ - x\) gelernt wird, was oft einfacher zu optimieren ist.
Die Addition von \(x\) wird über eine Skip-Verbindung implementiert, die eine Identitätsabbildung durchführt und die Eingabe des Subnetzwerks direkt mit dessen Ausgabe verbindet. Diese Skip-Verbindung ist die „Residualverbindung“. Ein Subnetzwerk mit dieser Verbindung wird als Residualblock bezeichnet, und ein tiefes Residualnetzwerk wird durch das Stapeln solcher Blöcke aufgebaut.
Residualverbindung
In einem Residualblock besteht die Funktion \(F\) typischerweise aus Matrixmultiplikationen, die mit Aktivierungsfunktionen und Normalisierungsoperationen wie Batch-Normalisierung oder Layer-Normalisierung verschachtelt sind. Die Residualverbindung \(x + F(x)\) ermöglicht es, dass Gradienten während der Backpropagation direkt durch das Netzwerk fließen, wodurch das Degradationsproblem gemildert wird, bei dem tiefere Netzwerke schwerer zu trainieren sind.
Das Konzept der Residualverbindungen hat Vorläufer. Long Short-Term Memory (LSTM)-Netzwerke haben beispielsweise eine Speicherzelle, die als Residualverbindung fungiert: \(c_{t+1} = c_t + F(x_t)\), wobei \(c_t\) der Zellzustand ist und \(F\) die Eingabe \(x_t\) verarbeitet. Ein LSTM mit einem Forget-Gate funktioniert im Wesentlichen wie ein Highway-Netzwerk, eine verwandte Architektur, die ebenfalls gegated Skip-Verbindungen verwendet.
Um die Varianz der Schichteingaben in sehr tiefen Netzwerken zu stabilisieren, wird empfohlen, die Residualverbindung durch die Gesamtzahl der Schichten \(L\) zu skalieren, indem \(x + f(x)\) durch \(x/L + f(x)\) ersetzt wird. Diese Normalisierung hilft, konsistente Signalmagnituden über Hunderte von Schichten aufrechtzuerhalten.
Projektionsverbindung
Wenn die Funktion \(F\) die Dimensionalität der Eingabe ändert, etwa \(F: \mathbb{R}^n \to \mathbb{R}^m\) mit \(n \neq m\), ist die Addition \(F(x) + x\) undefiniert. In diesem Fall wird eine Projektionsverbindung verwendet: \(y = F(x) + P(x)\), wobei \(P\) typischerweise eine lineare Projektion \(P(x) = Mx\) mit einer \(m \times n\)-Matrix \(M\) ist. Diese Matrix wird zusammen mit anderen Modellparametern per Backpropagation trainiert, sodass das Netzwerk die Skip-Verbindung an die neue Dimensionalität anpassen kann.
Signalausbreitung
Die Einführung von Identitätsabbildungen erleichtert die Signalausbreitung sowohl im Vorwärts- als auch im Rückwärtspfad. Im Vorwärtspass gilt, wenn die Ausgabe des \(\ell\)-ten Residualblocks die Eingabe des \((\ell+1)\)-ten Blocks ist (unter der Annahme, dass keine Aktivierung zwischen den Blöcken liegt), dann \(x_{\ell+1} = F(x_\ell) + x_\ell\). Diese Rekurrenz ermöglicht es, dass Informationen direkt durch das Netzwerk fließen und das Eingangssignal erhalten bleibt, selbst wenn \(F\) kleine Werte erzeugt.
Im Rückwärtspass enthält der Gradient des Verlusts bezüglich der Eingabe eines Blocks einen Term, der der Gradient bezüglich der Ausgabe ist, der durch die Identitätsabbildung geleitet wird. Dies stellt sicher, dass Gradienten nicht verschwinden, wenn sie sich durch viele Schichten ausbreiten, ein Schlüsselfaktor für das Training von Netzwerken mit Hunderten von Schichten.
Geschichte und Auswirkungen
Das Motiv der Residualverbindung wurde bereits in früheren Arbeiten verwendet, aber die Veröffentlichung von ResNet im Jahr 2015 machte es für Feedforward-Netzwerke weithin populär. Die Architektur wurde von Forschern bei Microsoft entwickelt, darunter Kaiming He, Xiangyu Zhang, Shaoqing Ren und Jian Sun. Ihr Paper „Deep Residual Learning for Image Recognition“ zeigte, dass Residualnetzwerke mit Tiefen von 152 Schichten oder mehr trainiert werden konnten und auf dem ImageNet-Benchmark Spitzenergebnisse erzielten.
ResNets Erfolg bei ILSVRC 2015 markierte einen Wendepunkt im maschinellen Lernen. Es zeigte, dass sehr tiefe Netzwerke nicht nur machbar, sondern auch leistungsfähiger waren, was zu einem Aufschwung der Forschung an tiefen Architekturen führte. Die Residualverbindung wurde zu einem Standardbestandteil nachfolgender Modelle, einschließlich Transformatoren in der Verarbeitung natürlicher Sprache, wie BERT- und GPT-Modelle, sowie in Systemen wie AlphaGo Zero, AlphaStar und AlphaFold.
Varianten und Erweiterungen
Es wurden mehrere Varianten von ResNet entwickelt, um die Leistung oder Effizienz zu verbessern. Pre-Activation ResNet verschiebt die Aktivierungsfunktionen vor die Gewichtsschichten, was die Regularisierung verbessert und noch tiefere Netzwerke ermöglicht. Wide ResNet erhöht die Anzahl der Kanäle in jedem Block und tauscht Tiefe gegen Breite, um mit weniger Schichten eine bessere Genauigkeit zu erzielen. ResNeXt führt eine Kardinalitätsdimension ein, indem es parallele Zweige innerhalb jedes Blocks verwendet, um die Repräsentationskraft zu erhöhen, ohne die Tiefe zu vergrößern.
Weitere Erweiterungen umfassen DenseNet, das jede Schicht mit jeder anderen Schicht in einer Feedforward-Weise verbindet, und ResNet mit stochastischer Tiefe, das während des Trainings zufällig Schichten verwirft, um das Netzwerk zu regularisieren. Diese Varianten haben die Grenzen des Möglichen mit tiefem Residual-Lernen weiter verschoben.
Anwendungen
ResNet wurde auf eine Vielzahl von Aufgaben über die Bilderkennung hinaus angewendet, darunter Objekterkennung, semantische Segmentierung und Videoanalyse. Es wird auch in der medizinischen Bildgebung, im autonomen Fahren und in Gesichtserkennungssystemen eingesetzt. Die Vielseitigkeit und Robustheit der Architektur haben sie zu einer Standardwahl für viele Computer-Vision-Anwendungen gemacht.
Darüber hinaus wurde das Prinzip der Residualverbindung in anderen Bereichen übernommen, wie Verarbeitung natürlicher Sprache und bestärkendem Lernen. Beispielsweise basieren Transformer-Modelle auf Residualverbindungen, um tiefe Netzwerke für Sprachverständnis und -generierung zu trainieren, wie in OpenAIs GPT-Serie und Anthropics Modellen zu sehen ist. Der Einfluss von ResNet ist somit im gesamten Bereich der künstlichen Intelligenz allgegenwärtig.