Zum Inhalt springen

ResNet: Residual Neural Networks – einfach erklärt!

Residual Neural Networks (kurz: ResNet) sind besondere Arten von Neuronalen Netzwerken, die in der Bildverarbeitung genutzt werden. Sie zeichnen sich durch ihre tiefe Architekturen aus, die trotzdem noch geringe Fehlerraten hervorrufen kann.

Welche Architektur wurde bisher bei der Bilderkennung genutzt?

Nach dem großen Erfolg eines Convolutional Neural Network (CNN) bei dem ImageNet Wettbewerb im Jahr 2012, waren CNNs die vorherrschende Architektur in der maschinellen Bildverarbeitung. Die Vorgehensweise ist dabei der Funktionsweise unseres Auges nachempfunden. Wenn wir ein Bild sehen, dann teilen wir es automatisch in viele kleine Unterbereiche auf und analysieren diese einzeln. Durch die Zusammensetzung dieser Teilbilder verarbeiten und interpretieren wir das Bild. Wie lässt sich dieses Prinzip in einem Convolutional Neural Network umsetzen?

Die Arbeit passiert in der sogenannten Convolution Layer. Dazu definieren wir einen Filter, der bestimmt wie groß die Teilbilder sein sollen, die wir betrachten, und eine Schrittlänge, die entscheidet wie viele Pixel wir zwischen den Berechnungen weiterfahren, also wie nahe die Teilbilder aneinander liegen. Durch diesen Schritt haben wir die Dimensionalität des Bildes stark reduziert.

Als nächstes folgt die Pooling Layer. Rein rechnerisch passiert hier dasselbe erstmal wie in der Convolution Layer mit dem Unterschied, dass wir vom Ergebnis je nach Anwendung entweder nur den Durchschnitts- oder Maximalwert übernehmen. Dadurch bleiben kleine Features in wenigen Pixeln erhalten, die für die Aufgabenlösung entscheidend sind.

Zum Abschluss kommt eine Fully-Connected Layer im Convolutional Neural Network, wie wir sie bereits von den normalen Neural Networks kennen. Nachdem wir nun die Dimensionen des Bildes stark reduziert haben, können wir nun die eng-vermaschten Schichten nutzen. Hier werden die einzelnen Teilbilder wieder miteinander verknüpft, um die Zusammenhänge zu erkennen und die Klassifizierung vorzunehmen.

Was ist das Problem bei tiefen Neuronalen Netzwerken?

Um bessere Ergebnisse erzielen zu können, wurden die genutzten Architekturen immer tiefer und tiefer. Es wurden also einfach mehrere CNN-Blöcke aufeinandergestapelt in der Hoffnung, dadurch bessere Ergebnisse erzielen zu können. Jedoch ergibt sich bei tiefen Neuronalen Netzwerken die Problematik des sogenannten Vanishing Gradients.

Fehlerrate mit 20 Schichten und 56 Schichten | Quelle: Deep Residual Learning for Image Recognition

Das Training eines Netzwerkes passiert während der sogenannten Backpropagation. Dabei durchwandert, kurz gesagt, der Fehler das Netzwerk von hinten nach vorne. In jeder Schicht wird berechnet, wie stark das jeweilige Neuron zum Fehler beigetragen hat, indem der Gradient berechnet wird. Umso mehr sich dieser Prozess jedoch den anfänglichen Schichten nähert, umso kleiner kann auch der Gradient werden, sodass es in den vorderen Schichten zu keiner oder nur sehr leichten Anpassung von Neuronengewichtungen kommt. Dadurch haben tiefe Netzwerkstrukturen häufig einen vergleichsweise hohen Fehler.

