Alexander - stock.adobe.com

Convolutional versus Recurrent Neural Networks: ein Vergleich

Convolutional und Recurrent Neural Networks haben unterschiedliche, aber sich ergänzende Fähigkeiten und Anwendungsfälle. Ein Vergleich der beiden Modellarchitekturen.

Um realistische Erwartungen an künstliche Intelligenz (KI) zu stellen und keine Chancen zu verpassen, ist es wichtig, sowohl die Fähigkeiten als auch die Grenzen der verschiedenen Modelltypen zu verstehen.

Zwei Kategorien von Algorithmen, die das Gebiet der KI vorangetrieben haben, sind Convolutional Neural Networks (CNN) und Recurrent Neural Networks (RNN).

Die wichtigsten Unterschiede zwischen CNN und RNN sind die folgenden:

  • CNN werden häufig zur Lösung von Problemen mit raumbezogenen Daten wie Bilder verwendet. RNN eignen sich besser für die Analyse zeitlicher und sequenzieller Daten wie Text oder Videos.
  • CNN und RNN haben unterschiedliche Architekturen. CNN sind Feedforward Neural Networks, die Filter und Pooling-Schichten verwenden, während RNN Ergebnisse zurück in das Netzwerk speisen.
  • In CNN sind die Größe der Eingabe und die resultierende Ausgabe fest vorgegeben. Ein CNN empfängt Bilder mit fester Größe und gibt für jedes Bild eine vorhergesagte Klassenbezeichnung zusammen mit einem Konfidenzniveau aus. In RNN können die Größe der Eingabe und die resultierende Ausgabe variieren.
  • Häufige Anwendungsfälle für CNN sind Gesichtserkennung, medizinische Analysen und Bildklassifizierung. Häufige Anwendungsfälle für RNN sind maschinelle Übersetzung, natürliche Sprachverarbeitung, Sentimentanalyse und Sprachanalyse.

KNN und die Geschichte der neuronalen Netze

Das neuronale Netz wurde zum Zeitpunkt seiner Erfindung weithin als bedeutender Durchbruch auf diesem Gebiet anerkannt. Inspiriert von den miteinander verbundenen Netzwerken von Neuronen im menschlichen Gehirn, führte die Architektur einen Algorithmus ein, der es Computern ermöglichte, ihre Entscheidungsfindung zu verfeinern – mit anderen Worten: zu lernen.

Ein künstliches neuronales Netz (KNN) besteht aus vielen Perzeptronen. Ein Perzeptron ist ein einfaches Modell einer biologischen Nervenzelle. In seiner einfachsten Form ist ein Perzeptron eine Funktion, die zwei Eingaben nimmt, sie mit zwei zufälligen Gewichten multipliziert, sie mit einem Bias-Wert addiert, die Ergebnisse durch eine Aktivierungsfunktion leitet und die Ergebnisse ausgibt. Die Gewichte und Bias-Werte, die anpassbar sind, definieren das Ergebnis des Perzeptrons bei zwei bestimmten Eingabewerten.

Durch die Kombination von Perzeptronen konnten Forscher mehrschichtige Netzwerke mit anpassbaren Variablen aufbauen, die eine Vielzahl komplexer Aufgaben übernehmen. Um die Herausforderung der Auswahl der idealen Zahlen für Gewichte und Bias-Werte zu bewältigen, wird ein Mechanismus namens Backpropagation verwendet.

Bei Backpropagation erhält das KNN eine Eingabe, und das Ergebnis wird mit der erwarteten Ausgabe verglichen. Die Differenz zwischen der gewünschten und der tatsächlichen Ausgabe wird dann über eine mathematische Berechnung, die bestimmt, wie jedes Perzeptron anzupassen ist, um das gewünschte Ergebnis zu erzielen, an das neuronale Netzwerk zurückgemeldet. Dieser Vorgang wird wiederholt, bis ein zufriedenstellendes Maß an Genauigkeit erreicht ist.

Diese Art von KNN eignet sich gut für einfache statistische Vorhersagen, wie zum Beispiel die Vorhersage der Lieblingsfußballmannschaft einer Person anhand ihres Alters, ihres Geschlechts und ihres geografischen Standorts. Der Einsatz von KI für schwierigere Aufgaben wie die Bilderkennung erfordert jedoch eine komplexere neuronale Netzwerkarchitektur.

