Neuronale Netze erklärt

15.03.2024
Von 
Matthew Tyson ist Java-Entwickler und schreibt unter anderem für unsere US-Schwesterpublikation Infoworld.com.
Neuronale Netzwerke liefern die Grundlage für moderne KI- und ML-Applikationen. Erfahren Sie, wie die gängigsten Konzepte aussehen und funktionieren.
Die grundlegenden Ideen hinter neuronalen Netzen sind nicht so schwer zu begreifen, wie Sie vielleicht glauben.
Die grundlegenden Ideen hinter neuronalen Netzen sind nicht so schwer zu begreifen, wie Sie vielleicht glauben.
Foto: Gorodenkoff | shutterstock.com

Nicht erst seitdem der Generative-AI-Hype um sich greift, fließen enorme gedankliche und monetäre Ressourcen in den Bereich der neuronalen Netzwerke. Die sind die wichtigste Komponente, wenn es darum geht, zu verstehen, was künstliche Intelligenz (KI) ist und wie sie funktioniert.

Auch für Softwareentwickler und andere IT-Profis stellt sich Knowhow in Sachen neuronale Netze zunehmend als nützlich und wichtig heraus - schließlich geht es dabei um einen Innovationsbereich, der vermutlich alle Wirtschaftsbranchen in den kommenden Jahrzehnten wesentlich prägen wird.

In diesem Artikel beschäftigen wir uns mit den Grundlagen neuronaler Netzwerke und gehen dabei auf ihre gängigsten Ausprägungen ein.

Das Perceptron

Alle neuronalen Netze teilen eine grundlegende Eigenschaft: Es handelt sich um eine Gruppe von Netzwerkknoten (Nodes), die miteinander in Beziehung stehen. Aus technischer Perspektive wäre die Bezeichnung Graph eigentlich korrekter, denn die Eigenschaften der Nodes und die Art und Weise, wie ihre Edges miteinander verbunden sind, variiert stark. Dabei stellt ein einzelner Knoten die simpelste Struktur dar.

Ganz generell versuchen neuronale Netze, sich der Funktionsweise des menschlichen Gehirns anzunähern. Das früheste, mathematische Konzept, das davon inspiriert wurde, ist das Perceptron. Dabei ist es wichtig im Hinterkopf zu behalten, dass sich neuronale Netze und das menschliche Gehirn ganz wesentlich voneinander unterscheiden, insbesondere, wenn es um das "Verstehen" geht. Das können Software-Neuronen nicht.

Im Allgemeinen versteht man unter einem "Neuron" einen Knoten, der einen oder mehrere Inputs annimmt, eine Entscheidung über den zu generierenden Output trifft und diesen anschließend entweder an den nächsten Knoten oder als finalen Output weiterleitet.

Die Analogie zum menschlichen Gehirn kann zu Verwirrung führen. Neuronale Netze weisen im Gegensatz zum Gehirn kein "Bewusstsein" auf - sind aber dennoch enorm leistungsfähige algorithmische Modelle. Jedes Problem, das mit einer Verlustfunktion auf eine Reihe von Inputs und Outputs reduziert werden kann, eignet sich für neuronale Netzwerke - unter Einbeziehung enormer Datenmengen versteht sich.

Ein einfaches Perceptron mit zwei Inputs und einem Output.
Ein einfaches Perceptron mit zwei Inputs und einem Output.
Foto: IDG

Jeder Input wird dabei mit einer Gewichtung ("Weight") multipliziert. Auf diese Weise lässt sich der Einfluss der Inputs justieren, der schließlich addiert und einem Bias hinzugefügt wird. Der Bias ermöglicht, den Gesamteinfluss eines Knotens abzustimmen. Ein mathematisches Diagramm des einschichtigen Perceptron-Modells finden Sie hier.

Der resultierende Wert ("Value") wird schließlich der Aktivierungsfunktion übergeben. Diese Funktion kann viele Formen annehmen - in einem Perceptron handelt es sich um eine Schwellenwertfunktion (oft die Heaviside-Step-Funktion). Diese generiert im Wesentlichen den Output 1, wenn der Wert hoch genug ist - ansonsten 0. Anders ausgedrückt: Diese Funktion fungiert als "Gate". Der einfache On/Off Output ist ein charakteristisches Merkmal des Perceptron. Auf Node-Ebene ist dieses Grund-Layout universell für neuronale Netze, allerdings kann die Zahl der Inputs und Outputs variieren. Die Informationen, die in ein Neuron eingespeist werden, werden oft als dessen "Features" bezeichnet.

Um Verwirrung vorzubeugen: Das Perceptron wird im Regelfall isoliert verwendet, soll heißen als Single-Node-Netz. Mehrere Perceptrons lassen sich zudem in einem einzelnen Layer kombinieren. Kommen mehrere Layer zum Einsatz, spricht man von einem Feedforward-Netzwerk (dazu später mehr).

