In Deep Learning gibt es zahlreiche Architekturen von neuronalen Netzen, die für unterschiedliche Anwendungsgebiete aufweisen. In diesem Tutorial möchte ich Ihnen 4 der, meiner Meinung nach, wichtigsten Architekturen von neuronalen Netzen sowie deren mögliche Anwendungen vorstellen.
Zu diesen neuronalen Netzen gehören die Feedforward Neural Networks, Convolutional Neural Networks, Recurrent Neural Networks und Autoencoder.
Inhaltsverzeichnis
- Feedforward Neural Networks / Multilayer Perceptron
- Convolutional Neural Networks
- Recurrent Neural Networks
- Autoencoder
1. Feedforward Neural Network / Multillayer Perceptron
Das Feedforward Neural Network (deutsch: Vorwärtsgerichtetes neuronales Netzwerk), oft auch als Multilayer Perceptron (MLPs) bezeichnet, ist die Quintessenz von Deep Learning-Modellen.
Die Neuronen in dem Feedforward Neural Network sind in parallelen Schichten angeordnet. Typischerweise besteht das Netz aus einer Eingabeschicht, einer Ausgabeschicht und einer beliebigen Anzahl von sog. versteckten Schichten, die sich zwischen der Eingabe- und Ausgabeschicht befinden Abb. 1 zeigt die Architektur eines Multilayer Perceptrons, mit einer Eingabeschicht, welche die Eingabewerte aufnimmt, drei versteckten Schichten und einer Ausgabeschicht, welche die Werte
ausgibt.

Diese neuronalen Netze zeichnet sich durch die Eigenschaft aus, dass eine Schicht immer nur mit der nachfolgenden Schicht verbunden ist. Die Informationen fließen dabei nur in eine Richtung: von der Eingabe- zu der Ausgabeschicht. In der Eingabeschicht werden Informationen/Eingabedaten entgegengenommen.
Die Ausgabeschicht gibt das endgültige Ergebnis des neuronalen Netzes aus. Zwischen der Eingabe- und der Ausgabeschicht kann sich eine beliebige Anzahl von versteckten Schichten befinden. Die Eingabeschicht muss die gleiche Anzahl von Neuronen enthalten wie die Anzahl der Eingabewerte im Eingabevektor
. Alle anderen Schichten von dem Multilayer Perceptron können dagegen eine beliebige Anzahl von Neuronen enthalten.
Vorwärtsgerichtete neuronale Netze haben zwei Anwendungsfelder:
- Regression
- Klassifizierung
Das Multilayer Perceptron sowie dessen Implementierung und Training werden ausführlich in dem Artikel „Künstliche Neuronale Netze“ erläutert
Anwendungsfall I: Klassifizierung
Bei der Klassifizierung sagt das neuronale Netz die Klasse bzw. die Kategorie von Daten voraus. Dabei wird für jede vorhandene Klasse von dem neuronalen Netz ein Wahrscheinlichkeitswert (0,1) berechnet. Dieser Wert gibt die Wahrscheinlichkeit an, dass die Eingangsdaten zu der jeweiligen Klasse gehören.
Klassifizierungsprobleme bei denen neuronale Netze Verwendung finden sind zahlreich. Werfen wir einen Blick auf zwei Beispiele.
Stellen Sie sich bitte vor: Eine Notaufnahme in einem Krankenhaus misst ein Dutzend Variablen neu aufgenommener Patienten (z. B. Blutdruck, Puls, Cholesterinspiegel, Blutzucker-Werte, Geschlecht, Alter usw.). Anhand dieser Daten muss nun entschieden werden, ob der Patient auf eine Intensivstation gebracht werden soll oder nicht.
Aufgrund der hohen Kosten auf der Intensivstation, wird Patienten, die akut in Lebensgefahr schweben, eine höhere Priorität eingeräumt. Das Problem besteht darin, Risikopatienten anhand ihrer aufgenommenen Daten vorherzusagen und sie von patienten zu unterscheiden, die nicht akut in Gefahr sind.
Diese Unterscheidung kann jedoch entweder von einem erfahrenen Arzt oder von einem Feedforward Neural Network gemacht werden. Das neuronale Netz wurde an Daten vorheriger Patienten trainiert, um nur anhand der Daten der neuen Patienten, diese in zwei Kategorien einzuordnen. Die erste Kategorie bilden die Risikopatienten. Die zweite Kategorie sind Patienten, die nicht in akuter Lebensgefahr schweben, vgl. Abb. 2.