Convolutional Neural Network (CNN)

Computer interpretieren Bilder als Sätze von Farbwerten, die über eine bestimmte Breite und Höhe verteilt sind. Was Menschen also als Formen und Objekte auf einem Computerbildschirm sehen, erscheint der Maschine als Zahlenreihen.

CNN interpretieren diese Daten mithilfe von Mechanismen, die als Filter bezeichnet werden: kleine Matrizen aus Gewichten, die darauf abgestimmt sind, bestimmte Merkmale in einem Bild zu erkennen, wie Farben, Kanten oder Texturen. In den ersten Schichten eines CNN, den sogenannten Convolutional Layers, wird ein Filter über die Eingabe geschoben – oder gefaltet – und sucht nach Übereinstimmungen zwischen der Eingabe und dem Filtermuster. Das Ergebnis ist eine neue Matrix, die Bereiche anzeigt, in denen das gesuchte Merkmal erkannt wurde, eine sogenannte Feature Map.

In der nächsten Stufe des CNN, der Pooling-Schicht, werden diese Feature Maps mit einem Filter reduziert, der den Maximal- oder Durchschnittswert in verschiedenen Bereichen des Bildes ermittelt. Durch die Reduzierung der Dimensionen der Feature Map wird die Größe der Datendarstellungen erheblich verringert, wodurch das neuronale Netzwerk viel schneller wird.

Schließlich werden die resultierenden Informationen in die vollständig verbundene Schicht des CNN eingespeist. Diese Schicht des Netzwerks berücksichtigt alle in der Convolutional- und Pooling-Schicht extrahierten Merkmale, sodass das Modell neue Eingabebilder in verschiedene Klassen kategorisieren kann.

In einem CNN bildet die Reihe von Filtern ein Netzwerk, das mit jeder durchlaufenen Schicht immer mehr vom Bild versteht. Die Filter in den ersten Schichten erkennen einfache Merkmale wie Kanten. In tieferen Schichten beginnen die Filter, komplexere Muster wie Formen und Texturen zu erkennen. Letztendlich entsteht so ein Modell, das ganze Objekte erkennen kann, unabhängig von ihrer Position oder Ausrichtung im Bild.

Verzerrung in künstlichen Neuronen

Sowohl in künstlichen als auch in biologischen Netzwerken entscheiden Neuronen bei der Verarbeitung der eingehenden Informationen, ob die Ausgabe als Eingabe an die nächste Schicht weitergeleitet werden soll. Die Entscheidung, ob Informationen weitergeleitet werden, wird als Bias (Verzerrung) bezeichnet und durch eine im System integrierte Aktivierungsfunktion bestimmt. Beispielsweise kann ein künstliches Neuron ein Ausgangssignal nur dann an die nächste Schicht weiterleiten, wenn seine Eingaben – bei denen es sich eigentlich um Spannungen handelt – einen Wert über einem bestimmten Schwellenwert erreichen.

Recurrent Neural Network (RNN)

CNN eignen sich hervorragend zum Erkennen von Objekten, Tieren und Menschen, aber was ist, wenn wir verstehen wollen, was auf einem Bild geschieht?

Betrachten wir ein Bild von einem Ball in der Luft. Um festzustellen, ob der Ball steigt oder fällt, wäre mehr Kontext als ein einzelnes Bild erforderlich – beispielsweise ein Video, dessen Abfolge klären kann, ob der Ball nach oben oder unten fliegt.

Dies erfordert wiederum, dass das neuronale Netzwerk zuvor gesammelte Informationen speichert und bei zukünftigen Berechnungen berücksichtigt. Das Problem des Speicherns geht jedoch über Videos hinaus: Viele Algorithmen zum Verstehen natürlicher Sprache befassen sich beispielsweise in der Regel nur mit Text, müssen jedoch Informationen wie das Thema einer Diskussion oder vorherige Wörter in einem Satz abrufen.

RNN wurden genau für dieses Problem entwickelt. RNN können sequenzielle Daten wie Text oder Videos mithilfe von Schleifen verarbeiten, die Muster in diesen Sequenzen abrufen und erkennen können. Die Einheiten, die diese Rückkopplungsschleifen enthalten, werden als rekurrente Zellen bezeichnet und ermöglichen es dem Netzwerk, Informationen über einen längeren Zeitraum zu speichern.