Perceptrons - und neuronale Netze im Allgemeinen - brauchen eine Möglichkeit, um ihre "Weights" und "Biases" feinabzustimmen und ihre Performance zu optimieren. Letztere wird durch eine Verlustfunktion ("Loss Function") gemessen. Diese Funktion teilt dem Netz mit, wie es bei einer Berechnung abgeschnitten hat. Diese Information wird anschließend genutzt, um den respektive die Nodes feinabzustimmen. Allgemein kommt bei der Anpassung von Gewichtung und Bias der Gradient-Descent-Algotithmus (Gradientenabstieg) zur Anwendung.

Die Modifikation von "Weights" und "Biases" bildet das Herzstück beim maschinellen Lernen in neuronalen Netzen.
Die Modifikation von "Weights" und "Biases" bildet das Herzstück beim maschinellen Lernen in neuronalen Netzen.
Foto: IDG

Im Folgenden betrachten wir verschiedene weitere Formen von neuronalen Netzwerken, die auf dem Perceptron-Modell aufbauen - und darüber hinausgehen.

Feedforward-Netzwerke

Feedforward-Netze bieten im Vergleich zu Perceptrons ein deutlich höheres Maß an Flexibilität, sind dabei aber dennoch relativ simpel aufgebaut. Im Wesentlichen unterscheidet sich ein Feedforward-Netz von einem Perceptron durch eine ausgefeiltere Aktivierungsfunktion, die in der Regel mehr als einen Layer umfasst und bei die Knoten nicht nur 0 oder 1 ausgeben, sondern eine dynamische Variable.

Die Form des Gradientenverfahrens, die bei solchen Netzwerken verwendet wird, ist ebenfalls komplexer - im Regelfall kommt hier Backpropagation zum Einsatz. Diese betrachtet das Netz wie eine große, multivariate Kalkulationsgleichung und nutzt partielle Differenzierung, um es feinabzustimmen.

So funktioniert Feedforward Learning.
So funktioniert Feedforward Learning.
Foto: IDG

Das obenstehende Schaubild visualisiert ein prototypisches Feedforward-Netzwerk. Es zeichnet sich durch einen Input-Layer und zwei darauf folgende Neuronen-Layer aus. Dabei können die Nodes und Layer auf höchst unterschiedliche Art und Weise miteinander verbunden sein. In unserem konkreten Fall handelt es sich um vollständig verbundene oder "dichte" ("dense") Layer, weil der Output der Nodes jeweils an die Nodes der nächsten Schicht gesendet wird. Die inneren Layer eines neuronalen Netzwerks werden auch als "hidden" (versteckt) bezeichnet. Wichtig: Feedforward-Netzwerke schieben Input und Output stets nach "vorne" und niemals rückwärts.

Recurrent Neural Networks (RNNs)

Im Fall rekurrenter neuronaler Netze verhält es sich anders: Hier können sich die Daten zwischen den einzelnen Schichten auch rückwärts bewegen. Das eröffnet vielfältige Möglichkeiten, im Rahmen von RNNs anspruchsvollere Lerntechniken einzusetzen - was jedoch auch für mehr Komplexität sorgt. Diese Neural-Network-Form bezeichnet man auch als zyklischen Graphen. Man könnte auch davon sprechen, dass rekurrente neuronale Netze eine Form des Feedbacks beinhalten.

Das zyklische Muster der Datenbewegung in einem RNN.
Das zyklische Muster der Datenbewegung in einem RNN.
Foto: IDG

Involvierte Strukturen wie RNNs dehnen die Neuronen-Analogie deutlich aus. Die Art der Rückwärtsbewegung, wie sie in einem rekurrenten neuronalen Netz stattfindet, kommt in biologischen Systemen nicht vor.

Ein weiteres Merkmal von RNNs ist der sogenannte "hidden state". Das bedeutet, dass Netzwerkknoten einige Daten intern speichern können, während sie laufen - im Grunde eine Art Machine Memory. Weil die Schichten in einem RNN wiederholt durchlaufen werden können, ermöglicht "hidden state" dem Netzwerk, aus den Daten Erkentnisse über langfristige Auswirkungen zu ziehen.

Rekurrente neuronale Netze werden heute auf breiter Basis eingesetzt und auf vielfältige Weise implementiert. Am gebräuchlichsten ist dabei wohl das Long-Short-Term-Memory (LSTM)-Netzwerk. Diese RNN-Form kombiniert relativ komplexe Knoten mit einer Reihe von Gates und Internal State, um zu bestimmen, was wertvoll ist ("forget gate") und wie der Input und Output aussehen soll ("input and output gates"). Rekurrente neuronale Netze eignen sich besonders gut für sequenzielle Daten wie Zeitreihen.