In der Praxis können wir es uns jedoch nicht so einfach machen und die abnehmende Performance lediglich auf das Vanishing Gradient Problem schieben. Tatsächlich lässt es sich sogar mit sogenannten Batch Normalization Layern relativ gut in den Griff bekommen. Die Tatsache, dass tiefere Neuronale Netzwerke eine schlechtere Performance haben, kann weiterhin auch an der Initialisierung der Schichten liegen oder an der Optimierungsfunktion.

Wie lösen Residual Neural Networks das Problem?

Der Grundbaustein eines Residual Neural Networks sind die sogenannten Residual Blocks. Die Grundidee hierbei ist, dass sogenannte „Skip Connections“ in das Netzwerk eingebaut werden. Diese sorgen dafür, dass die Aktivierung einer Schicht mit dem Output einer späteren Schicht zusammenaddiert werden.

Diese Architektur ermöglicht es dem Netzwerk gewisse Schichten einfach zu überspringen, vor allem dann, wenn sie nichts zu einem besseren Ergebnis beitragen. Ein Residual Neural Network setzt sich aus mehreren von diesen sogenannten Residual Blocks zusammen.

Welche Probleme können bei ResNets entstehen?

Vor allem bei Convolutional Neural Networks kommt es natürlich vor, dass die Dimensionalität am Anfang der Skip Connection nicht mit der am Ende der Skip Connection übereinstimmt. Das ist vor allem dann der Fall, wenn mehrere Schichten übersprungen werden. Bei Convolutional Neural Networks wird nämlich in jedem Block die Dimensionalität mithilfe eines Filters verändert. Somit steht die Skip Connection vor dem Problem, die Inputs vorheriger Layer einfach zu dem Output von späteren Layern hinzuzufügen.

Um dieses Problem zu lösen, kann das Residual mit einer linearen Projektion multipliziert werden, um die Dimensionen anzugleichen. In vielen Fällen wird dafür beispielsweise eine 1×1 Convolutional Layer genutzt. Es kann jedoch auch vorkommen, dass eine Angleichung von Dimensionen gar nicht notwendig ist.

Wie baut man einen ResNet Block in TensorFlow?

Ein ResNet Block lässt sich in TensorFlow relativ einfach programmieren, vor allem dann, wenn sichergestellt ist, dass die Dimensionen bei der Zusammenführung diesselben sind.

In diesem Fall durchläuft der Input erst eine Dense-Layer mit 1024 Neuronen. Anschließend folgt ein Block bestehend aus einer Dropout-Layer und zwei Dense-Layer, die die Zahl der Neuronen erst auf 512 beschränkt, bevor es wieder auf 1024 erhöht wird. Dann erfolgt die Zusammenführung mit der Add-Layer. Da beide Inputs eine Dimensionalität von 1024 haben, lassen sie sich ohne Probleme aufaddieren.

Wie funktioniert das Training eines ResNet Modells?

Die Ausbildung eines ResNet (Residual Neural Network) folgt dem Standardprozess der Ausbildung tiefer neuronaler Netze. Der einzigartige Aspekt von ResNets ist jedoch die Verwendung von Skip-Verbindungen, die den direkten Fluss von Gradienten ermöglichen, was die Ausbildung sehr tiefer neuronaler Netze erleichtert.

Beim Trainingsprozess werden die Trainingsdaten in das ResNet eingespeist und der Verlust oder Fehler zwischen der vorhergesagten Ausgabe und der tatsächlichen Ausgabe berechnet. Dieser Verlust wird dann durch das Netz zurückverfolgt, um die Gewichte des Netzes zu aktualisieren und so den Verlust zu minimieren.

Während des Trainingsprozesses sorgen die Skip-Verbindungen in ResNets dafür, dass die Gradienteninformationen durch das Netz fließen können, was das Training tiefer Netze erleichtert. Das liegt daran, dass die Gradienteninformationen die Schichten im Netz umgehen können, die möglicherweise Null- oder negative Gradienten haben, was in tiefen neuronalen Netzen zum Problem des verschwindenden Gradienten führen kann.