Wenn das RNN Eingaben erhält, kombinieren die rekurrenten Zellen die neuen Daten mit den in früheren Schritten erhaltenen Informationen und verwenden diese zuvor erhaltenen Eingaben, um ihre Analyse der neuen Daten zu beeinflussen. Die rekurrenten Zellen aktualisieren dann ihren internen Zustand als Reaktion auf die neuen Eingaben, sodass das RNN Beziehungen und Muster erkennen kann.

Zur Veranschaulichung stellen Sie sich vor, Sie möchten den Satz Welches Datum ist heute? übersetzen. In einem RNN speist der Algorithmus jedes Wort separat in das neuronale Netzwerk ein. Wenn das Modell das Wort heute erreicht, ist seine Ausgabe bereits durch das Wort Welches beeinflusst.

RNN haben jedoch ein Problem. In einfachen RNN haben Wörter, die später in das Netzwerk eingespeist werden, tendenziell einen größeren Einfluss als frühere Wörter, was im Verlauf einer Sequenz zu einer Art Gedächtnisverlust führt. Im Beispiel hat das Wort ist einen größeren Einfluss als das aussagekräftigere Wort Datum. Neuere Algorithmen wie Long Short-Term Memory Networks (LSTM) lösen dieses Problem durch den Einsatz von rekurrenten Zellen, die Informationen über längere Sequenzen hinweg speichern.

CNN versus RNN Infografik
Abbildung 1: Obwohl CNN und RNN beides Arten von neuronalen Netzen sind, unterscheiden sie sich in mehreren wichtigen Punkten.

CNN versus RNN: Stärken und Schwächen

CNN eignen sich gut für die Arbeit mit Bildern und Videos, können aber auch Audio-, räumliche und Textdaten verarbeiten. Daher werden CNN vor allem in der Bildverarbeitung und Bildanalyse eingesetzt, beispielsweise zur Objektklassifizierung, Bilderkennung und Mustererkennung. Anwendungsbeispiele für CNN sind die Gesichtserkennung, die Objekterkennung für autonome Fahrzeuge und die Identifizierung von Anomalien in medizinischen Bildern wie Röntgenaufnahmen.

RNN hingegen zeichnen sich durch ihre Fähigkeit aus, ein kontextuelles Verständnis von Sequenzen zu entwickeln, wodurch sie sich besonders für die Arbeit mit sequenziellen Daten eignen. RNN werden daher häufig für Spracherkennung und natürliche Sprachverarbeitung eingesetzt, wie zum Beispiel Textzusammenfassung, maschinelle Übersetzung und Sprachanalyse. Anwendungsbeispiele für RNN sind die Generierung von Bildunterschriften, die Prognose von Zeitreihendaten wie Verkaufszahlen oder Aktienkursen und die Analyse der Nutzerstimmung in Social-Media-Beiträgen.

Für einige Aufgaben ist eine Option eindeutig besser geeignet. Beispielsweise sind CNN in der Regel nicht gut für die Arten von Textvorhersageaufgaben geeignet, bei denen RNN ihre Stärken ausspielen. Der Versuch, die räumlichen Modellierungsfähigkeiten eines CNN zur Erfassung sequenzieller Textdaten zu verwenden, erfordert unnötigen Aufwand und Speicherplatz; die Verwendung eines RNN ist hierfür wesentlich einfacher und effizienter.

In anderen Fällen können sich die beiden Modelltypen jedoch ergänzen. Durch die Kombination der räumlichen Verarbeitungs- und Merkmalsextraktionsfähigkeiten von CNN mit den Sequenzmodellierungs- und Kontextabrufmöglichkeiten von RNN lassen sich leistungsstarke Systeme schaffen, die die Stärken beider Algorithmen ausnutzen.

Beispielsweise können ein CNN und ein RNN gemeinsam in einer Anwendung zur Untertitelung von Videos eingesetzt werden, wobei das CNN Merkmale aus Videobildern extrahiert und das RNN diese Merkmale zum Verfassen von Bildunterschriften verwendet. In ähnlicher Weise kann ein CNN in der Wettervorhersage Muster in Karten mit meteorologischen Daten identifizieren, die ein RNN dann in Verbindung mit Zeitreihendaten zur Erstellung von Wettervorhersagen verwenden kann.