Womöglich klingt das für sie wie Science-Fiction, weil in diesem Beispiel ein Computer quasi einen Arzt mit jahrelanger Erfahrung ersetzt. Tatsächlich ist es bereits die Realität. In den USA unterstützen Deep Learning Modelle Ärzte bei der Detektion von Brustkrebs und erreichen dabei zum Teil eine bessere Detektionsgenaugikeit als die Ärzte mit jahrelanger Erfahrung in diesem Bereich.
Sehen wir nun ein anderes Beispiel an, wo ein vorwärtsgerichtetes neuronales Netz für Klassifizierung eingesetzt werden kann. Ein Kreditkartenunternehmen wie Mastercard oder Visa erhält normalerweise Hunderttausende von Anträgen für neue Kreditkarten. Der Antrag enthält Informationen zu verschiedenen Merkmalen des Kunden, wie z.B. Jahresgehalt, etwaige ausstehende Schulden, Alter, Beruf und viele weitere.
Das Problem besteht darin, die Anträge in diejenigen einzuteilen, die über eine gute oder schlechte Bonität verfügen oder in eine Grauzone fallen (also eine weitere Analyse durch den Menschen erfordern). Das heißt, die Kunden werden in unterschiedliche Klassen anhand ihrer Kundenmerkmale eingeteilt oder klassifiziert.
Die Klassen könnten sein:
- Schlechte Bonität – Antrag abgelehnt
- Gute Bonität – Antrag akzeptiert
- Eine unklare Bonität- der Antrag soll durch Mitarbeiter nochmal genauer überprüft werden.
Die Unterteilung von Kunden in unterschiedliche Klassen hinsichtlich ihrer Bonität ist eine typische Aufgabe für ein neuronales Netz, vgl. Abb. 3. Dasselbe Prinzip kann auch im Banking-Bereich für Vergaben von Krediten oder Darlehen angewandt werden.

Anwendungsfall II: Regression
Die Regression ist ein weiterer Problembereich, in dem vorwärtsgerichtete neuronale Netze sehr nützlich und effektiv sind. Regression bezieht sich auf die Art von Aufgaben, bei denen wir eine quantitative Menge vorhersagen möchten. Anders ausgedrückt: Die neuronalen Netze sagen eine kontinuierliche Zahl voraus.
Sehen wir uns mal wieder ein konkretes Beispiel für eine Regressionaufgabe, die von einem neuronalen Netz durchgeführt werden kann.
Flugverspätungen sind aufgrund der damit verbundenen finanziellen Verluste der Luftfahrtindustrie zu einem sehr wichtigen Thema für den Luftverkehr auf der ganzen Welt geworden. Nach Angaben des Bureau of Transportation Statistics (BTS) der Vereinigten Staaten wurden 2018 über 20 % der US-Flüge verspätet, was zu schweren wirtschaftlichen Auswirkungen in Höhe von 41 Milliarden US-Dollar führte.
Diese Verspätungen verursachen nicht nur Unannehmlichkeiten für die Fluggesellschaften, sondern auch für die Passagiere. Die Folge ist eine Verlängerung der Reisezeit, die die Kosten für Verpflegung und Unterkunft erhöht und letztendlich Stress bei den Passagieren verursacht.
Die Fluggesellschaften sind Opfer zusätzlicher Kosten im Zusammenhang mit ihren Besatzungen, der Neupositionierung von Flugzeugen, dem Treibstoffverbrauch, während sie versuchen, die Verweilzeiten zu verkürzen, und vielem mehr, was zusammen ihren Ruf manipuliert und oft zu einem Nachfrageverlust der Passagiere führt.
Vor diesem Hintergrund ist es wichtig zu wissen, wie wahrscheinlich die Verspätungen sind bzw. um wie viele Minuten sich ein Flugzeug verspätet wird.
Als Grundlage für die Regression können beispielsweise die vorherrschenden Wetterbedingungen und Flugdaten verwendet werden. Anhand dieser Daten kann das neuronale Netz vorhersagen, um wie viele Minuten ein bestimmter Flug Verspätung haben wird:

Ein anderes praktisches Beispiel für die Regression ist die Nachfrageprognose. Nehmen wir an, ein führender Automobilhersteller bezieht sich auf die tatsächlichen Verkäufe seiner Fahrzeuge in den letzten 12 Monaten auf Modell-, Motortyp- und Farbebene. Auf der Grundlage dieser Daten prognostiziert das neuronale Netz die erwartete Nachfrage nach diesem Fahrzeug. Diese Information könnte vom dem Hersteller für Einkaufs-, Produktions- und Bestandsplanungszwecke genutzt werden.