Neben Standardtrainingsverfahren wie dem stochastischen Gradientenabstieg (SGD) und der Backpropagation können ResNets auch mit Techniken wie Gewichtsabnahme, Dropout und Batch-Normalisierung trainiert werden, um die Leistung zu verbessern und eine Überanpassung zu verhindern.

Insgesamt umfasst der Trainingsprozess für ein ResNet das Einspeisen der Trainingsdaten in das Netz, die Berechnung des Verlusts oder Fehlers und die Aktualisierung der Gewichte durch Backpropagation. Die Verwendung von Skip-Verbindungen erleichtert das Training sehr tiefer neuronaler Netze, was zu einer besseren Genauigkeit und schnelleren Konvergenz führt.

Was sind die Vor- und Nachteile bei der Verwendung von ResNets?

ResNets (Residual Neural Networks) sind eine beliebte neuronale Netzwerkarchitektur, die in Deep-Learning-Anwendungen weit verbreitet ist. Im Folgenden werden einige der Vor- und Nachteile von ResNets erläutert:

Vorteile:

  • Verbesserte Genauigkeit: Es hat sich gezeigt, dass ResNets in verschiedenen Benchmark-Datensätzen besser abschneiden als herkömmliche tiefe neuronale Netze und damit eine Spitzenleistung erzielen.
  • Schnellere Konvergenz: ResNets ermöglichen ein einfacheres Training und eine schnellere Konvergenz aufgrund des Vorhandenseins von Sprungverbindungen, die den direkten Fluss von Gradienten ermöglichen.
  • Bessere Generalisierung: Es hat sich gezeigt, dass ResNets besser verallgemeinern als herkömmliche tiefe neuronale Netze, was für reale Anwendungen, bei denen sich die Datenverteilung im Laufe der Zeit ändern kann, unerlässlich ist.
  • Transfer-Lernen: Diese Modelle können effektiv für das Transfer-Lernen verwendet werden, indem eine Feinabstimmung an einem kleineren Datensatz vorgenommen wird, was sie für praktische Anwendungen nützlich macht, bei denen die Verfügbarkeit von markierten Daten begrenzt ist.

Nachteile:

  • Erhöhte Komplexität: Durch das Vorhandensein von Sprungverbindungen sind ResNets komplexer als herkömmliche tiefe neuronale Netze, was zu höheren Rechenanforderungen und höherem Speicherbedarf führen kann.
  • Overfitting: ResNets können bei kleinen Datensätzen zu einer Überanpassung neigen, und es muss darauf geachtet werden, dass geeignete Regularisierungstechniken verwendet werden, um dies zu vermeiden.
  • Interpretierbarkeit: Die komplexe Natur von ResNets kann es schwierig machen, ihre interne Funktionsweise zu interpretieren und zu verstehen, wie sie Entscheidungen treffen, was bei bestimmten Anwendungen ein Nachteil sein kann.

Insgesamt bieten ResNets eine leistungsstarke und vielseitige neuronale Netzwerkarchitektur, die bei verschiedenen Deep-Learning-Aufgaben Spitzenleistungen erbringen kann. Sie haben zwar einige Einschränkungen und Nachteile, aber ihre Vorteile machen sie zu einem wertvollen Werkzeug für Forscher und Praktiker auf dem Gebiet des maschinellen Lernens.

Das solltest Du mitnehmen

  • Residual Neural Networks oder kurz ResNets bieten eine Möglichkeit, tiefe Neuronale Netzwerke ohne hohe Fehlerrate zu trainieren.
  • Dazu sind sie aus vielen sogenannten Residual Blocks aufgebaut, die durch eine Skip Connection charakterisiert sind.
  • Die Skip Connection ermöglicht es dem Netzwerk eine oder mehrere Schichten zu überspringen, falls diese das Ergebnis nicht verbessern.

Andere Beiträge zum Thema ResNet

Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Cookie Consent mit Real Cookie Banner