Universum der neuronalen Netze entwickelt sich ständig weiter

CNN und RNN sind nur zwei der beliebtesten Kategorien von neuronalen Netzwerkarchitekturen. Es gibt Dutzende anderer Ansätze, und bisher unbekannte Modelltypen erleben derzeit ein bedeutendes Wachstum.

Transformer sind wie RNN eine Art neuronale Netzwerkarchitektur, die sich gut für die Verarbeitung sequenzieller Textdaten eignet. Transformer umgehen jedoch die Einschränkungen von RNN durch Aufmerksamkeitsmechanismen, die es dem Modell erlauben, sich auf die relevantesten Teile der Eingabedaten zu konzentrieren. Das bedeutet, dass Transformer Beziehungen über längere Sequenzen hinweg erfassen können, was sie zu einem leistungsstarken Werkzeug für den Aufbau von Large Language Models (LLM) wie ChatGPT macht.

Generative Adversarial Networks (GAN) kombinieren zwei konkurrierende neuronale Netzwerke: einen Generator und einen Diskriminator. Der Generator erstellt synthetische Daten, die versuchen, die realen Eingaben so genau wie möglich nachzuahmen, während der Diskriminator versucht, zu erkennen, ob die Daten echt sind oder vom Generator erzeugt wurden. GAN werden in generativen KI-Anwendungen verwendet, um hochwertige synthetische Daten wie Bilder und Videos zu erstellen.

CNN versus GAN Infografik
Abbildung 2: CNN und GAN haben unterschiedliche Architekturen, Anwendungsfälle und Trainingsanforderungen.

Autoencoder sind eine weitere Art von neuronalen Netzen, die sich zunehmend als Werkzeug der Wahl für Dimensionsreduktion, Bildkomprimierung und Datenkodierung etablieren. Ähnlich wie GAN bestehen Autoencoder aus zwei Modellen: einem Encoder, der Eingabedaten in einen Code komprimiert, und einem Decoder, der versucht, die Eingabedaten aus dem generierten Code zu rekonstruieren. Das Ziel des Autoencoders ist es, seine Leistung im Laufe der Zeit zu verbessern, indem er die Differenz zwischen der ursprünglichen Eingabe und der Rekonstruktion durch den Decoder minimiert.

Darüber hinaus finden Forscher Wege, um mithilfe der neuronalen Architektursuche automatisch neue, hochoptimierte neuronale Netzwerke zu erstellen. Diese Technik beginnt mit einer Vielzahl potenzieller Architekturkonfigurationen und Netzwerkkomponenten für ein bestimmtes Problem. Der Suchalgorithmus probiert dann iterativ verschiedene Architekturen aus und analysiert die Ergebnisse, um die optimale Kombination zu finden.

Auf diese Weise verbessert die neuronale Architektursuche die Effizienz, indem sie Modellentwickler unterstützt, den Prozess der Entwicklung maßgeschneiderter neuronaler Netzwerke für bestimmte Aufgaben zu automatisieren. Beispiele für automatisiertes maschinelles Lernen sind Google AutoML, IBM Watson Studio und die Open-Source-Bibliothek AutoKeras.

Forscher können auch Ensemble-Modeling-Techniken verwenden, um mehrere neuronale Netzwerke mit derselben oder unterschiedlichen Architekturen zu kombinieren. Das resultierende Ensemble-Modell kann oft eine bessere Leistung erzielen als jedes der einzelnen Modelle, aber um die beste Kombination zu finden, müssen viele Möglichkeiten verglichen werden.

Um dieses Problem zu lösen, haben Forscher Techniken zum Vergleich der Leistung und Genauigkeit von neuronalen Netzwerkarchitekturen entwickelt, mit denen sie die vielen für eine bestimmte Aufgabe verfügbaren Optionen effizienter durchsuchen können. Kreative Anwendungen statistischer Techniken wie Bootstrapping und Clusteranalyse können Forschern helfen, die relative Leistung verschiedener neuronaler Netzwerkarchitekturen zu vergleichen.

Erfahren Sie mehr über Softwareentwicklung