2. Convolutional Neural Networks
Eine andere sehr erfolgreich eingesetzte Art der neuronalen Netze sind die Convolutional Neural Networks (kurz. CNNs). Convolutional Neural Networks (deutsch: Die Faltenden neuronalen Netze) werden hauptsächlich im Bereich Computer Vision verwendet (siehe auch „KI Use Case: Computer Vision„).
Computer Vision fasst alle Problembereiche zusammen, wenn es um visuelle Daten geht. Typische Aufgaben für CNNs sind:
- Klassifizierung von Bildern
- Erkennung von Objekten in Bildern
- Semantische Segmentierung
Abb. 6 fasst auf eine schöne Art und Weise die Möglichkeiten der CNNs zusammen:

Die Erkennung von Objekten in Bildern und die semantische Segmentierung werden beim autonomen Fahren genutzt, u.a. um Passanten und andere Verkehrsteilnehmer zu erkennen.
Ein Convolutional Neural Network lässt sich im Gegensatz zu einem Feedforward Neural Networks grafisch nicht so einfach darstellen. Dennoch kann man die Architektur einigermaßen auf eine abstrakte Art darstellen, vgl. Abb. 7.
Die Architektur eines CNNs teilt sich in zwei Teile auf.
- Der erste Teil des Netzwerks extrahiert aus den Eingangsdaten, in diesem Fall Bilder, die Merkmale, die von Interesse sein könnten.
- Diese Merkmale der Bilder werden im Anschluss von der zweiten Hälfte des Convolutional Neural Networks verwendet, um eine Vorhersage zu machen, z.B. ob auf dem Bild ein bestimmtes Objekt dargestellt ist.
3. Recurrent Neural Networks
Die dritte Art der neuronalen Netze, dich ich Ihnen vorstellen möchte, bezeichnet man als Recurrent Neural Networks, kurz RNNs. Auf deutsch: Die rekurrenten bzw. die rückgekoppelten neuronalen Netze (siehe auch „KI Use Case: Natural Language Processing„).
Die Recurrent Neural Networks werden immer dann verwendet, wenn sequentielle Daten und Zeitreihen im Spiel sind.
Als sequentielle Daten bezeichnet man Daten, wo die Reihenfolge der einzelnen Daten Instanzen wichtig ist. Zum Beispiel:
- Text
- Audio
- Video
Eine Zeitreihe ist eine chronologisch geordnete Abfolge von Beobachtungen einer bestimmten Größe, die in einem bestimmten Zeitintervall aufgezeichnet wurden. z.B. Wetterdaten oder die Logfiles einer Maschine
Recurrent Neural Networks haben zahlreiche Einsatzgebiete.
Bspw. Chatbots, Sprachassistenten, sowie der Google Übersetzter basieren auf den Recurrent Neural Networks. Dank dieser neuronalen Netze sind diese Systeme in der Lage unsere Texteingaben und Sprachbefehle aufnehmen, zu verstehen und eine Text-oder Sprach basierte Antwort zurückzugeben, die ebenfalls von einem Recurrent Neural Network erzeugt wird.

Auch eine einfache grafische Darstellung der rekurrenten neuronalen Netze ist nicht ohne weiteres möglich. Trotzdem möchte ich es versuchen.
Stellen Sie sich zunächst einfach einen Feedforward Neural Netwerk. Dieses nimmt einen Eingangswert und gibt eine Ausgabe
zurück. Ein Recurrent Neural Network ist ebenfalls ein Feedforward Neural Network, was aber mit sich selbst rückgekoppelt ist.
Dies bedeutet, dass die aktuelle Prognose nicht nur vom aktuellen Eingabewert
abhängt, sondern auch von früheren Berechnungen
mit früheren Eingabewerten
.

4. Autoencoder
Autoencoder (deutsch: Autokodierer) stellt eine weitere, weitverbreitete Architektur der künstlichen neuronalen Netze. Im Grunde sind Autoencoder ebenfalls „nur“ Feedforward Neural Networks. Der Unterschied zum Letzteren ist die besondere Eigenschaft der Autoencoder, dass dieser in der Eingabe- und Ausgabeschicht die gleiche Anzahl von Neuronen aufweist.

Genau wie ein Multilayer Perceptron kann der Autoencoder eine beliebige Anzahl von versteckten Schichten enthalten. Abb. 9 zeigt eine schematische Darstellung von einem Autoencoder mit jeweils sechs Neuronen in der Eingabe- und Ausgabeschicht sowie einer einzelnen versteckten Schicht mit drei Neuronen.
Ein Autoencoder besteht aus einem Encoder (deutsch: Kodierer) und einem Decoder (deutsch: Dekodierer). Die Anzahl der Neuronen im Encoder nimmt mit der zunehmenden Tiefe des Netzes ab.
Mit dem Encoder werden die Eingabedaten kodiert, d.h. die Daten werden auf eine Schicht mit einer geringeren Anzahl von Neuronen als in der Eingabeschicht abgebildet. Damit findet eine Dimensionsreduktion der Eingabedaten statt. Im Decoder nimmt die Anzahl der Neuronen hingegen wieder zu. Die kodierten Daten werden mit dem Decoder in der Ausgabeschicht wieder rekonstruiert.
Der Encoder kann als eine Funktion aufgefasst werden, der die Eingangsdaten
nach
abbildet. Der Decoder dagegen kann als die inverse Funktion
betrachtet werden. Der Autoencoder berechnet damit
.
bezeichnet die rekonstruierten Eingabedaten
.
Der Autoencoder dient dazu, die Informationen in dem höher dimensionalen Eingabevektor auf möglichst wenige Neuronen zu kodieren. Die abstrakte Repräsentation
der Eingabedaten wird benutzt, um die Eingabedaten wieder rekonstruieren zu können.
Beim Training eines Autoencoders gilt es, den Fehler zwischen den Eingabedaten und ihrer Rekonstruktion
zu minimieren.
Weitere Informationen über Autoencoder sowie über deren Implementierung, finden Sie in meinem Artikel „Deep Autoencoder in TensorFlow 2.0„.
Autoencoder haben zahlreiche Anwendungen. Diese möchte ich Ihnen natürlich nicht vorenthalten und möchte im Folgenden einige typische Anwendungen von Autoencodern kurtz vorstellen:
Bildverarbeitung: Komprimierung, Entrauschung, Super-Resolution

Ein weiteres Anwendungsgebiet für Autoencoder ist die Bildverarbeitung.
Ein Beispiel ist die Bildkompression, bei der ein Bild in ein Format komprimiert oder kodiert wird, das weniger Speicherplatz benötigt als das Originalbild. Ein Standardansatz für die Kodierung von Bildern ist JPEG 2000. Autokodierer haben jedoch bereits ihr Potenzial bei der Bildkomprimierung bewiesen, indem sie diesen Standardansatz übertrafen.
Dies ist auf die einzigartige Eigenschaft des Netzes zurückzuführen, Merkmale eines höherdimensionalen Raums in einen niedrigerdimensionalen Raum zu kodieren und dabei die wesentlichen Informationen der Daten (des Bildes) zu erhalten.
Eine weitere nützliche Anwendung von Autoencodern im Bereich der Bildvorverarbeitung ist die Bildentrauschung. Bilder oder Videos, die unter schlechten Bedingungen aufgenommen wurden, erfordern oft eine Art von Bildwiederherstellung oder Qualitätsverbesserung. Autoencoder sind in der Lage, unerwünschte Artefakte aus den Bildern und Videos zu entfernen.
Eine noch erstaunlichere Fähigkeit von Autoencodern ist die Erhöhung der Auflösung von Bildern und Videos, zum Beispiel von 1080p auf 4K. Diese Anwendung erfreut sich in der Spieleindustrie zunehmender Beliebtheit.
Erkennung von Betrug

Autoencoder werden zur Erkennung von Anomalien in den Daten eingesetzt. Insbesondere gehört das die Erkennung von betrügerischen Finanztransaktionen, die i.d.R. als Anomalien in den Daten betrachtet werden (siehe auch „Identifikation von Finanzbetrug mit Deep Learning„).
Da das neuronale Netz lernt, nur die wichtigsten Informationen in den Daten zu rekonstruieren, ist der Autoencoder in der Lage, die häufigsten Merkmale und Muster der Daten genau zu reproduzieren. Während des Trainings lernt der Autoencoder nur auf nicht-anomalen Dateninstanzen. Nach dem Training wird der Autoencoder in der Lage sein nicht-anomale Daten sehr gut rekonstruieren zu können. Bei anomalen Daten (wie betrügerischen Finanztransaktionen) wird der Autoencoder hingegen einen hohen Fehler zwischen den ursprünglichen und den rekonstruierten Eingabedaten aufweisen.
Das bedeutet, dass der Fehler zwischen den Eingabedaten und der Rekonstruktion viel größer ist, wenn der Autoencoder mit einer Anomalie als Eingabedaten konfrontiert wird.
Anhand des größeren Rekonstruktionsfehlers kann eine Anomalie von einer normalen Dateninstanz unterschieden werden.